Sandy Perez created CXF-4452:
--------------------------------
Summary: NullPointerException when trying to customize the package
name for a service definition without customizing the class name.
Key: CXF-4452
URL: https://issues.apache.org/jira/browse/CXF-4452
Project: CXF
Issue Type: Bug
Components: Tooling
Affects Versions: 2.6.1
Environment: JDK v1.7
Maven v3.0.4
cxf-codegen-plugin v2.6.1
Reporter: Sandy Perez
Priority: Minor
Hello
When I try to use jax-ws customization to customize the package name without
customizing the class name, for example using the following XML code
<bindings wsdlLocation="myService.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<bindings node="wsdl:definitions/wsdl:service[@name='MyService_V1']">
<package name="com.acme.myservice.v1.wsdl"/>
</bindings>
</bindings>
I get the following exception:
[WARNING] WSDLToJava Error: java.lang.NullPointerException
[WARNING]
[WARNING] org.apache.cxf.tools.common.ToolException:
java.lang.NullPointerException
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:294)
[WARNING] at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184)
[WARNING] Caused by: java.lang.NullPointerException
[WARNING] at
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.ServiceProcessor.processService(ServiceProcessor.java:207)
[WARNING] at
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.ServiceProcessor.process(ServiceProcessor.java:100)
[WARNING] at
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor.wsdlDefinitionToJavaModel(WSDLToJavaProcessor.java:91)
[WARNING] at
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor.process(WSDLToJavaProcessor.java:60)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:253)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:139)
[WARNING] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:286)
[WARNING] ... 4 more
The problem is in the class named
‘org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.
ServiceProcessor’ in line 207:
if (serviceBinding2.getJaxwsClass().getComments() != null) {
…
}
If you don’t customize the class name, serviceBinding2.getJaxwsClass() will
returns null so calling getComments() results in a NullPointerException .
A possible quick solution could be to change the condition as follows:
if (serviceBinding2.getJaxwsClass() != null &&
serviceBinding2.getJaxwsClass().getComments() != null) {
…
}
On the other hand, a possible workaround is to customize the class name. For
example, the following XML code will work fine.
<bindings wsdlLocation="myService.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<bindings node="wsdl:definitions/wsdl:service[@name='MyService_V1']">
<package name="com.acme.myservice.v1.wsdl"/>
<class name="MyServiceV1" />
</bindings>
</bindings>
Best regards,
----
Sandy Pérez González
Indaba Consultores S.L.
http://www.indaba.es/
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira