+ All Categories
Home > Documents > JavaEE5NetBeans_SangShin

JavaEE5NetBeans_SangShin

Date post: 30-May-2018
Category:
Upload: armandochagoya
View: 215 times
Download: 0 times
Share this document with a friend
34
 Java EE 5 – Did You Get Java EE 5 – Did You Get Your Tools With That? Your Tools With That? (NetBeans IDE 5.5 (NetBeans IDE 5.5 Provides “Out-of-the-Box” Provides “Out-of-the-Box” Java EE 5 Support!) Java EE 5 Support!) Sang Shin Sang Shin [email protected] [email protected] www.javapassion.com www.javapassion.com Technology Architect Technology Architect Sun Microsystems Sun Microsystems
Transcript
Page 1: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 1/34

 

Java EE 5 – Did You GetJava EE 5 – Did You Get

Your Tools With That?Your Tools With That?(NetBeans IDE 5.5(NetBeans IDE 5.5

Provides “Out-of-the-Box”Provides “Out-of-the-Box”Java EE 5 Support!)Java EE 5 Support!)

Sang ShinSang [email protected]@sun.com

www.javapassion.comwww.javapassion.comTechnology ArchitectTechnology Architect

Sun MicrosystemsSun Microsystems

Page 2: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 2/34

NetBeans Day Atlanta 2007

Agenda

• Primary goal Java EE 5

• Web Services 2.0

• EJB 3.0

• New Java Persistence API (JPA)

• JavaServer Faces

• Q/A

Focus of this presentation is NetBeans support of Java EE 5 Features (not the features themselves)!

Page 3: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 3/34

 

 You can try all the demos You can try all the demos

yourself by doing the hands-yourself by doing the hands-on lab!on lab!

http://www.javapassion.com/handshttp://www.javapassion.com/handsonlabs/3400_javaee5basics.ziponlabs/3400_javaee5basics.zip

Page 4: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 4/34

NetBeans Day Atlanta 2007

Java EE 5 Goal

Make it easier to develop Java EEapplications

Especially when first getting started with Java EE

Page 5: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 5/34

NetBeans Day Atlanta 2007

How did we make it easier?

Then

• Deploymentdescriptors

• Required container interfaces

• JNDI Lookups

• Configuration files andcommand line options

• No Supported UIFramework

Now

Java languageannotations

Plain Old JavaObjects (POJOs)

Dependency Injection

More and better defaults

Java Server Faces(JSF)

Page 6: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 6/34

NetBeans Day Atlanta 2007

Java EE 5 Major Features

• Simplified web services support

• Greatly simplified EJB development

• New Java Persistence API (JPA)

• Dependency Injection

• Easy web application development with JavaServer Faces

•  And fully compatible with J2EE 1.4

Page 7: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 7/34NetBeans Day Atlanta 2007

Annotations in Java EE 5

• For defining and using web services

• To greatly simplify EJB development

• To map Java classes to databases (O/R mapping)

• To specify external dependencies (Dependencyinjection)

• To map Java classes to XML

• To reduce need for deployment descriptors

Page 8: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 8/34

 

Java EE 5

Web Services

Page 9: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 9/34NetBeans Day Atlanta 2007

J2EE 1.4 Web Service (Old way) <?xml version='1.0' encoding='UTF-8' ?>  <webservices xmlns='http://java.sun.com/xml/ns/j2ee' version='1.1'> 

<webservice-description> <webservice-description-name> HelloService</webservice-description-name> <wsdl-file> WEB-INF/wsdl/HelloService.wsdl</wsdl-file> <jaxrpc-mapping-file> WEB-INF/HelloService-mapping.xml</jaxrpc-mapping-file> <port-component xmlns:wsdl-port_ns='urn:HelloService/wsdl'> <port-component-name>HelloService</port-component-name> <wsdl-port>wsdl-port_ns:HelloServiceSEIPort</wsdl-port> <service-endpoint-interface> endpoint.HelloServiceSEI</service-endpoint-interface> <service-impl-bean> 

<servlet-link>WSServlet_HelloService</servlet-link> </service-impl-bean> </port-component> 

</webservice-description>  </webservices> 

 <?xml version='1.0' encoding='UTF-8' ?>  <configuration

xmlns='http://java.sun.com/xml/ns/jax-rpc/ri/config'> <service name='HelloService'

targetNamespace='urn:HelloService/wsdl'typeNamespace='urn:HelloService/types'

