JAXB Xpath always results in empty target node
-----------------------------------------------
Key: CXF-2225
URL: https://issues.apache.org/jira/browse/CXF-2225
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 2.2.1
Environment: Eclipse 3.4 / Maven / JAVA 5
CXF 2.2.1
wsdl2java Maven plugin version 2.1.4
Reporter: Deboschère Tony
Hi.
I have a wsdl file from third party.
I wanted to generate the cxf client from it.
In the WSDL I Have this :
in the portType section:
<operation name="JobSubmit">
<input message="xoa:JobSubmitRequest"/>
<output message="xoa:JobSubmitResult"/>
</operation>
In message section:
<message name="JobSubmitRequest">
<part element="xoa:JobSubmitRequest" name="parameter"/>
<part element="xoa:Request" name="request_header"/>
</message>
<message name="JobSubmitResult">
<part element="xoa:JobSubmitResult" name="parameter"/>
<part element="xoa:Response" name="response_header"/>
</message>
As you can see both message have a part named 'parameter'
It seems to be the reason why I have a java mehtod with a missing parameter :
@WebMethod(operationName = "JobSubmit", action = "XOAJobSubmit")
public void jobSubmit(
@WebParam(partName = "parameter", mode = WebParam.Mode.INOUT, name =
"JobSubmitResult", targetNamespace =
"http://premconn.premiereconnect.com/2007/02")
javax.xml.ws.Holder<JobSubmitResult> parameter,
@WebParam(partName = "request_header", name = "Request",
targetNamespace = "http://premconn.premiereconnect.com/2007/02", header = true)
Request requestHeader,
@WebParam(partName = "response_header", mode = WebParam.Mode.OUT, name
= "Response", targetNamespace = "http://premconn.premiereconnect.com/2007/02",
header = true)
javax.xml.ws.Holder<Response> responseHeader
);
So I try to use a JAXB Binding like this :
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" jxb:version="2.1"
xmlns="http://java.sun.com/xml/ns/jaxws"
wsdlLocation="./wsdl/syncTest.wsdl">
<jxb:bindings schemaLocation="../wsdl/syncTest.wsdl">
<jxb:schemaBindings>
<jxb:package
name="com.manpower.fmk.webservice.external.sms.schema" />
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="../wsdl/syncTest.wsdl">
<jxb:bindings
node="/xsd:definitions/xsd:messa...@name='JobSubmitRequest']/xsd:pa...@name='parameter']">
<jxb:attribute name="parameterRequest" />
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
But all I can get from the wsdl2java plugin is :
eason: Thrown by JAXB : XPath evaluation of
"/xsd:definitions/xsd:messa...@name='JobSubmitRequest']/xsd:pa...@name='parameter']"
results in empty target node
org.apache.cxf.tools.common.ToolException: Thrown by JAXB : XPath evaluation of
"/xsd:definitions/xsd:messa...@name='JobSubmitRequest']/xsd:pa...@name='parameter']"
results in empty target node
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JAXBBindErrorListener.java:34)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.java:285)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.reportError(Internalizer.java:504)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.reportError(Internalizer.java:495)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:232)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:289)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:289)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:134)
at
com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:96)
at
com.sun.tools.xjc.reader.internalizer.DOMForest.transform(DOMForest.java:448)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:221)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:218)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:536)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:187)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:232)
at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103)
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:360)
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:257)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)
at
org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
at
org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
at
org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)
at
org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304)
at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)
Caused by: com.sun.istack.SAXParseException2: XPath evaluation of
"/xsd:definitions/xsd:messa...@name='JobSubmitRequest']/xsd:pa...@name='parameter']"
results in empty target node
at
com.sun.tools.xjc.reader.internalizer.Internalizer.reportError(Internalizer.java:501)
... 31 more
So if someone has an hint about what is going on, I'd be gratefull.
Regards.
Deboschère Tony - France
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.