users@jax-ws.java.net

Re: Invoking a .NET web service using JAX-WS 2.0

From: Vivek Pandey <Vivek.Pandey_at_Sun.COM>
Date: Tue, 22 Aug 2006 07:59:19 -0700

Hi Ryan,

Looking at the schema types its not obvious what might be going on at
.NET side. Is it possible that this operation is one-way? A complete
WSDL and schema will help see whats going on.

thnaks,

-vivek.
Ryan LeCompte wrote:
> Sorry, just one more thing. I should also mention that I was able to
> successfully invoke the same problematic operation on an endpoint that
> was built using JWSDP 1.6. So this really seems to be a .NET specific
> issue.
>
> Thanks!
>
> Ryan
>
> ------------------------------------------------------------------------
> *From:* Ryan LeCompte
> *Sent:* Tue 8/22/2006 10:24 AM
> *To:* users_at_jax-ws.dev.java.net
> *Cc:* dev_at_jax-ws.dev.java.net
> *Subject:* RE: Re: Invoking a .NET web service using JAX-WS 2.0
>
> Okay, I have some more information from further testing this morning.
> I actually used Netbeans 5.5. to auto-generate a web service client
> from the auto-generated .NET WSDL file
> (http://service/service.asmx?WSDL), and I tried invoking various
> methods on it. I was able to invoke one method on the .NET web service
> and get a response (which I could do previously), HOWEVER I'm not able
> to invoke another operation which looks like the following:
>
> handle(Type)
>
> Where in the WSDL, there are sub-types of Type, such as TypeA, and
> TypeB. I'm actually invoking the service with the JAX-WS client as
> handle(TypeA), however I'm not seeing that operation get invoked on
> the .NET side of the communication. THere are no exceptions/errors
> generated on the JAX-WS 2.0 side, either. Does this mean that JAX-WS
> has problems invoking .NET web services where the complex types are
> polymorphic? JWSDP 1.5/1.6 handled this exact same scenario without
> any trouble. Note that my custom WSDL hasn't changed from when I had
> it working on JWSDP and now trying with JAX-WS.
>
> To be more concrete, here's a WSDL snippet that demonstrates:
>
> <xsd:complexType name="Base" abstract="true">
> <xsd:sequence>
> <xsd:element name="someAttribute" type="xsd:int"
> minOccurs="1" maxOccurs="1"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="SubA">
> <xsd:complexContent>
> <xsd:extension base="tns:Base">
> <xsd:sequence>
> <xsd:element name="someOtherAttribute"
> type="xsd:string" minOccurs="1"
> maxOccurs="1"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="SubB">
> <xsd:complexContent>
> <xsd:extension base="tns:Base">
> <xsd:sequence>
> <xsd:element name="otherAttribute"
> type="xsd:string" minOccurs="0" maxOccurs="1"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
>
> </xsd:complexType>
>
> <xsd:complexType name="operationRequest">
> <xsd:sequence>
> <xsd:element name="values" type="tns:Base"
> minOccurs="1" maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
>
> It would be nice to hear if someone else can reproduce this problem,
> or provide a suggestion?
>
> Thanks!
>
> Ryan
> ------------------------------------------------------------------------
> *From:* Ryan LeCompte
> *Sent:* Mon 8/21/2006 8:07 PM
> *To:* users_at_jax-ws.dev.java.net; users_at_jax-ws.dev.java.net
> *Subject:* RE: Re: Invoking a .NET web service using JAX-WS 2.0
>
> Hi Rick,
>
> Thanks for the suggestions. In the past, my approach to web services
> has always been to hand-write a WSDL describing the service, and then
> feed this same WSDL into both JWSDP and .NET. This has worked superbly
> over the past couple of years. Even though .NET generated its own
> WSDL, the JWSDP (1.6) had no problems communicating with the service.
> I'm going to investigate this further tomorrow, but I'm not sure why
> JAX-WS 2.0 used in the same manner would have any trouble.
>
> Ryan
>
> ------------------------------------------------------------------------
> *From:* Rick Jones [mailto:rick_at_activeservice.co.uk]
> *Sent:* Mon 8/21/2006 6:06 PM
> *To:* users_at_jax-ws.dev.java.net
> *Subject:* Re: Invoking a .NET web service using JAX-WS 2.0
>
> My suggestion would be to feed the WSDL generated by .Net into wsimport to
> generate the client stub code. That way you should guarantee an exact
> match. It's the only technique I've ever used to call .Net services, and I
> haven't run into any problems.
>
> That said I haven't got very far with JAX-WS 2 clients because of
> completely unrelated problems getting it to run in my target
> environment (a
> configurable applet) where 1.x ran fine, so maybe there are gotchas that I
> haven't hit yet :-/
>
> HTH
>
> Rick Jones
>
> --On 21 August 2006 16:40 -0400 Ryan LeCompte
> <Ryan.LeCompte_at_pangonetworks.com> wrote:
>
> ¦ I just finished converting one of my web services from JWSDP 1.6 to
> ¦ JAX-WS 2.0, and I'm running into a bit of a problem. The actual service
> ¦ implementation is written in .NET, and the client is written using
> ¦ JAX-WS 2.0. The same client used to work fine with JWSDP 1.6, however
> ¦ I'm not seeing service operations go through with JAX-WS 2.0. My
> ¦ question is:
> ¦
> ¦ I know that JAX-WS 2.0 now accesses the WSDL remotely to determine which
> ¦ operations should be invoked (e.g., http://service/myservice.asmx?wsdl).
> ¦ By default, the .NET runtime auto-generates the WSDL at runtime when you
> ¦ use the ?wsdl extension in the URL. Could this be causing a problem? The
> ¦ interesting thing is that I don't see any errors on the Java side, and
> ¦ no errors in the log file on the .NET side. The data types involved are
> ¦ also polymorphic in nature (base type, sub-type, etc). This used to work
> ¦ fine in JWSDP 1.6. The only problem I can see is that the WSDL used to
> ¦ generated the client (in JAX-WS) is (slightly) different from the
> ¦ auto-generated WSDL when accessed as http://service/myservice.asmx?wsdl.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jax-ws.dev.java.net
> For additional commands, e-mail: users-help_at_jax-ws.dev.java.net
>