[JBoss and NetBeans] - Netbeans 6, Java Persistence API, Web Service using Annotati
by jsolderitsch
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
18 years, 5 months
[JBossWS] - Question on Basic WS Authentication
by mendaye
Hello All,
I have implemented JAX_WS web services using JBoss Web Service stack bundled with JBoss 4.2.2_GA. I have used EJB3.0 as service end point. I would like to extend basic authentication for the consumers. The user, encrypted password and roles for the applications are stored in the database. Can someone answer my questions below?
1. What do I need to do on the server side (EJB 3 service end point) in order to authenticate the consumer. In my case all the credential (user name, password, and roles) stored in DB. Point me document or example..
2. What do I need to do on the consumer side? Pls give me example.
3. The application uses different encryption to encrypt password. How can I enforce the client to use the same encryption? Based on my requirement consumer can not send plain text password over the wire to the Jboss server.
Thanks in advance for helping this out..
Surafel
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108242#4108242
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4108242
18 years, 5 months