packageName='endpoint'> <interface name='endpoint.HelloServiceSEI'servantName='endpoint.HelloServiceImpl'> 

</interface> </service> 

 </configuration> 

 package endpoint;

import java.rmi.*;

 public class HelloServiceImpl

implements HelloServiceSEI {

 public String sayHello(String param)

throws java.rmi.RemoteException {

return “Hello “ + param;

}}

 package endpoint;

import java.rmi.*;

 public interface HelloServiceSEI

extends java.rmi.Remote {

 public String sayHello(String param)

throws java.rmi.RemoteException;

}

service implementation

service interface

Deployment descriptor 

Page 10: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 10/34NetBeans Day Atlanta 2007

Java EE 5 Web Service (New way)

 package endpoint;

import javax.jws.WebService;

@WebService

 public class Hello {

 public String sayHello(String name) {

return “Hello “ + name;

}

}

Page 11: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 11/34

 

DEMO: Java EE 5 Web ServicesDEMO: Java EE 5 Web Services

1. Make a POJO class Web Service with1. Make a POJO class Web Service with““@WebService” Annotation (Code-completion,@WebService” Annotation (Code-completion,Context-sensitive JavaDoc on Annotations)Context-sensitive JavaDoc on Annotations)

2. Deploy the Web service and test it right2. Deploy the Web service and test it right

within the IDEwithin the IDE3. Access WSDL document of the Web Service3. Access WSDL document of the Web Service

4. Create and run Web service client4. Create and run Web service client

Page 12: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 12/34

 

EJB 3.0EJB 3.0

Page 13: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 13/34NetBeans Day Atlanta 2007

EJB 3.0

• Dramatic simplification of all bean types

• Regular Java classes (POJO)> @Stateless, @Stateful, @MessageDriven annotations

> Use standard interface inheritance• Dependency injection

> Instead of using JNDI API to location components andresources, let the container fetch them for you.

• Entity Beans (CMP) replaced with Java Persistence API (JPA)

• Interceptors

Page 14: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 14/34NetBeans Day Atlanta 2007

Java EE 5 Stateless Session Bean

 package endpoint;

import javax.ejb.Stateless;

@Stateless

 public class Hello {

 public String sayHello(String name) {

return “Hello “ + name;

}

}

Page 15: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 15/34

 

DEMO #1: EJB 3.0 StatelessDEMO #1: EJB 3.0 StatelessSession BeanSession Bean

1. Build a Stateless Session Bean using1. Build a Stateless Session Bean using““@Stateless” annotation@Stateless” annotation

2. Build Web application client that accesses2. Build Web application client that accessesthe Stateless Session Beanthe Stateless Session Bean

Page 16: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 16/34

 

DEMO #2: EJB 3.0 InterceptorsDEMO #2: EJB 3.0 Interceptors

1. Build an application that uses Interceptors1. Build an application that uses Interceptors

Page 17: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 17/34

 

Java Persistence APIJava Persistence API

Page 18: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 18/34NetBeans Day Atlanta 2007

Java Persistence API (JPA)

• Single persistence API for Java EE & Java SE

• Developed by EJB expert group> Builds on years of experience with existing technologies

and products (TopLink, Hibernate)• Much simpler than EJB 2.x CMP

•  At least three implementations (all open source):> Oracle – GlassFish/TopLink Essentials

> JBoss – Hibernate> BEA – Kodo/OpenJPA

Page 19: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 19/34NetBeans Day Atlanta 2007

Persistence Unit

• Used to configure> Persistence provider 

> Supports pluggability of persistence provider 

> Data source> Table Generation Setting

> Create, Drop/Create, Nothing

> Vendor specific properties

• The only XML configuration• NetBeans will create this for you

Page 20: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 20/34NetBeans Day Atlanta 2007

JPA – Persistence Unit

Page 21: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 21/34NetBeans Day Atlanta 2007

JPA – Object Relational Mapping

• Developer works with objects> Database queries return objects> Object changes persist to the database

• Data transformation is handled by the persistenceprovider (TopLink, Hibernate, etc.)

•  Annotations define how to map objects to tables> @Entity marks a regular Java class as an entity.

> Class attributes map to table columns. Can becustomized with @Column.> Manage relationships: @OneToMany, ...

Page 22: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 22/34NetBeans Day Atlanta 2007

JPA – Entity Classimport javax.persistence.*;

