java - Exposing an EJB project as SOAP WebService in another project -


i have 2 different java projects (in eclipse), 1 of them required jpa implementation accessing db, classes encapsulate work beans tagged @stateless , @localbean. second project wants soap web service implementation offering methods, classes have call beans

speaking code, on project must soap implementation have like:

package implementacion; import javax.ejb.stateless; import javax.jws.webservice;      @stateless     @webservice(targetnamespace = "http://implementacion/", portname = "testport", servicename = "testservice")     public class test {         @ejb         private languagebo lbo;          public test(){          }          public string sayhello() {             return "hello world";         }          public string saybye() {             return "bye world";         }          public wscollectionresult getalllanguages() {             return lbo.getalllanguages();         }     } 

my web.xml:

<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">   <display-name>soapborrar</display-name>   <welcome-file-list>     <welcome-file>index.html</welcome-file>     <welcome-file>index.htm</welcome-file>     <welcome-file>index.jsp</welcome-file>     <welcome-file>default.html</welcome-file>     <welcome-file>default.htm</welcome-file>     <welcome-file>default.jsp</welcome-file>   </welcome-file-list>   <servlet>     <description>apache cxf endpoint</description>     <display-name>cxf</display-name>     <servlet-name>cxf</servlet-name>     <servlet-class>org.apache.cxf.transport.servlet.cxfservlet</servlet-class>     <load-on-startup>1</load-on-startup>   </servlet>   <servlet-mapping>     <servlet-name>cxf</servlet-name>     <url-pattern>/services/*</url-pattern>   </servlet-mapping>   <session-config>     <session-timeout>60</session-timeout>   </session-config>   <context-param>     <param-name>contextconfiglocation</param-name>     <param-value>web-inf/cxf-beans.xml</param-value>   </context-param>   <listener>     <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>   </listener> </web-app> 

my cxf-beans.xml (ws implementation inside package "implementation", , called test):

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"     xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">     <import resource="classpath:meta-inf/cxf/cxf.xml" />     <import resource="classpath:meta-inf/cxf/cxf-extension-soap.xml" />     <import resource="classpath:meta-inf/cxf/cxf-servlet.xml" />     <jaxws:endpoint id="test" implementor="implementation.test"         wsdllocation="wsdl/test.wsdl" address="/test">         <jaxws:features>             <bean class="org.apache.cxf.feature.loggingfeature" />         </jaxws:features>     </jaxws:endpoint> </beans> 

i have tried implement webservice @stateless , nothing, have still exceptions during deployment:

