|
|
Line 1: |
Line 1: |
| =EclipseLink JPA Deployed on IBM WebSphere CE 2.1 using Eclipse WTP= | | =EclipseLink JPA Deployed on IBM WebSphere CE 2.1 using Eclipse WTP= |
− |
| |
− | <font color="red">Note: This tutorial' is under construction for the next week as of 20080918.</font>
| |
− |
| |
− |
| |
− | If you want to get a small web application running quickly on WebSphere CE - the services provided by the '''Web Tools Project''' plugin in the '''Eclipse IDE''' can take care of the deployment details and set the server into debug mode for you.
| |
− |
| |
− | This basic example details how to use Eclipse to run/debug a minimum J2EE web application servlet using EclipseLink JPA as the persistence provider. The goal of this example is to detail the minimum steps required to run EclipseLink inside the [http://www-01.ibm.com/software/webservers/appserv/community/ IBM WebSphere Application Server Community Edition] server using the Eclipse IDE. At this point no presentation/controller layer such as JSF, Spring or Struts will be used beyond a basic HttpServlet so we can concentrate on the the integration layer JPA setup.
| |
− |
| |
− | The [http://wiki.eclipse.org/Dali DALI] project was used to generate Entities from a schema with sequences already populated.
| |
− |
| |
− | ==Development Environment==
| |
− | '''Software:''' [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/R/eclipse-jee-ganymede-win32.zip Eclipse IDE for Java EE 3.4 Ganymede] (June 2008 +) with all 5 packages (DTP 1.6, EMF 2.4, GEF 3.4, WTP 3.0, XSD 2.4), [http://db.apache.org/derby Derby Database 10.4], Java JDK 1.6.0_04 - Note 1.5.0_14 comes with the server, [http://www-01.ibm.com/software/webservers/appserv/community/ IBM WebSphere CE 2.1.0.1]
| |
− |
| |
− | This example will run fine with any Database that EclipseLink supports.
| |
− |
| |
− | ==Prerequisites==
| |
− | ===<font color="green">Install Eclipse EE</font>===
| |
− | *I installed a clean version of Eclipse Ganymede (June 2008) with all of WTP 3.0
| |
− |
| |
− | ===<font color="green">Install a Database</font>===
| |
− | *In this example I am using the embedded [http://db.apache.org/derby Derby 10.4], the table schemas have already been created manually and all entity java classes may be generated using the Eclipse [http://wiki.eclipse.org/Dali DALI] tool.
| |
− | *There is also an express version of [http://www-01.ibm.com/software/data/db2/express/ IBM DB2 Express C 9.5] available
| |
− | ===<font color="green">Install WebSphere CE</font>===
| |
− | I installed the latest [http://www-01.ibm.com/software/webservers/appserv/community/ IBM WebSphere CE build 2.1.0.1 (Sept 2008)] and followed the instructions on that page.
| |
− |
| |
− | ===Install WebSphere CE Eclipse 3.4 Server Plugin===
| |
− | The WebSphere CE server plugin is not shipped by default with Eclipse - you will need to update your Eclipse IDE to pick up the [http://download.boulder.ibm.com/ibmdl/pub/software/websphere/wasce/updates/ WebSphere CE Eclipse plugin].
| |
− | *I selected to download the zip, and treat is a a local update site in eclipse
| |
− |
| |
− | ===Validating the WebSphereCE/Eclipse configuration===
| |
− | *Follow the [http://publib.boulder.ibm.com/wasce/V2.1.0/en/quick-start.html quickstart] guide on the IBM website.
| |
− | *In the servers view select ''New | Server''
| |
− | [[Image:Wasce_define_new_server.JPG]]
| |
− |
| |
− | *Use the '''IBM|IBM WASCE v2.1 Server''' plugin when creating a server
| |
− | *Note: WebSphere CE 2.1 is only certified in Java SE 1.5 (However JDK 1.6 runtime support is available) - You may use a SUN 1.6 JRE and continue
| |
− | [[Image:Wasce_server_plugin_supports_jse5.JPG]]
| |
− |
| |
− | *Start the server to test the plugin
| |
− | **You should see the following messages when running http://127.0.0.1:8080 on either a 1.5 or 1.6 JRE.
| |
− | <pre>
| |
− | Booting Geronimo Kernel (in Java 1.5.0_14)...
| |
− | Startup completed in 54.065s seconds
| |
− |
| |
− | Booting Geronimo Kernel (in Java 1.6.0_04)...
| |
− | Startup completed in 29.424s seconds
| |
− | </pre>
| |
− |
| |
− | ==WebSphere CE Configuration Changes==
| |
− | WebSphere CE configuration modifications can be done on the admin console http://127.0.0.1:8080/console using the login system:manager
| |
− |
| |
− | Currently working past a deployment blocking issue where both '''Run on Server''' from the Eclipse IDE or a drop of the EAR/WAR into the '''deploy''' directory has failed on both a 1.5 and 1.6 JRE.
| |
− |
| |
− | See
| |
− | *[http://www-128.ibm.com/developerworks/forums/thread.jspa?threadID=225325 http://www-128.ibm.com/developerworks/forums/thread.jspa?threadID=225325]
| |
− | *[http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14124192 http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14124192]
| |
− | *[http://publib.boulder.ibm.com/wasce/V2.1.0/en/deployment-framework.html http://publib.boulder.ibm.com/wasce/V2.1.0/en/deployment-framework.html]
| |
− | ===Run on Server fails with NPE===
| |
− | [[Image:Run_on_server_fails_with_npe.JPG]]
| |
− |
| |
− | <pre>
| |
− | !ENTRY org.eclipse.wst.server.core 4 0 2008-09-18 14:07:35.432
| |
− | !MESSAGE Could not publish to the server.
| |
− | !STACK 0
| |
− | java.lang.NullPointerException
| |
− | at org.apache.geronimo.st.core.internal.DependencyHelper.getEnvironment(DependencyHelper.java:353)
| |
− | at org.apache.geronimo.st.core.internal.DependencyHelper.reorderModules(DependencyHelper.java:97)
| |
− | at org.apache.geronimo.st.core.GeronimoServerBehaviourDelegate.publishModules(GeronimoServerBehaviourDelegate.java:216)
| |
− | at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:868)
| |
− | at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:707)
| |
− | at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:2406)
| |
− | at org.eclipse.wst.server.core.internal.Server$StartJob.run(Server.java:313)
| |
− | at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
| |
− | </pre>
| |
− |
| |
− | ===WAR dropped into deploy directory===
| |
− | <pre>
| |
− | 13:36:21,972 WARN [TomcatModuleBuilder] Web application . does not contain a WEB-INF/geronimo-web.xml deployment plan. This may or may not be a problem, depending on whether you have things like resource references that need to be resolved. You can also give the deployer a separate deployment plan file on the command line.
| |
− | </pre>
| |
− |
| |
− | ==JNDI Datasource Setup==
| |
− |
| |
− | ===Global Scoped Datasource Setup===
| |
− |
| |
− | ==Persistence JAR location==
| |
− |
| |
− | ==EclipseLink JAR location==
| |
− |
| |
− | ==JDBC JAR location==
| |
− |
| |
− | ==Create J2EE application==
| |
− |
| |
− | ==Persistence.xml==
| |
− | The WebSphere CE server is defined as generic '''"WebSphere"'''
| |
− |
| |
− | *JTA : Put persistence.xml beside your JPA entities in ''yourProjectEJB/ejbModule/META-INF''
| |
− | <source lang="xml">
| |
− | <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
| |
− | <persistence-unit name="unified" transaction-type="JTA">
| |
− | <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
| |
− | <jta-data-source>jdbc/__default</jta-data-source>
| |
− | <properties>
| |
− | <property name="eclipselink.target-server" value="WebSphere"/>
| |
− | <property name="eclipselink.logging.level" value="FINEST"/>
| |
− | <property name="eclipselink.session-name" value="eclipselinkwls"/>
| |
− | </properties>
| |
− | </persistence-unit>
| |
− | </persistence>
| |
− |
| |
− | </source>
| |
− | *RESOURCE_LOCAL : non-JTA : Put persistence.xml beside your JPA entities in ''yourProjectEJB/ejbModule/META-INF''
| |
− | *This one is used by a local SE Java app to create and pre-populated the derby database
| |
− | <source lang="xml">
| |
− | <persistence-unit name="stat.create.tables" transaction-type="RESOURCE_LOCAL">
| |
− | <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
| |
− | <class>entity..</class>
| |
− | <properties>
| |
− | <property name="eclipselink.jdbc.platform" value="oracle.toplink.platform.database.DerbyPlatform"/>
| |
− | <property name="eclipselink.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
| |
− | <property name="eclipselink.target-database" value="Derby"/>
| |
− | <property name="eclipselink.jdbc.url" value="jdbc:derby:C:/opt/derby104/unified;create=true"/>
| |
− | <property name="eclipselink.jdbc.user" value="APP"/>
| |
− | <property name="eclipselink.jdbc.password" value="APP"/>
| |
− | <property name="eclipselink.logging.level" value="FINEST"/>
| |
− | <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
| |
− | <property name="eclipselink.ddl-generation.output-mode" value="database"/>
| |
− | </properties>
| |
− | </persistence-unit>
| |
− | </source>
| |
− |
| |
− | ==Start Server==
| |
− |
| |
− | ==Publish EAR==
| |
− |
| |
− | ==Perform CRUD operations: JPQL insert and query==
| |
− |
| |
− | ===Browser Output===
| |
− |
| |
− |
| |
− | ==References==
| |
− | *See [[EclipseLink/UserGuide/Developing_JPA_Projects_%28ELUG%29|Developing JPA Projects]] in the EclipseLink User's Guide.
| |
− | *[http://www-01.ibm.com/software/webservers/appserv/community/ Download IBM WebSphere CE]
| |
− | *[http://www-01.ibm.com/software/data/db2/express/ Download IBM DB2 Express Database]
| |
− | *[http://publib.boulder.ibm.com/wasce IBM WebSphere CE Documentation]
| |
− | *[http://download.boulder.ibm.com/ibmdl/pub/software/websphere/wasce/updates/ IBM WebSphere CE Eclipse Plugin]
| |
− | *[https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?lang=en_US&source=wsced_archive&S_PKG=dl IBM WebSphere CE edition archive]
| |
− |
| |
− |
| |
− | Originated on build 20080916 - Michael O'Brien
| |