Amila Suriarachchi wrote on 11.12.2009 07:34:
use -g option to generate inherited classes.
to other problem it seems to be a bug with Axis2. so either
1. try without -uw option
2. try with a build from the current trunk.
Thanks, that did the trick. I think the help text for the -g switch is a bit
misleading:
"Generates all the classes. Valid only with -ss."
I thought it is only required when creating server side classes.
For the problem with the syntax errors the "-uw" switch was to blame. Without
unwrapping it works. Is that a bug?
I will try axis2 from trunk later, as unwrapping is quite comfortable :-)
Thanks and best regards,
Jens
thanks,
Amila.
On Thu, Dec 10, 2009 at 8:21 PM, Jens Rutschmann
<jens.rutschm...@gmx.info>wrote:
Hi all,
currently I'm trying to generate a client stub for this WSDL:
https://hosted.datascopeapi.reuters.com/datascopeapi/v1/extractionservice.asmx?wsdl
The SOAP 1.2 Binding in this WSDL seems to contain a few errors, so I
removed it and the respective port before calling wsdl2java. The WSDL still
contains a valid SOAP 1.1 binding as well as a port using it.
I'm using axis2 1.5.1 and use the following command line:
jens:~/tmpfs> /home/jens/tools/axis2-1.5.1/bin/wsdl2java.sh -uw -u -uri
extractionservice.wsdl
Using AXIS2_HOME: /home/jens/tools/axis2-1.5.1
Using JAVA_HOME: /home/jens/.gentoo/java-config-2/current-user-vm
Retrieving document at 'extractionservice.wsdl'.
[WARN] Type {
http://reuters.com/datascopeselect/ExtractionService/v1/}anyType<http://reuters.com/datascopeselect/ExtractionService/v1/%7DanyType>missing!
jens:~/tmpfs>
After that there are only classes for the abstract types, but not for the
complex types inheriting from the abstract types.
Example (from the WSDL, lines 680-695):
<s:complexType name="InstrumentSearchRequest" abstract="true">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="PreferredIdentifierType" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="InstrumentSearchRequestAll">
<s:complexContent mixed="false">
<s:extension base="tns:InstrumentSearchRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="IdentifierSearchValue" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="IdentifierType"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InstrumentTypes"
type="tns:ArrayOfString" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
wsdl2java only generated a class for InstrumentSearchRequest but not for
InstrumentSearchRequestAll.
Furthermore the generated stub interface contains errors:
(ExtractionService.java, lines 29-32)
public
com.reuters.datascopeselect.extractionservice.v1.ArrayOfValueInfo
getInstrumentTypes(
,com.reuters.datascopeselect.extractionservice.v1.CredentialsHeaderE
credentialsHeader44)
throws java.rmi.RemoteException
Obviously that won't compile.
Is there anything i can do to create a functional client stub for that
service using axis2 ?
Thanks a lot in advance,
Jens