grave: context initialization failed org.springframework.beans.factory.beancreationexception: error creating bean name 'test': invocation of init method failed; nested exception javax.xml.ws.webserviceexception: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1422)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:518)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:455)     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:293)     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:222)     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:290)     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:192)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:585)     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:895)     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:425)     @ org.springframework.web.context.contextloader.createwebapplicationcontext(contextloader.java:282)     @ org.springframework.web.context.contextloader.initwebapplicationcontext(contextloader.java:204)     @ org.springframework.web.context.contextloaderlistener.contextinitialized(contextloaderlistener.java:47)     @ org.apache.catalina.core.standardcontext.listenerstart(standardcontext.java:4939)     @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5434)     @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150)     @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1559)     @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1549)     @ java.util.concurrent.futuretask.run(futuretask.java:262)     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145)     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615)     @ java.lang.thread.run(thread.java:744) caused by: javax.xml.ws.webserviceexception: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ org.apache.cxf.jaxws.endpointimpl.dopublish(endpointimpl.java:371)     @ org.apache.cxf.jaxws.endpointimpl.publish(endpointimpl.java:251)     @ org.apache.cxf.jaxws.endpointimpl.publish(endpointimpl.java:539)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokecustominitmethod(abstractautowirecapablebeanfactory.java:1546)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1487)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1419)     ... 21 more caused by: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ java.lang.class.cast(class.java:3094)     @ org.apache.cxf.binding.soap.soapbindingutil.getproxy(soapbindingutil.java:104)     @ org.apache.cxf.binding.soap.soapbindingutil.getsoapbinding(soapbindingutil.java:275)     @ org.apache.cxf.binding.soap.soapbindingutil.getsoapbinding(soapbindingutil.java:267)     @ org.apache.cxf.binding.soap.soapbindingfactory.createbindinginfo(soapbindingfactory.java:676)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildbinding(wsdlservicebuilder.java:486)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildservices(wsdlservicebuilder.java:354)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildservices(wsdlservicebuilder.java:203)     @ org.apache.cxf.wsdl11.wsdlservicefactory.create(wsdlservicefactory.java:175)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.buildservicefromwsdl(reflectionservicefactorybean.java:428)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.initializeservicemodel(reflectionservicefactorybean.java:548)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.create(reflectionservicefactorybean.java:265)     @ org.apache.cxf.jaxws.support.jaxwsservicefactorybean.create(jaxwsservicefactorybean.java:215)     @ org.apache.cxf.frontend.abstractwsdlbasedendpointfactory.createendpoint(abstractwsdlbasedendpointfactory.java:102)     @ org.apache.cxf.frontend.serverfactorybean.create(serverfactorybean.java:159)     @ org.apache.cxf.jaxws.jaxwsserverfactorybean.create(jaxwsserverfactorybean.java:211)     @ org.apache.cxf.jaxws.endpointimpl.getserver(endpointimpl.java:456)     @ org.apache.cxf.jaxws.endpointimpl.dopublish(endpointimpl.java:334)     ... 30 more  mar 21, 2014 2:21:44 pm org.apache.catalina.core.standardcontext listenerstart grave: excepción enviando evento inicializado de contexto instancia de escuchador de clase org.springframework.web.context.contextloaderlistener org.springframework.beans.factory.beancreationexception: error creating bean name 'test': invocation of init method failed; nested exception javax.xml.ws.webserviceexception: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1422)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:518)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:455)     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:293)     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:222)     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:290)     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:192)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:585)     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:895)     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:425)     @ org.springframework.web.context.contextloader.createwebapplicationcontext(contextloader.java:282)     @ org.springframework.web.context.contextloader.initwebapplicationcontext(contextloader.java:204)     @ org.springframework.web.context.contextloaderlistener.contextinitialized(contextloaderlistener.java:47)     @ org.apache.catalina.core.standardcontext.listenerstart(standardcontext.java:4939)     @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5434)     @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150)     @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1559)     @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1549)     @ java.util.concurrent.futuretask.run(futuretask.java:262)     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145)     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615)     @ java.lang.thread.run(thread.java:744) caused by: javax.xml.ws.webserviceexception: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ org.apache.cxf.jaxws.endpointimpl.dopublish(endpointimpl.java:371)     @ org.apache.cxf.jaxws.endpointimpl.publish(endpointimpl.java:251)     @ org.apache.cxf.jaxws.endpointimpl.publish(endpointimpl.java:539)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokecustominitmethod(abstractautowirecapablebeanfactory.java:1546)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1487)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1419)     ... 21 more caused by: java.lang.classcastexception: cannot cast com.sun.proxy.$proxy91 org.apache.cxf.binding.soap.wsdl.extensions.soapbinding     @ java.lang.class.cast(class.java:3094)     @ org.apache.cxf.binding.soap.soapbindingutil.getproxy(soapbindingutil.java:104)     @ org.apache.cxf.binding.soap.soapbindingutil.getsoapbinding(soapbindingutil.java:275)     @ org.apache.cxf.binding.soap.soapbindingutil.getsoapbinding(soapbindingutil.java:267)     @ org.apache.cxf.binding.soap.soapbindingfactory.createbindinginfo(soapbindingfactory.java:676)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildbinding(wsdlservicebuilder.java:486)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildservices(wsdlservicebuilder.java:354)     @ org.apache.cxf.wsdl11.wsdlservicebuilder.buildservices(wsdlservicebuilder.java:203)     @ org.apache.cxf.wsdl11.wsdlservicefactory.create(wsdlservicefactory.java:175)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.buildservicefromwsdl(reflectionservicefactorybean.java:428)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.initializeservicemodel(reflectionservicefactorybean.java:548)     @ org.apache.cxf.service.factory.reflectionservicefactorybean.create(reflectionservicefactorybean.java:265)     @ org.apache.cxf.jaxws.support.jaxwsservicefactorybean.create(jaxwsservicefactorybean.java:215)     @ org.apache.cxf.frontend.abstractwsdlbasedendpointfactory.createendpoint(abstractwsdlbasedendpointfactory.java:102)     @ org.apache.cxf.frontend.serverfactorybean.create(serverfactorybean.java:159)     @ org.apache.cxf.jaxws.jaxwsserverfactorybean.create(jaxwsserverfactorybean.java:211)     @ org.apache.cxf.jaxws.endpointimpl.getserver(endpointimpl.java:456)     @ org.apache.cxf.jaxws.endpointimpl.dopublish(endpointimpl.java:334)     ... 30 more 

