This question is really related to CXF so I'd rather ask on the CXF mailing
lists, where more people will be able to help you. Post back any solution
for future reference please...
On 9/18/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
>
> I decided to convert one of my servicemix services over to cxf which was
> working great on xfire. I added the cxf wsdl2java plugin for maven like
> this:
>
> <plugin>
> <groupId>org.apache.cxf</groupId>
> <artifactId>cxf-codegen-plugin</artifactId>
> <version>${cxf-version}</version>
> <dependencies>
> <dependency>
> <groupId>org.apache.cxf </groupId>
> <artifactId>cxf-rt-bindings-soap</artifactId>
> <version>${cxf-version}</version>
> </dependency>
> </dependencies>
> <executions>
> <execution>
> <phase>generate-sources</phase>
> <configuration>
> <sourceRoot>${project.build.directory
> }/generated-sources/jaxws</sourceRoot>
>
> <wsdlOptions>
> <wsdlOption>
>
> <wsdl>${basedir}/src/main/resources/CommunicationService.wsdl</wsdl>
> <extraargs>
> <extraarg>-verbose</extraarg>
> </extraargs>
> </wsdlOption>
> </wsdlOptions>
> </configuration>
> <goals>
> <goal>wsdl2java</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
>
> and got this exception:
>
> WSDLToJava Error : java.lang.NullPointerException
>
> org.apache.cxf.tools.common.ToolException : java.lang.NullPointerException
> at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(
> WSDLToJavaContainer.java:242)
> at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(
> ToolRunner.java:83)
> at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:102)
> at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java
> :171)
> at org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl (
> WSDL2JavaMojo.java:186)
> at org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(
> WSDL2JavaMojo.java:102)
> at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
> DefaultPluginManager.java:443)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor
> .executeGoals(
> DefaultLifecycleExecutor.java:539)
> at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor
> .executeGoalWithLifecycle
> (DefaultLifecycleExecutor.java:480
> )
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor
> .executeGoal(
> DefaultLifecycleExecutor.java:459)
> at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor
> .executeGoalAndHandleFailures
> (DefaultLifecycleExecutor.java
> :311)
> at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
> DefaultLifecycleExecutor.java:278)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
> DefaultLifecycleExecutor.java :143)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
> 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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
> :315)
> at org.codehaus.classworlds.Launcher.launch (Launcher.java:255)
> at org.codehaus.classworlds.Launcher.mainWithExitCode(
> Launcher.java
> :430)
> at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: java.lang.NullPointerException
> at org.apache.cxf.tools.util.SOAPBindingUtil.getSoapHeaders(
> SOAPBindingUtil.java:199)
> at org.apache.cxf.binding.soap.SoapBindingFactory.initialize
> Message(
> SoapBindingFactory.java:507)
> at
> org.apache.cxf.binding.soap.SoapBindingFactory.initializeBindingOperation
> (
> SoapBindingFactory.java:493)
> at org.apache.cxf.binding.soap.SoapBindingFactory.createBind
> ingInfo(
> SoapBindingFactory.java:468)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildBinding(
> WSDLServiceBuilder.java :490)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:264)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:154)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices (
> WSDLServiceBuilder.java:143)
> at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(
> WSDLToJavaContainer.java:161)
> at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(
> WSDLToJavaContainer.java :234)
> ... 23 more
>
> I took out the dependency cxf-rt-bindings-soap since I'm not using an
> headers in my wsdl. When I did, this error went away.
>
> My service will then build, when I deploy it though, I get the same error
> again and the service archive won't deploy. I don't understand why it
> keeps
> expecting me to use soap headers when I'm not using them:
>
> INFO - DeploymentService - UnDeployed ServiceUnit
> CommunicationService-jsr181-su from Component: servicemix
> -cxf-se
> ERROR - AutoDeploymentService - Failed to update Service
> Assembly:
> CommunicationServiceSA-1.0-SNAPSHOT.0.tmp
> java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
> version="1.0">
> <jbi-task-result>
> <frmwk-task-result>
> <frmwk-task-result-details>
> <task-result-details>
> <task-id>deploy</task-id>
> <task-result>FAILED</task-result>
> <message-type>ERROR</message-type>
> </task-result-details>
> </frmwk-task-result-details>
> </frmwk-task-result>
> <component-task-result xmlns="
> http://java.sun.com/xml/ns/jbi/management-message">
> <component-name>servicemix-cxf-se</component-name>
> <component-task-result-details>
> <task-result-details>
> <task-id>deploy</task-id>
> <task-result>SUCCESS</task-result>
> </task-result-details>
> </component-task-result-details>
> </component-task-result>
> <component-task-result>
> <component-name>servicemix-cxf-bc</component-name>
> <component-task-result-details>
> <task-result-details>
> <task-id>deploy</task-id>
> <task-result>FAILED</task-result>
> <message-type>ERROR</message-type>
> <task-status-msg>
> <msg-loc-info>
> <loc-token/>
> <loc-message>Unable to parse result string</loc-message>
> </msg-loc-info>
> </task-status-msg>
> <exception-info>
> <nesting-level>1</nesting-level>
> <loc-token/>
> <loc-message>java.lang.NullPointerException</loc-message>
> <stack-trace><![CDATA[javax.jbi.management.DeploymentException:
> java.lang.NullPointerException
> at org.apache.servicemix.cxfbc.CxfBcConsumer.validate(
> CxfBcConsumer.java:288)
> at org.apache.servicemix.common.AbstractDeployer.validate(
> AbstractDeployer.java:58)
> at org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
> BaseXBeanDeployer.java:55)
> at org.apache.servicemix.common.xbean.AbstractXBeanDeployer
> .deploy(
> AbstractXBeanDeployer.java:95)
> at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
> BaseServiceUnitManager.java:88)
> at org.apache.servicemix.common.BaseServiceUnitManager.deploy(
> BaseServiceUnitManager.java:69)
> at
> org.apache.servicemix.jbi.framework.DeploymentService
> .deployServiceAssembly(
> DeploymentService.java:508)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs(
> AutoDeploymentService.java:479)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce.checkPendingComponents
> (AutoDeploymentService.java:53
> 2)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce.updateSharedLibrary
> (AutoDeploymentService.java:314)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
> AutoDeploymentService.java:251)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
> (
> AutoDeploymentService.java:647)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
> AutoDeploymentService.java:60)
> at org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce$1.run(
> AutoDeploymentService.java:611)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> Caused by: java.lang.NullPointerException
> at org.apache.cxf.tools.util.SOAPBindingUtil.getSoapHeaders(
> SOAPBindingUtil.java:199)
> at org.apache.cxf.binding.soap.SoapBindingFactory.initialize
> Message(
> SoapBindingFactory.java:507)
> at
> org.apache.cxf.binding.soap.SoapBindingFactory.initializeBindingOperation(
> SoapBindingFactory.java:493)
> at org.apache.cxf.binding.soap.SoapBindingFactory.createBind
> ingInfo(
> SoapBindingFactory.java:468)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildBinding(
> WSDLServiceBuilder.java:490)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:264)
> at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:158)
> at org.apache.cxf.wsdl11.WSDLServiceFactory.create(
> WSDLServiceFactory.java:117)
> at org.apache.servicemix.cxfbc.CxfBcConsumer.validate(
> CxfBcConsumer.java:215)
> ... 15 more
> ]]></stack-trace>
> </exception-info>
> </task-result-details>
> </component-task-result-details>
> </component-task-result>
> </jbi-task-result>
> </jbi-task>
>
> at org.apache.servicemix.jbi.framework.ManagementSupport.failure(
> ManagementSupport.java:125)
> at org.apache.servicemix.jbi.framework.ManagementSupport.failure(
> ManagementSupport.java:111)
> at
> org.apache.servicemix.jbi.framework.DeploymentService
> .deployServiceAssembly(
> DeploymentService.java:543)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs(
> AutoDeploymentService.java:479)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce.checkPendingComponents
> (AutoDeploymentService.java:53
> 2)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce.updateSharedLibrary
> (AutoDeploymentService.java:314)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
> AutoDeploymentService.java:251)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
> (
> AutoDeploymentService.java:647)
> at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
> AutoDeploymentService.java:60)
> at org.apache.servicemix.jbi.framework.AutoDeploymentServi
> ce$1.run(
> AutoDeploymentService.java:611)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/