@Entity

 public class Person {

@Id private String name;

 private int visits;

 public Person() { }

 public Person(String name) {

this.name = name;

}

 public int incrementVisit() {

return visits++;

}

}

Page 23: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 23/34NetBeans Day Atlanta 2007

JPA – Entity Manager 

• EntityManager stores/retrieves data

• Inject EntityManager:> @PersistenceContext private EntityManager em;

• Create an instance of the entity:> Person p = new Person(param);

• Use EntityManager methods to persist data> em.persist(p); em.merge(p); em.delete(p);

• Query using EJB QL or SQL> Person p = em.find(Person.class, param);

Page 24: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 24/34NetBeans Day Atlanta 2007

JPA – Entity Manager ...

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

@WebService

@Stateless

 public class Hello {

@PersistenceContext private EntityManager em; public String sayHello(String param) {

Person p = em.find(Person.class, param);

if (p == null) {

 p = new Person(param);

em.persist(p);}

 p.incrementVisist();

return “Hello “ + param + “: “ +

} }

Page 25: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 25/34

 

DEMO 1: Java Persistence APIDEMO 1: Java Persistence API

1. Create Persistence Unit1. Create Persistence Unit

2. Create Entity classes from Database tables2. Create Entity classes from Database tables

3. Use “TopLink” or “Hibernate” as Persistence3. Use “TopLink” or “Hibernate” as PersistenceProvider Provider 

Page 26: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 26/34

 

DEMO 2: Java Persistence APIDEMO 2: Java Persistence API

1. Use different strategy for Inheritance and1. Use different strategy for Inheritance andsee how database tables are createdsee how database tables are created

- SINGLE_TABLE- SINGLE_TABLE

- JOINED- JOINED

Page 27: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 27/34

 

JavaServer Faces 1.2JavaServer Faces 1.2

Page 28: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 28/34

NetBeans Day Atlanta 2007

JavaServer Faces 1.2

• The Java EE Standard Web Application Framework> Managed beans support dependency injection> Easy to use, powerful, extensible Expression Language,

shared with JSP

• Large market of JSF components> Over 200 components from over 20 vendors, such as...>  Apache, BusinessObjects, ESRI, Oracle, Sun, etc.>

Including AJAX support• Java BluePrints AJAX Components> http://blueprints.dev.java.net

Page 29: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 29/34

NetBeans Day Atlanta 2007

JavaServer Faces 1.2 in NetBeans

• Code Completion for:> JavaServer Pages (JSP)> JavaServer Faces (JSF), including expression language> Java Standard Tag Libraries (JSTL)>  Any tab libraries added by the user 

• Integrated documentation

• HTML, JSP and JSF component palette

Page 30: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 30/34

NetBeans Day Atlanta 2007

JavaServer Faces 1.2 in NetBeans

• Generation of JavaServer Faces applications fromentity classes:> Pages – list, detail, edit, create> Managed bean> Navigation rules

• Code is easy to read/change

• Helps to learn the patterns

• Gets you started quickly• Code generation similar to Ruby on Rails...

Page 31: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 31/34

 

DEMO: JavaServer FacesDEMO: JavaServer Faces

1. Create JSF pages from Entity Classes -1. Create JSF pages from Entity Classes -

Easily create CRUD (Create, Read, UpdateEasily create CRUD (Create, Read, Updateand Delete) database applicationand Delete) database application

2. Create Managed Beans from Entity Classes2. Create Managed Beans from Entity Classes

Page 32: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 32/34

NetBeans Day Atlanta 2007

Summary

• The developer works less> No synchronization between Java programming

language and XML

• The container works more>  Annotation processing, dependency injection

• NetBeans 5.5 knows Java EE 5> Less work to hide the complexity and XML descriptors

> Does more useful things: wizards, hints, code validation,code generation, etc.

• Java EE 5 - Did You Get Your Tools With That?

Page 33: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 33/34

NetBeans Day Atlanta 2007

Questions & Answers

Page 34: JavaEE5NetBeans_SangShin

8/14/2019 JavaEE5NetBeans_SangShin

http://slidepdf.com/reader/full/javaee5netbeanssangshin 34/34

 

Java EE 5 – Did You GetJava EE 5 – Did You Get

Your Tools With ThatYour Tools With That

Sang ShinSang [email protected]@sun.com

www.javapassion.comwww.javapassion.com

Technology ArchitectTechnology Architect

Sun MicrosystemsSun Microsystems