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> > .... >