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.initializeMessage(
SoapBindingFactory.java:507)
        at
org.apache.cxf.binding.soap.SoapBindingFactory.initializeBindingOperation (
SoapBindingFactory.java:493)
        at org.apache.cxf.binding.soap.SoapBindingFactory.createBindingInfo(
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.AutoDeploymentService.checkPendingComponents
(AutoDeploymentService.java:53
2)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.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.AutoDeploymentService$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.initializeMessage(
SoapBindingFactory.java:507)
        at
org.apache.cxf.binding.soap.SoapBindingFactory.initializeBindingOperation(
SoapBindingFactory.java:493)
        at org.apache.cxf.binding.soap.SoapBindingFactory.createBindingInfo(
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.AutoDeploymentService.checkPendingComponents
(AutoDeploymentService.java:53
2)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.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.AutoDeploymentService$1.run(
AutoDeploymentService.java:611)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

Reply via email to