Expose SLSB as CXF web service
okism Dec 24, 2008 9:33 AMI have an example that works fine with native distribution, but fails to work with cxf. It also worked fine with Tomcat 6.
It is a simple WS, SLSB that creates a City record in database.
What is the proper way to configure this? Whatever I try to do, EntityManager is always null.
@WebService(name="CityFacadeProxy", targetNamespace = "http://gint_scm_ws/") @SOAPBinding(style=SOAPBinding.Style.RPC, use=SOAPBinding.Use.LITERAL) @Remote public interface CityFacadeService { public City createCity(@WebParam(name="cityName") String cityName); }
@Stateless @WebService(endpointInterface = "yu.ac.ns.ftn.informatika.scm.CityFacadeService", serviceName = "CityFacadeServis", targetNamespace="http://gint_scm_ws") @Remote(CityFacadeService.class) public class CityFacade implements CityFacadeService { @PersistenceContext(name = "java:/scm") EntityManager em; public City createCity(String cityName) { System.out.println("!!!"+em); em.persist(new City(cityName.hashCode(), cityName)); return new City(cityName.hashCode(), cityName); } }
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="scm"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>scm</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="jboss.entity.manager.jndi.name" value="scm" /> </properties> </persistence-unit> </persistence>
context.xml:
<Context path="scmDS" docBase="scmDS" debug="5" reloadable="true" crossContext="true"> <Resource name="java:/scmDS" auth="Container" type="javax.sql.DataSource" description="MySQL database for SCM" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/updater" /> </Context>
scmDS is also defined in mysql-ds.xml, but no errors are reported because of this.
Files:
+-yu.ac.ns.ftn.informatika.scm.CityFacade
+-yu.ac.ns.ftn.informatika.scm.CityFacadeService
+-META-INF
+-----persistence.xml
+-WEB-INF
+-----context.xml
+-----cxf-servlet.xml
+-----web.xml