You were right. There seems to be something special with our customers 
installation. My local installation only contains an AdminServer instance, 
nothing more. Here it works. Deploying the same archive to our target 
environment, does not. After some further investigations and some changes to 
doubleit configuration, I finally managed it to get the service working for our 
target server.

What I've done in detail is:

1) Define some perfer-application-package entries into weblogic-application.xml:
   ....  
    <prefer-application-packages>
        <package-name>javax.jws.*</package-name>
        <package-name>com.ibm.*</package-name>
        <package-name>javax.wsdl.*</package-name>
    </prefer-application-packages>
   ....

2) Adding another dependency for geronimo-ws-metadata_2.0_spec-1.1.1.jar

After that the service was deployable without any complaints from the server. 
The WSDl was acceptable via web-browser. Using SOAPUI still gives me the HTTP 
500 error. So I decided to search for the reasons in the weblogic logs. Here I 
found some sort of LinkageError which complains about 
javax/xml/stream/XMLStreamReader. It seems that different Versions of this 
class were loaded in different classloaders. So I serached for the JAR-File, 
containing this class. The Jar-File is stax-api-1.0-2.jar, which I simply 
exclude from cxf-rt-frontend-jaxws-dependency in the parent pom. After a 
redeployment, the SOAPUI call suceeds!

Thanks very much for your support!

Greetings
Sven


-----Ursprüngliche Nachricht-----
Von: Glen Mazza [mailto:[email protected]] 
Gesendet: Freitag, 16. September 2011 05:13
An: [email protected]
Betreff: Re: AW: AW: Deployment of CXF webservice to Weblogic 10.1.3.3 breaks 
with exception: Invalid schema document passed to 
AbstractDataBinding.addSchemaDocument, not in W3C schema namespace

A couple of other options if you still can't get a CXF client to work:

1.) You can try deploying the Metro version of DoubleIt on the 10.1.3.3, and 
see if a client (Metro or CXF or SOAP UI) can access it.  (Always check first 
if you can view the ?wsdl from a browser.)  This is just to see if the problem 
is with Weblogic or with CXF, also different web stacks give different error 
messages helping to pinpoint the problem.  
Wireshark
(http://www.jroller.com/gmazza/entry/soap_calls_over_wireshark) may be of help 
in debugging.

2.) You claim it works with 10.1.3.5 but not 10.1.3.3; with that minor a 
release change it's possible but odd that CXF would work in one but not the 
other, causing me to think there's something else with your customer's 10.1.3.3 
setup to cause the web service not to work.  Perhaps you should install 
10.1.3.3 separately just like you did 10.1.3.5 -- if
10.1.3.3 works locally then the problem might be someplace else in your 
customer's setup--perhaps some proxy or filter regarding HTTP calls.

Glen


