ws-savan-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 Thu, 30 Sep 2010 12:24:38 GMT
On Thu, Sep 30, 2010 at 1:54 PM, Andreas Veithen
<andreas.veithen@gmail.com>wrote:

> Apparently, this is because my code creates an ExtensionRegistry from
> scratch. Creating the initial ExtensionRegistry using
> WSDLFactory#newPopulatedExtensionRegistry() should fix this.
>

Yes. This fixes the issue. Committed the fix for the original problem and
reverted the workaround I applied earlier. Thanks Andreas for pointing this
out..

~Isuru


>
> Andreas
>
> On Wed, Sep 29, 2010 at 14:57, Isuru Suriarachchi <isurues@gmail.com>
> wrote:
> > 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/
> >
> >
> > ---------------------------------------------------------------------
> > 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/

Mime
View raw message