Date post: | 30-May-2018 |
Category: |
Documents |
Upload: | armandochagoya |
View: | 215 times |
Download: | 0 times |
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
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)!
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
•
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
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)
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
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
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 8/34
Java EE 5
Web Services
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
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;
}
}
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
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 12/34
EJB 3.0EJB 3.0
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
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;
}
}
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
•
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
•
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 17/34
Java Persistence APIJava Persistence API
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
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
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 20/34NetBeans Day Atlanta 2007
JPA – Persistence Unit
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, ...
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++;
}
}
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);
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 + “: “ +
} }
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
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
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 27/34
JavaServer Faces 1.2JavaServer Faces 1.2
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
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
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...
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
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?
8/14/2019 JavaEE5NetBeans_SangShin
http://slidepdf.com/reader/full/javaee5netbeanssangshin 33/34
NetBeans Day Atlanta 2007
Questions & Answers
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