CXF-BC raises a NullPointerException if the targetEndpoint is not found
(without WSDL provided)
-----------------------------------------------------------------------------------------------
Key: SMXCOMP-649
URL: https://issues.apache.org/activemq/browse/SMXCOMP-649
Project: ServiceMix Components
Issue Type: Improvement
Components: servicemix-cxf-bc
Affects Versions: servicemix-cxf-bc-2009.01
Reporter: Jean-Baptiste Onofré
Assignee: Jean-Baptiste Onofré
Fix For: servicemix-cxf-bc-2009.02
Using the CXF-BC component without provided WSDL, if the
targetService/targetEndpoint is not found, the component raised a
NullPointerException:
javax.jbi.management.DeploymentException: java.lang.NullPointerException
at
org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:504)
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:97)
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:520)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:349)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:255)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:658)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:63)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:622)
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.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:115)
at
org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:397)
The xbean.xml looks like:
<?xml version="1.0"?>
<beans xmlns:nanthrax="http://www.nanthrax.net"
xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0">
<cxfse:endpoint service="nanthrax:cxfse-ns" endpoint="cxfse">
<cxfse:pojo>
<bean class="net.nanthrax.servicemix.tests.EchoImpl"/>
</cxfse:pojo>
</cxfse:endpoint>
</beans>
The solution is to add a target test in the validate() method to check if the
target endpoint exists (as we make for the HTTP component) and expose a WSDL.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.