axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Isuru Suriarachchi <isur...@gmail.com>
Subject Re: svn commit: r991441 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java
Date Wed, 29 Sep 2010 12:57:16 GMT
Hi Andreas,

I applied your solution into codegen engine. It solves the original problem
and WSDL11ActionHelper#getWSAWActionExtensionAttribute method returns the
correct action (http://../..). But unfortunately this fix creates a separate
issue.

WSDL11ToAxisServiceBuilder#findPort method finds a SOAP port. There, it
checks whether the extensibility elements returned by
port.getExtensibilityElements() method is of SOAP 1.1, SOAP 1.2 or HTTP
type. But when I apply the above fix, it retuns ports of some unknown type
and generates an invalid code. And also it prints the following log on the
console.

"A SOAP port was not found - picking a random port!"

I'm attaching the patch here and you can apply it and check the above method
to reproduce the issue.

Thanks,
~Isuru

On Tue, Sep 28, 2010 at 5:58 PM, Isuru Suriarachchi <isurues@gmail.com>wrote:

>
>
> On Mon, Sep 27, 2010 at 9:48 PM, Andreas Veithen <
> andreas.veithen@gmail.com> wrote:
>
>> 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?
>>
>
> Sure. Will do the changes and update the list..
>
> Thanks,
> ~Isuru
>
>
>>
>> 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
>>
>>
>
>
> --
> Technical Lead,
> WSO2 Inc. http://wso2.org/
> Blog : http://isurues.wordpress.com/
>



-- 
Technical Lead,
WSO2 Inc. http://wso2.org/
Blog : http://isurues.wordpress.com/

Mime
View raw message