Hi,
I am using Axis 1.1beta. I have a complex type element in the type definition in
wsdl(See below "patient" element). If my service is deployed as doc/lit style(for rpc
style, it works fine), I always have a problem using
http://localhost/axis/services/SingleSignOnDoclit?wsdl to view the wsdl file. It gives
me such error:
Fault - makeTypeElement() was told to create a type
"{http://axisTest.singleSignOn.knowmed.com/schema}PrepareSessionRequest>patient", with
no containing element
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: makeTypeElement() was told to create a type
"{http://axisTest.singleSignOn.knowmed.com/schema}PrepareSessionRequest>patient", with
no containing element
faultActor: null
faultNode: null
faultDetail:
stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: makeTypeElement() was told to create a type
"{http://axisTest.singleSignOn.knowmed.com/schema}PrepareSessionRequest>patient", with
no containing element
faultActor: null
faultNode: null
faultDetail:
makeTypeElement() was told to create a type
"{http://axisTest.singleSignOn.knowmed.com/schema}PrepareSessionRequest>patient", with
no containing element
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1229)
at org.apache.axis.wsdl.fromJava.Types.writeTypeForPart(Types.java:326)
at org.apache.axis.wsdl.fromJava.Emitter.createTypes(Emitter.java:636)
at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:383)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:268)
at
org.apache.axis.providers.java.JavaProvider.generateWSDL(JavaProvider.java:478)
at org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:72)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:143)
at org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:368)
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:491)
at
org.apache.axis.transport.http.AxisServlet.processWsdlRequest(AxisServlet.java:434)
at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:286)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
The wsdl file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://axisTest.singleSignOn.knowmed.com"
xmlns:intf="http://axisTest.singleSignOn.knowmed.com"
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"
xmlns:xsd1="http://axisTest.singleSignOn.knowmed.com/schema">
<wsdl:types>
<xsd:schema targetNamespace="http://axisTest.singleSignOn.knowmed.com/schema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://axisTest.singleSignOn.knowmed.com/schema" elementFormDefault="qualified">
<xsd:element name="PrepareSession" type="PrepareSessionRequest"/>
<xsd:element name="PrepareSessionResponse" type="PrepareSessionResponse"/>
<xsd:complexType name="PrepareSessionRequest">
<xsd:all>
<xsd:element name="user" type="xsd:string"/>
<xsd:element name="customerId" type="xsd:string"/>
<xsd:element name="iKnowChartComponent" type="xsd:string"/>
<xsd:element name="ikcWindowOpenMode" type="xsd:string"/>
<xsd:element name="callingSystemName" type="xsd:string"/>
<xsd:element name="organizationId" type="xsd:string"
nillable="true" minOccurs="0"/>
<xsd:element name="visitDate" type="xsd:date" nillable="true"
minOccurs="0"/>
<xsd:element name="callingSystemSessionId" type="xsd:string"
nillable="true" minOccurs="0"/>
<xsd:element name="patient" nillable="true" minOccurs="0">
<xsd:complexType>
<xsd:all>
<xsd:element name="idType"
type="xsd:string" nillable="true" minOccurs="0"/>
<xsd:element name="idValue"
type="xsd:string" nillable="true" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="PrepareSessionResponse">
<xsd:all>
<xsd:element name="session" type="xsd:string"/>
<xsd:element name="browserCommandUrl" type="xsd:string"/>
<xsd:element name="serverSessionCommandSOAPUrl"
type="xsd:string"/>
<xsd:element name="callingSystemSessionId" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="prepareSessionRequest">
<wsdl:part name="prepareSessionReq" element="xsd1:PrepareSession"/>
</wsdl:message>
<wsdl:message name="prepareSessionResponse">
<wsdl:part name="prepareSessionResp"
element="xsd1:PrepareSessionResponse"/>
</wsdl:message>
<wsdl:portType name="SingleSignOnServer">
<wsdl:operation name="prepareSession">
<wsdl:input name="prepareSessionRequest"
message="intf:prepareSessionRequest"/>
<wsdl:output name="prepareSessionResponse"
message="intf:prepareSessionResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SingleSignOnSoapBinding" type="intf:SingleSignOnServer">
<wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="prepareSession">
<wsdlsoap:operation
soapAction="http://axisTest.singleSignOn.knowmed.com/prepareSession" style="document"/>
<wsdl:input name="prepareSessionRequest">
<wsdlsoap:body
namespace="http://axisTest.singleSignOn.knowmed.com" use="literal"/>
</wsdl:input>
<wsdl:output name="prepareSessionResponse">
<wsdlsoap:body
namespace="http://axisTest.singleSignOn.knowmed.com" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SingleSignOnService">
<wsdl:port binding="intf:SingleSignOnSoapBinding"
name="SingleSignOnDoclit">
<wsdlsoap:address
location="http://localhost/axis/services/SingleSignOnDoclit"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
-----------------------------------------------------------------------
Does anyone know what's wrong? Thanks in advance.