[ https://issues.apache.org/jira/browse/CXF-4877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yan Min Sheng updated CXF-4877: ------------------------------- Component/s: (was: Core) Integration Estimated Complexity: Novice (was: Unknown) Description: There are two key conditions to reproduce this problem: 1. The targetNamesapce of SEI and impl class is different; 2. Add @Action annotation in SEI. SEI: @WebService(name = "SimonTestOne", targetNamespace = "iftest.interfaces.webservice_g2.annotations") @XmlSeeAlso({ ObjectFactory.class }) public interface SimonTestOne { /** * * @param arg0 * @return * returns java.lang.String */ @WebMethod @WebResult(name = "notreturn", targetNamespace = "") @RequestWrapper(localName = "bareIfMethod", targetNamespace = "iftest.interfaces.webservice_g2.annotations", className = "annotations.webservice_g2.interfaces.iftest.BareIfMethod") @ResponseWrapper(localName = "bareIfMethodResponse", targetNamespace = "iftest.interfaces.webservice_g2.annotations", className = "annotations.webservice_g2.interfaces.iftest.BareIfMethodResponse") @Action(input = "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodRequest", output = "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodResponse") public String bareIfMethod( @WebParam(name = "arg0", targetNamespace = "") String arg0); } Impl class @WebService(targetNamespace="server.interfaces.webservice_g2.annotations", serviceName="ifimplsvc", portName="iftest", endpointInterface="annotations.webservice_g2.interfaces.server.SimonTestOne" ) public class SimonTestOneImpl{ // implemented from interface public String bareIfMethod(String s){return s;} } command: java2ws -cp . -verbose -client -server -wsdl -d "D:\temp\wsgencxf" -s "D:\temp\wsgencxf" The exception statck is: javax.wsdl.WSDLException: WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'http://www.w3.org/2007/05/addressing/metadata'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method. at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityAttributes(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printInput(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printOperations(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printPortTypes(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) at org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:99) at org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:1) at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.generate(JavaToWSDLProcessor.java:156) at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:118) at org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110) at org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40) at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:77) at org.apache.cxf.tools.java2ws.JavaToWS.main(JavaToWS.java:45) Environment: (was: There are two key conditions to reproduce this problem: 1. The targetNamesapce of SEI and impl class is different; 2. Add @Action annotation in SEI. SEI: @WebService(name = "SimonTestOne", targetNamespace = "iftest.interfaces.webservice_g2.annotations") @XmlSeeAlso({ ObjectFactory.class }) public interface SimonTestOne { /** * * @param arg0 * @return * returns java.lang.String */ @WebMethod @WebResult(name = "notreturn", targetNamespace = "") @RequestWrapper(localName = "bareIfMethod", targetNamespace = "iftest.interfaces.webservice_g2.annotations", className = "annotations.webservice_g2.interfaces.iftest.BareIfMethod") @ResponseWrapper(localName = "bareIfMethodResponse", targetNamespace = "iftest.interfaces.webservice_g2.annotations", className = "annotations.webservice_g2.interfaces.iftest.BareIfMethodResponse") @Action(input = "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodRequest", output = "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodResponse") public String bareIfMethod( @WebParam(name = "arg0", targetNamespace = "") String arg0); } Impl class @WebService(targetNamespace="server.interfaces.webservice_g2.annotations", serviceName="ifimplsvc", portName="iftest", endpointInterface="annotations.webservice_g2.interfaces.server.SimonTestOne" ) public class SimonTestOneImpl{ // implemented from interface public String bareIfMethod(String s){return s;} } command: java2ws -cp . -verbose -client -server -wsdl -d "D:\temp\wsgencxf" -s "D:\temp\wsgencxf" The exception statck is: javax.wsdl.WSDLException: WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'http://www.w3.org/2007/05/addressing/metadata'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method. at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityAttributes(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printInput(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printOperations(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printPortTypes(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) at org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:99) at org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:1) at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.generate(JavaToWSDLProcessor.java:156) at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:118) at org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110) at org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40) at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:77) at org.apache.cxf.tools.java2ws.JavaToWS.main(JavaToWS.java:45)) > CXF will throw javax.wsdl.WSDLException: WSDLException: > faultCode=OTHER_ERROR: Can't find prefix if the SEI has Action annotation > --------------------------------------------------------------------------------------------------------------------------------- > > Key: CXF-4877 > URL: https://issues.apache.org/jira/browse/CXF-4877 > Project: CXF > Issue Type: Bug > Components: Integration, Tooling > Affects Versions: 2.6.2 > Reporter: Yan Min Sheng > Attachments: CXF-4877.patch > > > There are two key conditions to reproduce this problem: > 1. The targetNamesapce of SEI and impl class is different; > 2. Add @Action annotation in SEI. > SEI: > @WebService(name = "SimonTestOne", targetNamespace = > "iftest.interfaces.webservice_g2.annotations") > @XmlSeeAlso({ > ObjectFactory.class > }) > public interface SimonTestOne { > /** > * > * @param arg0 > * @return > * returns java.lang.String > */ > @WebMethod > @WebResult(name = "notreturn", targetNamespace = "") > @RequestWrapper(localName = "bareIfMethod", targetNamespace = > "iftest.interfaces.webservice_g2.annotations", className = > "annotations.webservice_g2.interfaces.iftest.BareIfMethod") > @ResponseWrapper(localName = "bareIfMethodResponse", targetNamespace = > "iftest.interfaces.webservice_g2.annotations", className = > "annotations.webservice_g2.interfaces.iftest.BareIfMethodResponse") > @Action(input = > "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodRequest", > output = > "iftest.interfaces.webservice_g2.annotations/InterfaceTestOne/bareIfMethodResponse") > public String bareIfMethod( > @WebParam(name = "arg0", targetNamespace = "") > String arg0); > } > Impl class > @WebService(targetNamespace="server.interfaces.webservice_g2.annotations", > serviceName="ifimplsvc", > portName="iftest", > > endpointInterface="annotations.webservice_g2.interfaces.server.SimonTestOne" > ) > > public class SimonTestOneImpl{ > // implemented from interface > public String bareIfMethod(String s){return s;} > } > command: java2ws -cp . -verbose -client -server -wsdl -d "D:\temp\wsgencxf" > -s "D:\temp\wsgencxf" > The exception statck is: > javax.wsdl.WSDLException: WSDLException: faultCode=OTHER_ERROR: Can't find > prefix for 'http://www.w3.org/2007/05/addressing/metadata'. Namespace > prefixes must be set on the Definition object using the addNamespace(...) > method. > at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source) > at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source) > at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown > Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityAttributes(Unknown > Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.printInput(Unknown Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.printOperations(Unknown Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.printPortTypes(Unknown Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) > at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) > at > org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:99) > at > org.apache.cxf.tools.java2wsdl.generator.wsdl11.WSDL11Generator.generate(WSDL11Generator.java:1) > at > org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.generate(JavaToWSDLProcessor.java:156) > at > org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:118) > at > org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110) > at > org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40) > at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:77) > at org.apache.cxf.tools.java2ws.JavaToWS.main(JavaToWS.java:45) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira