geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: WS-Stack Apache CXF asks for Axis2-Classes
Date Fri, 18 Jul 2008 14:56:18 GMT

This is probably a configuration problem with Geronimo.    Basically,  
we just call the javax.xml.soap.MessageFactory.newInstance() call to  
create a SAAJ MessageFactory.   Under the covers, it checks the META- 
INF/services dirs on the classpath for a file and if not found, uses  
the default burned into the saaj-api jar.    Geronimo uses the  
geronimo-specs version of the saaj-api jar which burns the Axis2  
version into it.   The sun saaj-impl jar doesn't have the META-INF/ 
services thing so that's why it's trying to pick up the axis2 version.

So, if you have -Dorg.apache.geronimo.saaj.provider=sun, it really  
needs to use the sun saaj-api jar as well OR add another jar that has  
the apprporiate META-INF/services file to allow it to pick up the sun  
implementation.

You MIGHT be able to get this to work if you set some system properties:
- 
Djavax 
.xml 
.soap 
.MessageFactory 
=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
- 
Djavax 
.xml 
.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
- 
Djavax 
.xml 
.soap 
.SOAPFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl
or similar.


Dan



On Jul 18, 2008, at 10:34 AM, Josef.Eisele@bgs-ag.de wrote:

> Hi,
>
> I sent this question to "user@geronimo.apache.org". But its kind of a
> specific 'Apache CXF' Question. So I ask the real Apache CXF -  
> Experts as
> well.
>
> Geronimo 2.1.1 uses Apache CXF 2.0.2 Incubator
>
> -Josef
>
> __________________
>
> Hi all,
>
> Step for Step I created a webservice for Apache CXF under Geronimo  
> 2.1.1.
> After implementing and testing I wanted to go on with the  
> implementation
> of WS-Security Features. I tried to do my best using the howto under
> http://cwiki.apache.org/CXF20DOC/ws-security.html
>
> I had to add some more libraries into my WAR-File like
> cxf-rt-ws-security-2.0.2-incubator.jar
> wss4j-1.5.1.jar
> xmlsec-1.3.0.jar
>
> I start Geronimo with the VM-Parameter:
> export GERONIMO_OPTS="-Dorg.apache.geronimo.jaxws.provider=cxf
> -Dorg.apache.geronimo.saaj.provider=sun"
>
> And now after if I call my webservice-method, I get the error:
> ..
> Provider org.apache.axis2.saaj.MessageFactoryImpl not found
> Provider org.apache.axis2.saaj.SOAPFactoryImpl not found
> ...
>
> 18.07.2008 15:58:02 org.apache.cxf.phase.PhaseInterceptorChain  
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: SOAPEXCEPTION
>        at
> org 
> .apache 
> .cxf 
> .binding 
> .soap.saaj.SAAJOutInterceptor.handleMessage(SAAJOutInterceptor.java: 
> 83)
>        at
> org 
> .apache 
> .cxf 
> .binding 
> .soap.saaj.SAAJOutInterceptor.handleMessage(SAAJOutInterceptor.java: 
> 57)
>        at
> org 
> .apache 
> .cxf 
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 
> 208)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java: 
> 276)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java: 
> 222)
>        at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>        at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 
> 135)
>        at $Proxy20.receiveDataDelta(Unknown Source)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation 
> .intranet.ws.WSClientImpl.callWebservice(WSClientImpl.java:156)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation.intranet.ws.WSClientImpl.readData(WSClientImpl.java:58)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation 
> .intranet.ws.WSClientImplTest.testreadData(WSClientImplTest.java:31)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun 
> .reflect 
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:585)
>        at
> org 
> .junit 
> .internal 
> .runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
>        at
> org 
> .junit 
> .internal 
> .runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
>        at
> org 
> .junit 
> .internal 
> .runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java: 
> 34)
>        at
> org 
> .junit 
> .internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
>        at
> org 
> .junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
>        at
> org 
> .junit 
> .internal 
> .runners 
> .TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java: 
> 66)
>        at
> org 
> .junit 
> .internal 
> .runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
>        at
> org.junit.internal.runners.TestClassRunner 
> $1.runUnprotected(TestClassRunner.java:42)
>        at
> org 
> .junit 
> .internal 
> .runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java: 
> 34)
>        at
> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java: 
> 52)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
>        at
> org 
> .eclipse 
> .jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>        at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>        at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 
> 196)
> Caused by: javax.xml.soap.SOAPException: Unable to create message  
> factory
> for SOAP: Provider org.apache.axis2.saaj.MessageFactoryImpl not found
>        at
> javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:89)
>        at
> org 
> .apache 
> .cxf 
> .binding 
> .soap.saaj.SAAJOutInterceptor.handleMessage(SAAJOutInterceptor.java: 
> 71)
>        ... 30 more
> javax.xml.ws.WebServiceException: Cannot create SAAJ factory instance.
>        at
> org 
> .apache 
> .cxf 
> .jaxws 
> .binding.soap.SOAPBindingImpl.getSOAPFactory(SOAPBindingImpl.java:118)
>        at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 
> 151)
>        at $Proxy20.receiveDataDelta(Unknown Source)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation 
> .intranet.ws.WSClientImpl.callWebservice(WSClientImpl.java:156)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation.intranet.ws.WSClientImpl.readData(WSClientImpl.java:58)
>        at
> de 
> .mydomain 
> .myproj 
> .replikation 
> .intranet.ws.WSClientImplTest.testreadData(WSClientImplTest.java:31)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun 
> .reflect 
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:585)
>        at
> org 
> .junit 
> .internal 
> .runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
>        at
> org 
> .junit 
> .internal 
> .runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
>        at
> org 
> .junit 
> .internal 
> .runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java: 
> 34)
>        at
> org 
> .junit 
> .internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
>        at
> org 
> .junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
>        at
> org 
> .junit 
> .internal 
> .runners 
> .TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java: 
> 66)
>        at
> org 
> .junit 
> .internal 
> .runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
>        at
> org.junit.internal.runners.TestClassRunner 
> $1.runUnprotected(TestClassRunner.java:42)
>        at
> org 
> .junit 
> .internal 
> .runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java: 
> 34)
>        at
> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java: 
> 52)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
>        at
> org 
> .eclipse 
> .jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>        at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>        at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>        at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 
> 196)
> Caused by: javax.xml.soap.SOAPException: Unable to create SOAP  
> Factory:
> Provider org.apache.axis2.saaj.SOAPFactoryImpl not found
>        at javax.xml.soap.SOAPFactory.newInstance(SOAPFactory.java:126)
>        at
> org 
> .apache 
> .cxf 
> .jaxws 
> .binding.soap.SOAPBindingImpl.getSOAPFactory(SOAPBindingImpl.java:113)
>        ... 25 more
>
> I don't understand why Axis2-Classes are called. Because of a Axis2- 
> Bug I
> have a filter in geronimo-application.xml:
>
>        <sys:hidden-classes>
>            <sys:filter>org.apache.axis2</sys:filter>
>            <sys:filter>javax.xml.bind</sys:filter>
>            <sys:filter>javax.xml.namespace</sys:filter>
>        </sys:hidden-classes>
>
> -Josef
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG         Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
>  Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog





Mime
View raw message