what doing wrong?

i'm using apache tomee ejb server , cxf implementing ws. also, if don't use ejb (if comment @ejb private languagebo , method using it) ws works correctly, missing?

thank in advance :)

pd: i've created ws using eclipse's wizard that

pd2: i've realized if use @stateless annotation in ws implementation doesn't work

edited

my pom.xml

<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelversion>4.0.0</modelversion>     <groupid>eu.superhub.wp4.policyframework-web-server</groupid>     <artifactid>policyframework-web-server</artifactid>     <name>superhub policyframework-web-server sip</name>     <description>incorporates clients of other wp4 modules , provides web-service interface</description>     <version>0.0.4-snapshot</version>     <packaging>war</packaging>     <build>         <plugins>             <plugin>                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-compiler-plugin</artifactid>                 <version>3.1</version>                 <configuration>                     <target>1.7</target>                     <source>1.7</source>                 </configuration>                             </plugin>             <!-- dependency, warning message – “selected war files include web-inf/web.xml ignored” fixed-->             <plugin>                 <artifactid>maven-war-plugin</artifactid>                 <version>2.3</version>                 <configuration>                     <packagingexcludes>src/main/webapp/web-inf/web.xml</packagingexcludes>                 </configuration>             </plugin>         </plugins>     </build>     <!-- property, character encoding warnings fixed-->     <properties>         <project.build.sourceencoding>utf-8</project.build.sourceencoding>     </properties>     <dependencies>         <!-- own bundles dependencies -->         <dependency>             <groupid>eu.superhub.wp4.models</groupid>             <artifactid>policymodel</artifactid>             <version>0.0.4-snapshot</version>                    </dependency>                <!-- rest services dependencies -->         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-core</artifactid>             <version>3.2.2.release</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-context</artifactid>             <version>3.2.2.release</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-web</artifactid>             <version>3.2.2.release</version>         </dependency>         <dependency>             <groupid>org.apache.cxf</groupid>             <artifactid>cxf-rt-frontend-jaxws</artifactid>             <!-- <version>2.7.4</version> -->             <version>2.6.9</version>         </dependency>         <dependency>             <groupid>org.apache.cxf</groupid>             <artifactid>cxf-rt-transports-http</artifactid>             <!-- <version>2.7.4</version> -->             <version>2.6.9</version>         </dependency>         <dependency>             <groupid>org.apache.cxf</groupid>             <artifactid>cxf-rt-frontend-jaxrs</artifactid>             <!-- <version>2.7.4</version> -->             <version>2.6.9</version>         </dependency>         <dependency>             <groupid>org.apache.cxf</groupid>             <artifactid>cxf-rt-rs-extension-providers</artifactid>             <!-- <version>2.6.0</version> -->             <version>2.6.9</version>         </dependency>         <dependency>             <groupid>javax.xml.bind</groupid>             <artifactid>jaxb-api</artifactid>             <version>2.2.9</version>         </dependency>         <dependency>             <groupid>org.codehaus.jackson</groupid>             <artifactid>jackson-jaxrs</artifactid>             <version>1.9.0</version>         </dependency>         <!-- without dependency rest service can't serialize list data types -->         <dependency>             <groupid>org.codehaus.jettison</groupid>             <artifactid>jettison</artifactid>             <version>1.3.4</version>         </dependency>         <!-- logger dependencies -->         <dependency>             <groupid>org.slf4j</groupid>             <artifactid>slf4j-api</artifactid>             <version>1.7.5</version>         </dependency>                  <dependency>              <groupid>org.slf4j</groupid>             <artifactid>slf4j-log4j12</artifactid>             <version>1.7.5</version>         </dependency>           <!-- postgresql dependency -->         <dependency>             <groupid>org.postgresql</groupid>             <artifactid>postgresql</artifactid>             <version>9.2-1003-jdbc4</version>         </dependency>            <!-- junit -->         <dependency>             <groupid>junit</groupid>              <artifactid>junit-dep</artifactid>             <version>4.8.2</version>         </dependency>            </dependency>                  </dependencies>  </project> 

do use last tomee? deliver cxf in webapp needed use spring.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -