Hello,
Because it is failing when I just try to go to the URL?wsdl. I can access
the client ok with a java-based client, but when I use a non-java client
e.g. macromedia it chokes. What I did to try to get around it was configure
the sever-config.wsdd service entry with the </wsdlFile> tag and watch it
fail miserably when I try to invoke a method. If I remove the complex ano
type it works. So rather than try to work with a huge WSDL doc, I went back
to basics and trying to resolve the problem. I suspect they all have the
same root cause.

pjc

-----Original Message-----
From: Dan Christopherson [mailto:[EMAIL PROTECTED]
Sent: Monday, December 15, 2003 9:16 AM
To: [EMAIL PROTECTED]
Subject: Re: Anonymous Complex Types


If you're implementing a third party WSDL why are you generating WSDL?

chrapchp wrote:
> Hello,
> I cannot get a successful WSDL doc generation from ?WSDL or Java2WSDL when
I
> include complex anonymous types. I cannot modify the WSDL doc since it is
> driven by a third party spec.  What I did was create a simple WSDL doc to
> try an isolate the problem from which I just perform a WSDL2Java and then
> Java2WSDL to track the problem. It fails on the Java2WSDL operation.
> e.g.
>
> writeTypeForPart() + qname={http://www.w3.org/2001/XMLSchema}string
> writeTypeForPart()com.flashsense.test._PoopsyDataIn
> writeTypeForPart() + qname={http://test.flashsense.com}_PoopsyDataIn
> AxisFault
>  faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>  faultSubcode:
>  faultString: java.lang.NullPointerException
>  faultActor:
>  faultNode:
>  faultDetail:
>
> {http://xml.apache.org/axis/}stackTrace:java.lang.NullPointerException
>         at
org.apache.axis.wsdl.fromJava.Types.isSimpleType(Types.java:1242)
>         at
>
org.apache.axis.wsdl.fromJava.Types.isAcceptableAsAttribute(Types.java:1260)
>         at
>
org.apache.axis.encoding.ser.BeanSerializer.writeAttribute(BeanSerializer.ja
> va:476)
>         at
>
org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:
> 386)
>         at
> org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1707)
>         at
> org.apache.axis.wsdl.fromJava.Types.writeTypeForPart(Types.java:429)
>         at
>
org.apache.axis.wsdl.fromJava.Emitter.writePartToMessage(Emitter.java:1700)
>         at
>
org.apache.axis.wsdl.fromJava.Emitter.writeRequestMessage(Emitter.java:1394)
>         at
> org.apache.axis.wsdl.fromJava.Emitter.writeMessages(Emitter.java:1086)
>         at
> org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:1057)
>         at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:495)
>         at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:346)
>         at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:441)
>         at org.apache.axis.wsdl.Java2WSDL.run(Java2WSDL.java:622)
>         at org.apache.axis.wsdl.Java2WSDL.main(Java2WSDL.java:668)
>
> I read in earlier posts from which there were no replies to the error
> "Caused by: makeTypeElement() was told to create a type
> "{http://test.flashsense.com}>PoopsyDataIn", with no containing element" I
> get that too, but I see the code is invoking writeTypeForPart() with a
null
> for the Element parameter. Should createElementWithAnonymousType() be
> invoked somewhere? Am I missing something?  Any suggestions would be
> appreciated.
>
> Frustratingly yours,
> pjc
>
> A fragment of the WSDL is as follows:
>
> <?xml version="1.0" encoding="utf-8" ?>
> - <wsdl:definitions name="eek" targetNamespace="urn:DunceService"
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="urn:DunceService" xmlns:intf="urn:DunceService"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <wsdl:documentation />
> - <wsdl:types>
> - <xsd:schema targetNamespace="http://test.flashsense.com";
> xmlns:tns="http://test.flashsense.com";>
> - <xsd:element name="PoopsyDataIn">
> - <xsd:complexType>
>   <xsd:attribute name="arg1" type="xsd:string" />
>   <xsd:attribute name="arg2" type="xsd:double" />
>   </xsd:complexType>
>   </xsd:element>
>   </xsd:schema>
>   </wsdl:types>
> - <!--
> WSDL created by Apache Axis version: 1.2alpha
> Built on Dec 09, 2003 (01:04:27 MST)
>
>   -->
> - <wsdl:message name="upperStringRequest">
>   <wsdl:part name="aString" type="xsd:string" />
>   </wsdl:message>
> - <wsdl:message name="doubleNumberRequest">
>   <wsdl:part name="aNum" type="xsd:int" />
>   </wsdl:message>
> - <wsdl:message name="doubleNumberResponse">
>   <wsdl:part name="doubleNumberReturn" type="xsd:int" />
>   </wsdl:message>
> - <wsdl:message name="upperStringResponse">
>   <wsdl:part name="upperStringReturn" type="xsd:string" />
>   </wsdl:message>
> - <wsdl:message name="poopsyRequest">
>   <wsdl:part element="tns:PoopsyDataIn" name="poopsyIn"
> xmlns:tns="http://test.flashsense.com"; />
>   </wsdl:message>
> - <wsdl:message name="PoopsyResponse">
>   <wsdl:part name="out" type="xsd:string" />
>   </wsdl:message>
> - <wsdl:portType name="DunceService">
> - <wsdl:operation name="doubleNumber" parameterOrder="aNum">
>   <wsdl:input message="impl:doubleNumberRequest"
name="doubleNumberRequest"
> />
>   <wsdl:output message="impl:doubleNumberResponse"
> name="doubleNumberResponse" />
>   </wsdl:operation>
> - <wsdl:operation name="upperString" parameterOrder="aString">
>   <wsdl:input message="impl:upperStringRequest" name="upperStringRequest"
/>
>   <wsdl:output message="impl:upperStringResponse"
name="upperStringResponse"
> />
>   </wsdl:operation>
> - <wsdl:operation name="PoopsyService">
>   <wsdl:input message="impl:poopsyRequest" name="poopsyRequest" />
>   <wsdl:output message="impl:PoopsyResponse" name="PoopsyResponse" />
>   </wsdl:operation>
>   </wsdl:portType>
> ....
>



Reply via email to