Hi,
I implemented a webservice which works fine. The WSDL was defined by a third
party so I shouldn't change it. One problem occures however, when I try to get
the WSDL in the Browser with
http://localhost:8080/axis/services/SubjectList?wsdl.
The error message is:
---------------------------- error messsage--------------------------
Sorry, something seems to have gone wrong... here are the details:
Fault - makeTypeElement() was told to create a type
"{http://www.tmf.org/services/types}>RequestSubjectID", with no containing
element
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: makeTypeElement() was told to create a type
"{http://www.tmf.org/services/types}>RequestSubjectID", with no containing
element
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:vpid_dispatcher.local
---------------------------- end error messsage--------------------------
I found in other mails that this happens if the WSDL contains something like
shown below, where an element directly contains a complex type:
---------------------------------------- WSDL extract------------------
<xs:element name="RequestSubjectID">
<xs:complexType>
<xs:sequence>
<xs:element ref="SubjectDataRef" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="Value" type="xs:string" use="optional" />
<xs:attribute name="Sureness" type="xs:string" use="optional" />
<xs:attribute name="ForceCreation" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
--------------------------------------- end WSDL extract--------------
So I change the WSDL (what I am not supposed to do) to the following WSDL where
I defined an element instead of a complexType:
---------------------------------------new WSDL----------------------------
<xs:complexType name="RequestSubjectIDType">
<xs:sequence>
<xs:element ref="SubjectDataRef" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="Value" type="xs:string" use="optional" />
<xs:attribute name="Sureness" type="xs:string" use="optional" />
<xs:attribute name="ForceCreation" type="xs:boolean" use="optional" />
</xs:complexType>
<xs:element name="RequestSubjectID">
<xs:element name="RequestSubjectIDType" type="RequestSubjectIDType" />
</xs:element>
---------------------------------------end new WSDL----------------------------
Now the WSDL shows but the types for most of the paramters are set to xsd:any
which is not wanted and also not working (I get an error that the deserializer
for type any was not found).
Is there a way to get the WSDL in the Browser without changing the WSDL? Please
help, I have already spent days finding a way...
Thanks and regards
Jutta
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193