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.