On 09/15/2011 04:13 PM, Bernhardt, Sven wrote:
> Unfortunately an upgrade won't be a valid option at the moment, because it is 
> the system of our customer, which contains additional components that also 
> has to be updated. I don't think our customer will do that the next time.
>
> In my ear-File I've included a weblogic-application which I used to prefer 
> particular packages, following the guide you mention. But in this point I 
> think I've to figure out, which additional Jars I need to include so that I 
> can work with my CXF-service. I have to do some more trail and error.
> Regarding the error I want to mention that the same error occurs using the 
> WSClient-Class from doubltIt-example. The error does not only occur when I 
> use SOAPUI for test. I only changed the address-Attribute in the wsdl for my 
> test, without appending a ?WSDL.
>
> Greetings
> Sven
>
> -----Ursprüngliche Nachricht-----
> Von: Glen Mazza [mailto:[email protected]]
> Gesendet: Donnerstag, 15. September 2011 18:29
> An: [email protected]
> Betreff: Re: AW: Deployment of CXF webservice to Weblogic 10.1.3.3 
> breaks with exception: Invalid schema document passed to 
> AbstractDataBinding.addSchemaDocument, not in W3C schema namespace
>
> Can you upgrade to WL 10.1.3.5?  If no, in the older versions (I didn't test 
> 10.1.3.3/4, but I mean the 10.1.2, and older series)  I needed to place in 
> particular libraries in the<prefer-application-packages>  as specified here:
>
> https://cwiki.apache.org/CXF20DOC/application-server-specific-configur
> ation-guide.html#ApplicationServerSpecificConfigurationGuide-WebLogic
>
> However, the actual libraries you need to place in there seem to differ from 
> version to version and also depends on what libraries your web service is 
> using (it may take trial-and-error, and I'm not sure it would even fix your 
> problem below).  10.1.3.5 was the first version where I didn't have to do 
> that.
>
> The problem you're having in #2 might be a SOAP UI bug and not a web service 
> one, it's easy to run DoubleIt's client (mvn exec:exec from the client 
> folder) as another check of the web service.
>
> HTH,
> Glen
>
> On 09/15/2011 11:31 AM, Bernhardt, Sven wrote:
>> I've went through your tutorial:
>>
>> Hi Glenn,
>>
>> Thanks for the links. They're very helpful. I've made the following 
>> expierences:
>>
>> 1) DoubleIt on Tomcat works, my service also works on Tomcat (Tomcat 7.0.1).
>>
>> 2) I managed it to get the doubleIt-Service running on weblogic, but only on 
>> weblogic 10.1.3.5. All other version I've tried 10.1.3.3 and 10.1.3.4 failed 
>> with the doubleIt service. Then I made some changes to doubleIt and get the 
>> service deployed successfully on 10.1.3.3. But when starting the client (or 
>> if I make a SOAPUi-call) I've got a HTTP 500 error. It seems that my request 
>> is interpreted like a normal HTTP GET, no idea why. I've searched in the 
>> Log-Files and found the Exception, which causes the HTTP 500 error:
>>
>> org.apache.cxf.interceptor.Fault: No such operation:  (HTTP GET PATH_INFO: 
>> /doubleit/services/doubleit)
>>      at 
>> org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:88)
>>      at 
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>>      at 
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>>      at 
>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
>>      at 
>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:218)
>>      at 
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:200)
>>      at 
>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:114)
>>      at 
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185)
>>      at 
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:113)
>>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>>      at 
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
>>      at 
>> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
>>      at 
>> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
>>      at 
>> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
>>      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
>>      at 
>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
>>      at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
>>      at 
>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
>>      at 
>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
>>      at 
>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
>>      at 
>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>>      at 
>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>>      at 
>> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
>>      at 
>> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
>>      at 
>> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
>>      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
>>      at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
>>
>> Now I am stuck again...
>>
>> Greetings
>> Sven
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Glen Mazza [mailto:[email protected]]
>> Gesendet: Mittwoch, 14. September 2011 21:20
>> An: [email protected]
>> Betreff: Re: Deployment of CXF webservice to Weblogic 10.1.3.3 breaks 
>> with exception: Invalid schema document passed to 
>> AbstractDataBinding.addSchemaDocument, not in W3C schema namespace
>>
>> Couple of possibilities if you can't get any more specific help from others:
>>
>> 1.)  Does your webservice work on Tomcat?  We first would want to 
>> eliminate any possible problems with the service itself before 
>> introducing more sources of error with the more complex WebLogic
>> container:  http://www.jroller.com/gmazza/entry/web_service_tutorial
>>
>> 2.)  Can you deploy my bare-bones DoubleIt webservice to your WebLogic 
>> container?  The next goal would be to make sure there's nothing wrong with 
>> your Weblogic installation itself before considering your more complex web 
>> service:
>> http://www.jroller.com/gmazza/entry/deploying_webservices_on_weblogic
>>
>> HTH,
>> Glen
>>
>> On 09/14/2011 08:06 AM, Bernhardt, Sven wrote:
>>> Hi,
>>>
>>> I have a CXF webservice, which I want to deploy to Oracle Weblogic Server 
>>> 10.1.3.3.
>>> After facing some classloading issues, by introducing a special Weblogic 
>>> delployment descriptor weblogic.xml, telling the Weblogic server to prefer 
>>> the usage of jars contained in WEB-INF/lib, I thought everything will be 
>>> fine. But it wasn't...
>>>
>>> Another exception occurred, when deploying the archive tells me the 
>>> following: "Invalid schema document passed to 
>>> AbstractDataBinding.addSchemaDocument, not in W3C schema namespace", the 
>>> associated stacktrace in the Log-File shows me more details, but I can't 
>>> really imagine what is wrong. Stacktrace details are:
>>>
>>> weblogic.application.ModuleException: [HTTP:101216]Servlet: "cxf" failed to 
>>> preload on startup in Web application: "testservice.war".
>>> org.springframework.beans.factory.BeanCreationException: Error creating 
>>> bean with name 'TestService': Invocation of init method failed; nested 
>>> exception is javax.xml.ws.WebServiceException: java.lang.RuntimeException: 
>>> Invalid schema document passed to AbstractDataBinding.addSchemaDocument, 
>>> not in W3C schema namespace
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
>>>           at 
>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
>>>           at 
>>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
>>>           at 
>>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>>>           at 
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:114)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:55)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:56)
>>>           at 
>>> weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
>>>           at 
>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>>>           at 
>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>>>           at 
>>> weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
>>>           at 
>>> weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
>>>           at 
>>> weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
>>>           at 
>>> weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539)
>>>           at 
>>> weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1976)
>>>           at 
>>> weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1950)
>>>           at 
>>> weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1869)
>>>           at 
>>> weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3126)
>>>           at 
>>> weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1512)
>>>           at 
>>> weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)
>>>           at 
>>> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
>>>           at 
>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
>>>           at 
>>> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
>>>           at 
>>> weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
>>>           at 
>>> weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
>>>           at 
>>> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
>>>           at 
>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
>>>           at 
>>> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
>>>           at 
>>> weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
>>>           at 
>>> weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
>>>           at 
>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
>>>           at 
>>> weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
>>>           at 
>>> weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:43)
>>>           at 
>>> weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
>>>           at 
>>> weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
>>>           at 
>>> weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
>>>           at 
>>> weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
>>>           at 
>>> weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
>>>           at 
>>> weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
>>>           at 
>>> weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
>>>           at 
>>> weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
>>>           at 
>>> weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
>>>           at 
>>> weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
>>>           at 
>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
>>>           at 
>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
>>>           at 
>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
>>>           at 
>>> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
>>>           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
>>>           at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
>>> Caused by: javax.xml.ws.WebServiceException: java.lang.RuntimeException: 
>>> Invalid schema document passed to AbstractDataBinding.addSchemaDocument, 
>>> not in W3C schema namespace
>>>           at 
>>> org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:350)
>>>           at 
>>> org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:240)
>>>           at 
>>> org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:510)
>>>           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:597)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
>>>           at 
>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
>>>           at 
>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
>>>           at 
>>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
>>>           at 
>>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:896)
>>>           at 
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:114)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:55)
>>>           at 
>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:56)
>>>           at 
>>> weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
>>>           at 
>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>>>           at 
>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
>>> ...
>>>
>>> Besides the try to add weblogic.xml, I also tried to package the CXF 
>>> webservice into an EAR-File, adding a application.xml and a special 
>>> weblogic-application.xml, which tells the server the packages to prefer, in 
>>> META-INF-Folder. But the deployment will not succeed, no matter if I do a 
>>> WAR- or an EAR-deployment.
>>>
>>> I tried different CXF version (2.4.2, 2.3.6, 2.2.12), but nothing changes 
>>> the described behavior. I also tried to build some example projects, 
>>> included in the apache-cxf.zip-File, but even these examples led to the 
>>> same exception.
>>>
>>> Any ideas about this issue? It can't be such a problem to deploy simple CXF 
>>> webservices to a Weblogic server instance...
>>>
>>> Greetings
>>> Sven
>>>
>>>
>> --
>> Glen Mazza
>> Talend - http://www.talend.com/ai
>> Blog - http://www.jroller.com/gmazza
>> Twitter - glenmazza
>>
>
> --
> Glen Mazza
> Talend - http://www.talend.com/ai
> Blog - http://www.jroller.com/gmazza
> Twitter - glenmazza
>


--
Glen Mazza
Talend - http://www.talend.com/ai
Blog - http://www.jroller.com/gmazza
Twitter - glenmazza

Reply via email to