Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.3, 1.4
-
None
-
None
-
Windows 2000 professional.
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)
Description
I tried to create dataobjects using the following WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://axis-test.t-mobile.de/test/inheritance"
xmlns:inheritance="http://axis-test.t-mobile.de/test/inheritance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ValueBean">
<complexContent>
<extension base="inheritance:ValueBaseBean">
<sequence>
<element name="superContent" nillable="true" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ValueBaseBean">
<sequence>
<element name="baseContent" maxOccurs="unbounded" minOccurs="0" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
</wsdl:definitions>
Results in Compiler-Error:
[javac] Compiling 1 source file to Y:\wfa_source\pcm\src\WebserviceGateway\build_ProdVersion
[javac] Y:\wfa_source\pcm\src\WebserviceGateway\generated_ProdVersion\de\t_mobile\axis_test\test\inheritance\ValueBean.java:21: cannot resolve symbol
[javac] symbol : variable param1
[javac] location: class de.t_mobile.axis_test.test.inheritance.ValueBean
[javac] this.param1 = param1;
[javac] ^
[javac] 1 error
Analyses:
wsdl2java looks the definition of ValueBaseBean as the definition of an array. On wsdl-Level ValueBean inherit from this array. W2SL cannot handle this.
Solution Hints:
I think on possible solution is, to make ValueBaseBean an object containing an arry, not to be an array.
wsdl2java seems partly do an other approach: It's also possible to make the java implementation of ValueBean to contain the ValueBaseBean, not to inherit from it. wsdl2java seems partly to handle this approach: The 'extends' directive gots drop, the array attribute is included, but instead of setting the array value, there is an invalid reference to a super constructor.