0
我写了一些由几个文件(wsdl,xsd)组成的简单服务。 在XSD文件我有如下定义:Axis WSDL2Java生成问题
<xs:complexType name="ServerMessage">
<xs:sequence>
<xs:element name="type" type="xs:int"/>
<xs:element name="info" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ServerMessage" type="tns:ServerMessage"/>
那么这个元素在WSDL文件中引用这样
<wsdl:message name="createItemFault">
<wsdl:part name="createItemFault" element="tns:ServerMessage"/>
</wsdl:message>
<wsdl:portType name="Service">
<wsdl:operation name="createItem">
<wsdl:input message="tns:createItemRequest"/>
<wsdl:output message="tns:createItemResponse"/>
<wsdl:fault name="Fault" message="tns:createItemFault"/>
</wsdl:operation>
,最后
<wsdl:binding name="ServiceBinding" type="intf:Service">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="createItem">
<soap:operation soapAction="http://test.com/createItem"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="Fault">
<soap:fault name="Fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
推出的WSDL2Java后,我收到以下代码
public interface ServerMessage extends org.apache.xmlbeans.XmlObject
{
ServerMessage如何定义像这样?当我使用的轴1的最终定义的Java文件中提供的WSDL2Java是这样
public class ServerMessage extends org.apache.axis.AxisFault implements java.io.Serializable
和Axis2产生而造成后“项”是大大不同,它甚至没有抛出。我究竟做错了什么?
但是,如果我想要ServerMessage类型是可抛的呢?在非生成代码中使用它作为典型例外 – BSen
取决于您想要使用它。您可以随时更改WSDL中的名称,使您的'wsdl:message'名称为'ServerMessage'(并更改'xsd:type'和'xsd:element'名称以避免命名冲突)。生成的对象将是可抛出的,但不包含您在模式中定义的'type'和'info'属性。这些将出现在表示类型定义的对象中。 – davidfmatheson