Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBeans/Eclipse

Preview:

DESCRIPTION

This talk will demonstrate how Oracle, GlassFish, and NetBeans/Eclipse can be used together to create quick and powerful web applications.

Citation preview

Slide 1Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

JPEProject

J2EE 1.2Servlet, JSP,

EJB, JMSRMI/IIOP

J2EE 1.3CMP,

ConnectorArchitecture

J2EE 1.4Web Services, Management, Deployment, Async. Connector

Java EE 5Ease of DevelopmentAnnotationsEJB 3.0Persistence APINew and Updated Web Services

Robustness

Web Services

Enterprise Java Platform

`

Java EE 6EJB LiteRestful WSWeb BeansExtensibility

Java EE 6Web Profile

Ease ofDevelopment

Right Sizing

Java EE: Past & Present

Creating Quick & Powerful Web Applications with Oracle, GlassFish, NetBeans / Eclipse

Arun Gupta, GlassFish GuySun Microsystems, Inc.blog.arungupta.me

1

Slide 2Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

What is GlassFish ?

• A Community> Users, Partners, Testers, Developers, ...> Started in 2005 on java.net

• Application Server> Enterprise Quality and Open Source (CDDL & GPL v2)> Java EE 5 / 6 Reference Implementation> Full Commercial Support from Sun

http://glassfish.org

Slide 3Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

State of GlassFish

• GlassFish v2> Java EE 5 Reference Implementation> Clustering, Load-balancing, High Availability> Web-based / CLI Administration Console> .NET Web services interoperability> Current release: GlassFish v2.x

• GlassFish v3> Java EE 6 Reference Implementation> Modular (OSGi), Embeddable, Extensible> Java EE, Rails, Grails, Django, ...> Going final this year

Slide 4Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Sun GlassFish Enterprise Server

Customer FocusedCustomer Focused

Support TeamSupport Team

Patches &Patches &

UpgradesUpgrades

24x7 Support24x7 Support

CustomerCustomer

AdvocateAdvocate

Sun VIPSun VIP

InteroperabilityInteroperability

SupportSupport

Enterprise ManagerEnterprise Manager

eLearningeLearning

CreditCredit

GlassFishGlassFish

Open SourceOpen Source

Application ServerApplication Server

Slide 5Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Java EE 6: Ease of Development (EJB.Lite)

foo.ear

foo_web.warWEB-INF/web.xmlWEB-INF/classes com.sun.FooServlet com.sun.TickTock

foo_ejb.jarcom.sun.FooBeancom.sun.FooHelper

foo.war

WEB-INF/classes com.sun.FooServlet com.sun.TickTock com.sun.FooBean com.sun.FooHelper

web.xml ?

Java EE 5 Java EE 6

Slide 6Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

EoD Example - Servlets<!--Deployment descriptor

web.xml -->

<web-app><servlet> <servlet-name>MyServlet

</servlet-name> <servlet-class> com.foo.MyServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet </servlet-name> <url-pattern>/myApp/* </url-pattern> </servlet-mapping> ... </web-app>

Servlet in Java EE 5: Create two source files/* Code in Java Class */

package com.foo;public class MyServlet extends HttpServlet {public void doGet(HttpServletRequest req,HttpServletResponse res)

{

...

}

...

}

Slide 7Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

EoD Example - ServletsServlet in Java EE 6: In many cases a single source file

package com.foo;@WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”)public class MyServlet extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)

{...

}

Slide 8Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

http://blog.arungupta.me/2008/11/screencast-27-simple-web-application-using-netbeans-6-5-ide-and-glassfish-v3-prelude/http://blog.arungupta.me/2009/10/totd-108-java-ee-6-web-application-jsf-2-0-jpa-2-0-ejb-3-1-using-oracle-netbeans-and-glassfish/http://blog.arungupta.me/2009/08/totd-94-a-simple-java-server-faces-2-0-jpa-2-0-application-getting-started-with-java-ee-6-using-netbeans-6-8-m1-glassfish-v3/http://blog.arungupta.me/2009/08/totd-95-ejb-3-1-java-server-faces-2-0-jpa-2-0-web-application-getting-started-with-java-ee-6-using-netbeans-6-8-m1-glassfish-v3/http://blog.arungupta.me/2008/11/screencast-28-simple-web-application-using-eclipse-and-glassfish-v3-prelude/http://blog.arungupta.me/2009/09/totd-102-java-ee-6-servlet-3-0-and-ejb-3-1-wizards-in-eclipse/

Java EE 6 Wizards

Slide 9Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Java Persistence API

• Java EE specification that defines Object to Relational Mapping

• Annotations to persist POJOs• JPQL to query database objects• Requires a Persistence Provider and a Database

> Common Persistence Providers: TopLinkEssentials, EclipseLink, ...

> Common Databases: Oracle, MySQL, ...

Slide 10Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

JPA Sample@Entity class Employee {

@Id private int id;

private String firstName; private String lastName;

pubic Employee (int id, String firstName, String lastName) {

...

}

public String getFullName(){return firstName + lastName;

}

...

}

Slide 11Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

http://blog.arungupta.me/2009/09/totd-107-connect-to-oracle-database-using-netbeans/http://blog.arungupta.me/2009/10/totd-108-java-ee-6-web-application-jsf-2-0-jpa-2-0-ejb-3-1-using-oracle-netbeans-and-glassfish/http://blog.arungupta.me/2009/08/totd-99-creating-a-java-ee-6-application-using-mysql-jpa-2-0-and-servlet-3-0-with-glassfish-tools-bundle-for-eclipse/

JPA Wizards

Slide 12Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

RESTful Web Services

• JAX-RS: Java API for RESTful Web Services• Annotation-based server-side API• HTTP-centric• Jersey: Implementation of JAX-RS

> Also provides client-side API

Slide 13Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

JAX-RS Sample@Path("widgets/{id}")@Produces("application/widgets+xml")@Consumes("application/widgets+xml")public class WidgetResource {

private Widget w;

public WidgetResource(@PathParam("id") String id) { this.w = locateRecord(id); }

@GET Widget getWidget() { return w; }

@PUT Widget updateWidget(Widget update) { w = processUpdate(update); return w; }

}

Slide 14Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

http://blog.arungupta.me/2009/10/totd-112-exposing-oracle-database-tables-as-restful-entities-using-jax-rs-glassfish-and-netbeans/

RESTful Wizards

Slide 15Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Dynamic Languages & Frameworks

http://glassfish-scripting.dev.java.net

Slide 16Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Rails Deployment Choices

Credits: http://birdwatchersdigest.com

Slide 17Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

http://blog.arungupta.me/2008/11/screencast-26-developrundebug-rails-application-using-netbeans-ide-and-glassfish-v3-prelude/http://blog.arungupta.me/2009/10/totd-110-jruby-on-rails-application-using-oracle-on-glassfish/http://blog.arungupta.me/2009/10/totd-111-rails-scaffold-for-a-pre-existing-table-using-oracle-and-glassfish/

Slide 18Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Extending GlassFish ... 1, 2, 3.@Service(name="mycommand")@Scoped(PerLookup.class)public class CLIPluggabilityCommand implements AdminCommand {...}

...// this value can be either runtime or os for our demo@Param(primary=true)String inParam;...

public void execute(AdminCommandContext context) {. . .}

http://java.net/blog/2008/11/07/extending-glassfish-v3-prelude-easy-1-2-3

Slide 19Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

Light-weight & On-demand Monitoring

• Event-driven light-weight and non-intrusive monitoring

• Modules provide domain specific probes (monitoring events)> EJB, Web, Connector, JPA, Jersey, Orb, Ruby

• End-to-end monitoring on Solaris using DTrace

• 3rd party scripting clients> JavaScript to begin with

http://blog.arungupta.me/2009/09/totd-104-glassfish-v3-monitoring-how-to-monitor-a-rails-app-using-asadmin-javascript-jconsole-rest/

Slide 20Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

REST Interface

• REST interface to management and monitoring data> Configuration data, Commands invocation (start/stop

instance, deploy, undeploy, ...), CRUD resources (JMS, JDBC, ...)

> localhost:4848/management/domain> localhost:4848/monitoring/domain

• GET, POST, DELETE methods• XML, JSON, HTML reps

http://blog.arungupta.me/2009/08/totd-96-glassfish-v3-rest-interface-to-monitoring-and-management-json-xml-and-html-representations/

Slide 21Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

References

• glassfish.org• blogs.sun.com/theaquarium• twitter.com/glassfish• glassfish@sun.com

Slide 22Creating Quick and Powerful Web Applications using Oracle, GlassFish and NetBeans/Eclipse

JPEProject

J2EE 1.2Servlet, JSP,

EJB, JMSRMI/IIOP

J2EE 1.3CMP,

ConnectorArchitecture

J2EE 1.4Web Services, Management, Deployment, Async. Connector

Java EE 5Ease of DevelopmentAnnotationsEJB 3.0Persistence APINew and Updated Web Services

Robustness

Web Services

Enterprise Java Platform

`

Java EE 6EJB LiteRestful WSWeb BeansExtensibility

Java EE 6Web Profile

Ease ofDevelopment

Right Sizing

Java EE: Past & Present

Creating Quick & Powerful Web Applications with Oracle, GlassFish, NetBeans / Eclipse

Arun Gupta, GlassFish GuySun Microsystems, Inc.blog.arungupta.me

22

Recommended