Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

xrpcc-gen'ed code for TerraService WSDL definition...

843834Feb 19 2002 — edited Feb 27 2002
I am trying to access the TerraService (TS) web service using JAX-RPC. (TerraService provides USGS satellite map images based on lat/long...note that this is a fairly well known public web service that is provided by a .NET MS server).

I successfully ran xrpcc against the TS wsdl definition (which can be found online at: http://terraserver.microsoft.net/TerraService.asmxSDL','sdl' ) and it seemed to build all the client stubs and interfaces without any trouble (ie. didn't crash ;-) ).

The only issue I have run into is that all the xrpcc-generated remote method signatures end up taking a single parameter which is of type: javax.xml.soap.SOAPElement, rather than generating method invocations that accept more detailed parameters (such as Lat/Long/etc.). This means that the client application would have to build a SOAPElement to invoke the calls, which I should have thought not to be necessary.

In the TS WSDL definition, the <message> definitions all the form:

<message name="GetTileSoapIn">
&nbsp;<part name="parameters" element="s0:GetTile" />
</message>

where an element is defined as:

<s:element name="GetTile">
&nbsp;<s:complexType>
&nbsp;&nbsp;<s:sequence>
&nbsp;&nbsp;&nbsp;<s:element minOccurs="1" maxOccurs="1" name="id" type="s0:TileId" />
&nbsp;&nbsp;</s:sequence>
&nbsp;</s:complexType>
</s:element>

I noticed that in your JAX_RCP sample application you don't use element definitions, but rather just complex types. If the TerraService WSDL definition mimic'ed your examples it would have been coded something like the following (but isn't):

<message name="GetTileSoapIn">
&nbsp;<part name="parameters" type="s0:GetTile" />
</message>

where the type would be defined as:

<s:complexType name="GetTile">
&nbsp;<s:sequence>
&nbsp;&nbsp;<s:element minOccurs="1" maxOccurs="1" name="id" type="s0:TileId" />
&nbsp;</s:sequence>
</s:complexType>

Just thought I would contrast the two in case this sheds any light on the situation.

I'm not sure if this is a limitation of how xrpcc generates client stubs from WSDL (eg. is it an EA1 feature that is just not implemented yet) or whether the TerraService WSDL definition is "flawed" in it's specification.

Since interoperability is a key goal of Web Services, and the TerraService is a very well known public web service (not to mention a useful one when you are
going GPS related applications as we are), it provides a good "test case" for JAX_RPC and the code generated by xrpcc.

I would appreciate any light anyone can shed on this situation....
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 27 2002
Added on Feb 19 2002
1 comment
126 views