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-configuration-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