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.

Reply via email to