And if I try to test the webservice developing this spring client:
<?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:client id="helloWordClient"
serviceClass="com.test.HelloWorld"
address="http://localhost:8080/helloWorld" />
</beans>
30-jun-2009 23:52:33 org.apache.cxf.bus.spring.BusApplicationContext
getConfigResources
INFO: No cxf.xml configuration file detected, relying on defaults.
30-jun-2009 23:52:34
org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromClass
INFO: Creating Service {http://test.com/}HelloWorldService from class
com.test.HelloWorld
30-jun-2009 23:52:34 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:471)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:301)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:121)
at $Proxy44.postMessage(Unknown Source)
at com.test.TestWsClient.main(TestWsClient.java:15)
Caused by: java.io.IOException: Not Found
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2015)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1940)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 8 more
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not
send Message.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:141)
at $Proxy44.postMessage(Unknown Source)
at com.test.TestWsClient.main(TestWsClient.java:15)
Caused by: java.io.IOException: Not Found
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2015)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1940)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:471)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:301)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:121)
... 2 more
Westhveg wrote:
>
> Jarek,
>
> Now the exception is:
>
> Distribution of module failed. See log for details.
> AbstractWebModuleBuilder: Could not load listener class:
> org.springframework.web.context.ContextLoaderListener
> org.apache.geronimo.common.DeploymentException:
> AbstractWebModuleBuilder: Could not load listener class:
> org.springframework.web.context.ContextLoaderListener
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:791)
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:759)
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:836)
> at
> org.apache.geronimo.jetty6.deployment.JettyModuleBuilder.addGBeans(JettyModuleBuilder.java:365)
> at
> org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.addGBeans(SwitchingModuleBuilder.java:165)
> at
> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:647)
> at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255)
> at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:134)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
> at
> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
> at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
> at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
> at
> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
> at
> org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172)
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
> Source)
> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
> at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
> Source)
> at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown
> Source)
> at
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown
> Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown
> Source)
> at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
> at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
> at sun.rmi.transport.Transport$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Unknown Source)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
> Source)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.ClassNotFoundException:
> org.springframework.web.context.ContextLoaderListener in classloader
> default/TestCXF/1.0/car
> at
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:438)
> at
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:280)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:789)
> ... 45 more
>
>
> But if I add spring.jar, then the WAR is published without errors, the CXF
> webservice is also published and WSDL file is generated correctly. Now my
> question is, why I can't use cxf servlet? Is this a best practice? In
> other words... if I want to publish a web service in my production
> environmnet.. do you recommend me this way?
>
>
> Thanks a lot Jarek :)
>
>
> Westhveg
>
>
> P.D: Remember that for this test I don't neither set the system property
> GERONIMO_OPTS="-Dorg.apache.geronimo.jaxws.builder.useSimpleFinder=true"
> nor add hidden-classes/filters to geronimo-web.xml file.
>
>
>
> Jarek Gawor-2 wrote:
>>
>> Ok, making progress on this front... Remove the CXFServlet from
>> web.xml file and add a servlet (and servlet-mapping) for the class
>> that is your web service implementation.
>>
>> Jarek
>>
>> On Tue, Jun 30, 2009 at 2:18 PM, Westhveg<[email protected]> wrote:
>>>
>>> Hi Jarek,
>>>
>>> Removing both jars, the exception is:
>>>
>>> Distribution of module failed. See log for details.
>>> Failed to load servlet class
>>> org.apache.cxf.transport.servlet.CXFServlet
>>> org.apache.geronimo.common.DeploymentException: Failed to load servlet
>>> class org.apache.cxf.transport.servlet.CXFServlet
>>> at
>>> org.apache.geronimo.jaxws.builder.AdvancedWARWebServiceFinder.getPortInfo(AdvancedWARWebServiceFinder.java:148)
>>> at
>>> org.apache.geronimo.jaxws.builder.AdvancedWARWebServiceFinder.discoverPOJOWebServices(AdvancedWARWebServiceFinder.java:125)
>>> at
>>> org.apache.geronimo.jaxws.builder.AdvancedWARWebServiceFinder.discoverWebServices(AdvancedWARWebServiceFinder.java:45)
>>> at
>>> org.apache.geronimo.jaxws.builder.WARWebServiceFinder.discoverWebServices(WARWebServiceFinder.java:70)
>>> at
>>> org.apache.geronimo.jaxws.builder.JAXWSServiceBuilder.discoverWebServices(JAXWSServiceBuilder.java:97)
>>> at
>>> org.apache.geronimo.jaxws.builder.JAXWSServiceBuilder.findWebServices(JAXWSServiceBuilder.java:80)
>>> at
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:364)
>>> at
>>> org.apache.geronimo.jetty6.deployment.JettyModuleBuilder.initContext(JettyModuleBuilder.java:350)
>>> at
>>> org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext(SwitchingModuleBuilder.java:159)
>>> at
>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:595)
>>> at
>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255)
>>> at
>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:134)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>> Source)
>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>> at
>>> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>>> at
>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
>>> at
>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
>>> at
>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>>> at
>>> org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
>>> at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>> Source)
>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>> at
>>> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>>> at
>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
>>> at
>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
>>> at
>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>>> at
>>> org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172)
>>> at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
>>> Source)
>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
>>> at
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
>>> Source)
>>> at
>>> javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown
>>> Source)
>>> at
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown
>>> Source)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown
>>> Source)
>>> at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown
>>> Source)
>>> at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>> Source)
>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>> at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
>>> at sun.rmi.transport.Transport$1.run(Unknown Source)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at sun.rmi.transport.Transport.serviceCall(Unknown Source)
>>> at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
>>> Source)
>>> at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
>>> Source)
>>> at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
>>> Source)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>>> Source)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>>> Source)
>>> at java.lang.Thread.run(Unknown Source)
>>> Caused by: java.lang.ClassNotFoundException:
>>> org.apache.cxf.transport.servlet.CXFServlet in classloader
>>> default/ViewControllerWS/1.0/car
>>> at
>>> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:438)
>>> at
>>> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:280)
>>> at java.lang.ClassLoader.loadClass(Unknown Source)
>>> at
>>> org.apache.geronimo.jaxws.builder.AdvancedWARWebServiceFinder.getPortInfo(AdvancedWARWebServiceFinder.java:142)
>>> ... 49 more
>>>
>>>
>>> Thanks,
>>>
>>> Westhveg
>>>
>>>
>>>
>>> Jarek Gawor-2 wrote:
>>>>
>>>> You have to remove both, CXF and Spring. And please include a full
>>>> stack trace to see what's loading that
>>>> org.springframework.context.ApplicationListener class.
>>>>
>>>> Jarek
>>>>
>>>> On Mon, Jun 29, 2009 at 3:56 PM, Westhveg<[email protected]>
>>>> wrote:
>>>>>
>>>>> And if I remove the spring or cfx jar files from WAR, I get a
>>>>> ClassNotFoundException. For example, if I remove spring jar file:
>>>>>
>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>> org.springframework.context.ApplicationListener in classloader
>>>>> default/ViewControllerWS/1.0/car
>>>>> at
>>>>> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:438)
>>>>> at
>>>>> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:280)
>>>>> at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>> at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>> ... 60 more
>>>>>
>>>>>
>>>>>
>>>>> Could you help me, please?
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Westhveg
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Problem-when-deploy-CXF-WebService-%28Service-resource-injection-failed%29-tp24245804s134p24276970.html
>>> Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Problem-when-deploy-CXF-WebService-%28Service-resource-injection-failed%29-tp24245804s134p24280524.html
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.