I have a web service that depends on a MySQL DB. I am using the Java Persistence API for DB access and Web Services (JAX-WS) defined via annotations.
Using Netbeans 6 (RC2) and the bundled glassfish app server, things are working. I needed to write virtually no configuration files (.xml) - the ones I needed were generated. I want to deploy to JBoss -- probably 4.2.2. Netbeans integration with JBoss seems to be at the J2EE 1.4 level. I want to use J2EE 5 techniques if possible and so it seems I need to manually deploy my war file to JBoss. My problem relates to what needs to be in the files: jboss-web.xml web.xml persistence.xml mysql-ds.xml in order that the persistence declarations and usages work. I have tried all sorts of things, picking hints off of the web, but I can't get the application to run. Can anyone relate experiences when porting from glassfish to jboss? A sample datasource file for MySQL that is suitable for use in a JBoss environment? Why the code: @WebService() @PersistenceContext(name = "persistence/LogicalName", unitName = "MissionStatusProjectPU2") public class MissionStatusService { EntityManager em; public MissionStatusService() { try { Context ctx = (Context) new javax.naming.InitialContext().lookup("java:comp/env"); em = (EntityManager) ctx.lookup("persistence/LogicalName"); } catch (NamingException ex) { ex.printStackTrace(); } } fails in JBoss at the Context ctx statement with the error trace: 14:12:59,849 ERROR [STDERR] javax.naming.NameNotFoundException: persistence not bound 14:12:59,850 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 14:12:59,850 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 14:12:59,850 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 14:12:59,850 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:267) 14:12:59,850 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:270) 14:12:59,850 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 14:12:59,850 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 14:12:59,850 ERROR [STDERR] at com.gestalt.afmstt.modernization.MissionStatusService.(MissionStatusService.java:32) 1 (Line 32 in MissionStatusService is the Context line above) My current web.xml looks like: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet-name>MissionStatusServiceService</servlet-name> <servlet-class>com.gestalt.afmstt.modernization.MissionStatusService</servlet-class> <load-on-startup>1</load-on-startup> <servlet-mapping> <servlet-name>MissionStatusServiceService</servlet-name> <url-pattern>/MissionStatusServiceService</url-pattern> </servlet-mapping> <resource-ref> DB Connection <res-ref-name>jdbc/mysql_remote</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> My jboss-web.xml looks like: <jboss-web> <resource-ref> <res-ref-name>jdbc/mysql_remote</res-ref-name> <res-type>javax.sql.DataSource</res-type> <jndi-name>java:mysql_remote</jndi-name> </resource-ref> </jboss-web> My persistence.xml looks like: <?xml version="1.0" encoding="UTF-8"?> <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="MissionStatusProjectPU2" transaction-type="JTA"> <jta-data-source>mysql_remote</jta-data-source> </persistence-unit> and my mysql-ds.xml looks like: <?xml version="1.0" encoding="UTF-8"?> <!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ --> <!-- Datasource config for MySQL using 3.0.9 available from: http://www.mysql.com/downloads/api-jdbc-stable.html --> <local-tx-datasource> <jndi-name>mysql_remote</jndi-name> <connection-url>jdbc:mysql://10.5.100.39:3306/data_services</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>xxxx</user-name> yyyyt <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use --> <min-pool-size>5</min-pool-size> <!-- The maximum connections in a pool/sub-pool --> <max-pool-size>20</max-pool-size> <!-- The time before an unused connection is destroyed --> <idle-timeout-minutes>5</idle-timeout-minutes> <exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name> <valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name> <!-- should only be used on drivers after 3.22.1 with "ping" support <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> --> <!-- sql to call when connection is created <new-connection-sql>some arbitrary sql</new-connection-sql> --> <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> --> <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml --> <type-mapping>mySQL</type-mapping> </local-tx-datasource> Would appreciate any ideas, examples. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108244#4108244 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4108244 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user