axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <andreas.veit...@gmail.com>
Subject Re: svn commit: r991441 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java
Date Mon, 27 Sep 2010 16:18:34 GMT
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 <isurues@gmail.com> wrote:
> Attaching the wsdl and the schema..
>
> Thanks,
> ~Isuru
>
> On Tue, Sep 7, 2010 at 2:06 AM, Andreas Veithen <andreas.veithen@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 <isurues@gmail.com>
>> wrote:
>> >
>> >
>> > On Sun, Sep 5, 2010 at 2:24 PM, Andreas Veithen
>> > <andreas.veithen@gmail.com>
>> > wrote:
>> >>
>> >> On Sun, Sep 5, 2010 at 05:12, Isuru Suriarachchi <isurues@gmail.com>
>> >> wrote:
>> >> >
>> >> >
>> >> > On Sat, Sep 4, 2010 at 5:26 PM, Andreas Veithen
>> >> > <andreas.veithen@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> On Thu, Sep 2, 2010 at 08:39, Isuru Suriarachchi <isurues@gmail.com>
>> >> >> wrote:
>> >> >> >
>> >> >> >
>> >> >> > On Thu, Sep 2, 2010 at 1:47 AM, Andreas Veithen
>> >> >> > <andreas.veithen@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,  <isurues@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-unsubscribe@axis.apache.org
>> >> >> >> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > Technical Lead,
>> >> >> > WSO2 Inc. http://wso2.org/
>> >> >> > Blog : http://isurues.wordpress.com/
>> >> >> >
>> >> >>
>> >> >>
>> >> >> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> >> >> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Technical Lead,
>> >> > WSO2 Inc. http://wso2.org/
>> >> > Blog : http://isurues.wordpress.com/
>> >> >
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> >> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >>
>> >
>> >
>> >
>> > --
>> > Technical Lead,
>> > WSO2 Inc. http://wso2.org/
>> > Blog : http://isurues.wordpress.com/
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>
>
>
> --
> Technical Lead,
> WSO2 Inc. http://wso2.org/
> Blog : http://isurues.wordpress.com/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message