You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by Michael Schuerig <mi...@schuerig.de> on 2004/12/03 23:39:17 UTC

Wrapped-style with the Java provider?

After looking into the code, my understanding is that the Java provider 
currently doesn't support wrapped-style. Has anyone found a workaround 
for this?

I have a rough idea what needs to be changed in WSIFOperation_Java, but 
I must admit that poking around in 400+ line methods is not my idea of 
fun.

Michael

-- 
Michael Schuerig                          Cold silence has a tendency
mailto:michael@schuerig.de         To atrophy any sense of compassion
http://www.schuerig.de/michael/                        --Tool, Schism

Re: Wrapped-style with the Java provider?

Posted by Aleksander Slominski <as...@cs.indiana.edu>.
Michael Schuerig wrote:

>On Monday 06 December 2004 10:48, Michael Schuerig wrote:
>  
>
>>  <wsdl:portType name="MyStuffPortType">
>>
>>    <wsdl:operation name="getVerfuegbareMyStuffse">
>>      <wsdl:input name="getVerfuegbareMyStuffseRequest"
>>       message="impl:getVerfuegbareMyStuffseRequest"/>
>>      <wsdl:output name="getVerfuegbareMyStuffseResponse"
>>       message="impl:getVerfuegbareMyStuffseResponse"/>
>>    </wsdl:operation>
>>
>>  </wsdl:portType>
>>    
>>
>
>No, this wasn't an attempt at Golum-speak. It should have been like this
>
>  
>
yes i thought it was pretty unusual name of operation especially that 
there was no message with this name in WSDL - secret operation? ;-)

alek

-- 
The best way to predict the future is to invent it - Alan Kay


RE: Wrapped-style with the Java provider?

Posted by Liran Zelkha <li...@alunasoft.com>.
Sorry for this mass SPAM, but I couldn't find an answer to this.
Is WSIF still supported? Version 2.0 was released more than a year ago, and
there are no nightly builds.
I found some references for complex type support - any info on where to find
the version that supports it?


Thank You,
Best Regards,

Liran Zelkha
Chief Architect
Aluna
Mobile: 972-54-3010714 
EMail: liran.zelkha@alunasoft.com



Re: Wrapped-style with the Java provider?

Posted by Michael Schuerig <mi...@schuerig.de>.
On Monday 06 December 2004 10:48, Michael Schuerig wrote:
>   <wsdl:portType name="MyStuffPortType">
>
>     <wsdl:operation name="getVerfuegbareMyStuffse">
>       <wsdl:input name="getVerfuegbareMyStuffseRequest"
>        message="impl:getVerfuegbareMyStuffseRequest"/>
>       <wsdl:output name="getVerfuegbareMyStuffseResponse"
>        message="impl:getVerfuegbareMyStuffseResponse"/>
>     </wsdl:operation>
>
>   </wsdl:portType>

No, this wasn't an attempt at Golum-speak. It should have been like this

  <wsdl:portType name="MyStuffPortType">

    <wsdl:operation name="getMyStuff">
      <wsdl:input name="getMyStuffRequest"
       message="impl:getMyStuffRequest"/>
      <wsdl:output name="getMyStuffResponse"
       message="impl:getMyStuffResponse"/>
    </wsdl:operation>

  </wsdl:portType>

Oh, the perils of copy and change.

Michael

-- 
Michael Schuerig            I was blessed with a birth and a death and
mailto:michael@schuerig.de     I guess I just want some say in between
http://www.schuerig.de/michael/         --Ani DiFranco, Talk To Me Now

Re: Wrapped-style with the Java provider?

Posted by Michael Schuerig <mi...@schuerig.de>.
On Monday 06 December 2004 05:58, Aleksander Slominski wrote:
> Michael Schuerig wrote:
> >After looking into the code, my understanding is that the Java
> > provider currently doesn't support wrapped-style. Has anyone found
> > a workaround for this?
>
> i am not 100% sure about it (i do not have test WSDLs handy) but i
> think Java binding is relatively simple ...

It may be simple relative to the other providers. Still it exemplifies a 
programming style that makes me scratch my head. I thought 400+ line 
methods with messy side-effects had died off years ago.

Well, WSIF is free, it works for a wide range of cases. If my case is 
not covered, the code is available for me to change it. In theory. In 
practice, I found that it would be inordinately hard to get the pieces 
I would have to touch under test.

