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