Isuru, Actually, the proper way of doing this is to configure an ExtensionRegistry on the WSDLReader so that WSDL4J knows what is the expected type for the wsas:Action attribute (otherwise it will try to guess the attribute type, and this fails in this particular case). Here is the code that should be added in the appropriate place in Axis2 ("reader" is the WSDLReader instance):
ExtensionRegistry extReg = new ExtensionRegistry(); extReg.registerExtensionAttributeType(Input.class, new QName("http://www.w3.org/2006/05/addressing/wsdl", "Action"), AttributeExtensible.STRING_TYPE); extReg.registerExtensionAttributeType(Output.class, new QName("http://www.w3.org/2006/05/addressing/wsdl", "Action"), AttributeExtensible.STRING_TYPE); reader.setExtensionRegistry(extReg); Can you do the necessary changes? Andreas On Tue, Sep 7, 2010 at 13:36, Isuru Suriarachchi <isur...@gmail.com> wrote: > Attaching the wsdl and the schema.. > > Thanks, > ~Isuru > > On Tue, Sep 7, 2010 at 2:06 AM, Andreas Veithen <andreas.veit...@gmail.com> > wrote: >> >> Isuru, >> >> Can you send me a sample WSDL for which the problem occurs? >> >> Andreas >> >> On Mon, Sep 6, 2010 at 10:24, Isuru Suriarachchi <isur...@gmail.com> >> wrote: >> > >> > >> > On Sun, Sep 5, 2010 at 2:24 PM, Andreas Veithen >> > <andreas.veit...@gmail.com> >> > wrote: >> >> >> >> On Sun, Sep 5, 2010 at 05:12, Isuru Suriarachchi <isur...@gmail.com> >> >> wrote: >> >> > >> >> > >> >> > On Sat, Sep 4, 2010 at 5:26 PM, Andreas Veithen >> >> > <andreas.veit...@gmail.com> >> >> > wrote: >> >> >> >> >> >> On Thu, Sep 2, 2010 at 08:39, Isuru Suriarachchi <isur...@gmail.com> >> >> >> wrote: >> >> >> > >> >> >> > >> >> >> > On Thu, Sep 2, 2010 at 1:47 AM, Andreas Veithen >> >> >> > <andreas.veit...@gmail.com> >> >> >> > wrote: >> >> >> >> >> >> >> >> How can a namespace prefix conflict with a URI scheme? That >> >> >> >> sounds >> >> >> >> like a quick and dirty workaround for a more fundamental issue. >> >> >> > >> >> >> > Let me explain it further.. I came up with a WSDL generated by our >> >> >> > AxisService2WSDL11 class which has the following wsaw:Action for >> >> >> > some >> >> >> > message of some operation. >> >> >> > >> >> >> > wsaw:Action="http://www.webtest.org/echoStringMethodRequest" >> >> >> > >> >> >> > And also there is a namespace declaration in this WSDL as >> >> >> > follows.. >> >> >> > >> >> >> > xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >> >> >> > >> >> >> > When I generate the stub for this WSDL, it sets the Action on the >> >> >> > stub >> >> >> > as >> >> >> > follows.. >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > _operationClient.getOptions().setAction("//www.webtest.org/echoStringMethodRequest"); >> >> >> > >> >> >> > So this is due to the usage of "http" as a namespace prefix and it >> >> >> > has >> >> >> > treated the http://.. URL as <prefix>:<localname>. >> >> >> >> >> >> The SOAP action is a URI, not a QName, so there is no reason why the >> >> >> code generator would interpret "http" as a prefix. >> >> > >> >> > Yes agreed.. >> >> > >> >> >> >> >> >> I think you should >> >> >> try to determine why it is doing that instead of working around the >> >> >> issue by changing the WSDL generation code. >> >> > >> >> > I did have a look into the code generator code. There, wsdl4j returns >> >> > the >> >> > action as a QName. That is why this issue occurs. Have a look at the >> >> > getWSAWActionExtensionAttribute(AttributeExtensible ae) method in >> >> > WSDL11ActionHelper. Ideally it should provide a method to get the >> >> > string >> >> > value of the attribute. But currently there's no such method. >> >> >> >> Then I would suggest to review the following code in >> >> WSDL11ActionHelper#getWSAWActionExtensionAttribute: >> >> >> >> if (attribute instanceof QName) { >> >> QName qn = (QName) attribute; >> >> attribute = qn.getLocalPart(); >> >> } >> >> >> >> The code is used only for the action attribute and we know that the >> >> action is not a QName. Thus, instead of just taking the local part, we >> >> should rebuild the qualified name (prefix + ":" + localPart) to >> >> reconstruct the original value of the attribute. WDYT? >> > >> > Actually I initially tried this as well. But as Amila has already >> > pointed >> > out, prefix is "" in this case. >> > >> >> >> >> >> >> >> >> > Thanks, >> >> >> > ~Isuru >> >> >> > >> >> >> >> >> >> >> >> Andreas >> >> >> >> >> >> >> >> On Wed, Sep 1, 2010 at 07:47, <isur...@apache.org> wrote: >> >> >> >> > Author: isurues >> >> >> >> > Date: Wed Sep 1 05:47:27 2010 >> >> >> >> > New Revision: 991441 >> >> >> >> > >> >> >> >> > URL: http://svn.apache.org/viewvc?rev=991441&view=rev >> >> >> >> > Log: >> >> >> >> > changing the http prefix from http to http1. This is because, >> >> >> >> > use >> >> >> >> > of >> >> >> >> > http as a prefix causes conflicts with actual URLs like >> >> >> >> > http://foo.com >> >> >> >> > >> >> >> >> > Modified: >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java >> >> >> >> > >> >> >> >> > Modified: >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java >> >> >> >> > URL: >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java?rev=991441&r1=991440&r2=991441&view=diff >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > ============================================================================== >> >> >> >> > --- >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java >> >> >> >> > (original) >> >> >> >> > +++ >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java >> >> >> >> > Wed Sep 1 05:47:27 2010 >> >> >> >> > @@ -45,7 +45,7 @@ public interface Java2WSDLConstants { >> >> >> >> > >> >> >> >> > String HTTP_NAMESPACE = >> >> >> >> > "http://schemas.xmlsoap.org/wsdl/http/"; >> >> >> >> > String MIME_NAMESPACE = >> >> >> >> > "http://schemas.xmlsoap.org/wsdl/mime/"; >> >> >> >> > - String HTTP_PREFIX = "http"; >> >> >> >> > + String HTTP_PREFIX = "http1"; >> >> >> >> > String MIME_PREFIX = "mime"; >> >> >> >> > String URN_PREFIX = "urn"; >> >> >> >> > String COLON_SEPARATOR = ":"; >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org >> >> >> >> For additional commands, e-mail: java-dev-h...@axis.apache.org >> >> >> >> >> >> >> > >> >> >> > >> >> >> > >> >> >> > -- >> >> >> > Technical Lead, >> >> >> > WSO2 Inc. http://wso2.org/ >> >> >> > Blog : http://isurues.wordpress.com/ >> >> >> > >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org >> >> >> For additional commands, e-mail: java-dev-h...@axis.apache.org >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Technical Lead, >> >> > WSO2 Inc. http://wso2.org/ >> >> > Blog : http://isurues.wordpress.com/ >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org >> >> For additional commands, e-mail: java-dev-h...@axis.apache.org >> >> >> > >> > >> > >> > -- >> > Technical Lead, >> > WSO2 Inc. http://wso2.org/ >> > Blog : http://isurues.wordpress.com/ >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org >> For additional commands, e-mail: java-dev-h...@axis.apache.org >> > > > > -- > Technical Lead, > WSO2 Inc. http://wso2.org/ > Blog : http://isurues.wordpress.com/ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org > For additional commands, e-mail: java-dev-h...@axis.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org