> >I have a rough idea what needs to be changed in WSIFOperation_Java,
> > but I must admit that poking around in 400+ line methods is not my
> > idea of fun.
>
> what is it exactly that you want to do with wrapped-style? Java
> invocations in WSIF2 are on Java objects so I am not sure what
> "wrapped-style" means in this case?

A rudimentary WSDL looks like this

<wsdl:definitions ...>
  <types ...>
    <schema ...>
      ...
      <element name="getMyStuff">
        <complexType>
          <element name"whichone" type="xsd:string"/>
        </complexType>
      </element>

      <element name="getMyStuffResponse">
        <complexType>
          <sequence>
            <element name="stuff" type="impl:StuffDescriptor"
             minOccurs="0" maxOccurs="unbounded" />
          </sequence>
        </complexType>
      </element>

    </schema>
  </types>

  <wsdl:message name="getMyStuffRequest">
    <wsdl:part name="parameters" element="impl:getMyStuff"/>
  </wsdl:message>

  <wsdl:message name="getMyStuffResponse">
    <wsdl:part name="parameters" element="impl:getMyStuffResponse"/>
  </wsdl:message>

  <wsdl:portType name="MyStuffPortType">

    <wsdl:operation name="getVerfuegbareMyStuffse">
      <wsdl:input name="getVerfuegbareMyStuffseRequest"
       message="impl:getVerfuegbareMyStuffseRequest"/>
      <wsdl:output name="getVerfuegbareMyStuffseResponse"
       message="impl:getVerfuegbareMyStuffseResponse"/>
    </wsdl:operation>

  </wsdl:portType>
  ...
</wsdl:definitions>


Currently, such a WSDL won't work with the Java provider in the same way 
it does with SOAP. org.apache.wsif.providers.java.WSIFOperation_Java 
contains the relevant code.

There getMethods() tries to find methods in the "server" Java class that 
correspond to the operations in the WSDL. That method in turn calls 
getMethodArgumentClasses() and getMethodReturnClass(). Both of which 
don't extract the contained elements from their getMyStuff(Response) 
wrappers. As is, methods with the "unwrapped" signature are not found.

Changing that wouldn't be too complicated. What knocked me out, though, 
was executeRequestResponseOperation() (executeInputOnlyOperation() 
would have to be changed, too). I'm not even sure whether any 
un/wrapping would have to be done there. 

I take it that for someone familiar with the code (and test cases) the 
needed changes may well be trivial. I may have a go at it again, but 
for the time being I give Axis's Java transport a try.


Michael

-- 
Michael Schuerig                   The Fifth Rider of the Apocalypse
mailto:michael@schuerig.de         is a programmer.
http://www.schuerig.de/michael/

Re: Wrapped-style with the Java provider?

Posted by Michael Schuerig <mi...@schuerig.de>.
On Monday 06 December 2004 05:58, Aleksander Slominski wrote:
> could you send on puting jira example WSDL file and describe what
> exactly you want to do? having working code to reproduce problems
> helps greatly to fix them ;-)

I've entered an example at
http://nagoya.apache.org/jira/browse/WSIF-67

Michael

-- 
Michael Schuerig              The usual excuse for our most unspeakable
mailto:michael@schuerig.de      public acts is that they are necessary.
http://www.schuerig.de/michael/                      --Judith N. Shklar

Re: Wrapped-style with the Java provider?

Posted by Aleksander Slominski <as...@cs.indiana.edu>.
Michael Schuerig wrote:

>After looking into the code, my understanding is that the Java provider 
>currently doesn't support wrapped-style. Has anyone found a workaround 
>for this?
>  
>
i am not 100% sure about it (i do not have test WSDLs handy) but i think 
Java binding is relatively simple ...

>I have a rough idea what needs to be changed in WSIFOperation_Java, but 
>I must admit that poking around in 400+ line methods is not my idea of 
>fun.
>  
>
what is it exactly that you want to do with wrapped-style? Java 
invocations in WSIF2 are on Java objects so I am not sure what 
"wrapped-style" means in this case?

could you send on puting jira example WSDL file and describe what 
exactly you want to do? having working code to reproduce problems helps 
greatly to fix them ;-)

thanks,

alek

-- 
The best way to predict the future is to invent it - Alan Kay