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