いくつかのファイル(wsdl、xsd)で構成される簡単なサービスを作成しました。xsdファイルには次の定義があります。
<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がこのように定義されるのはなぜですか?Axis1が提供するWSDL2Javaを使用した場合、Javaファイルの最終定義は次のようになりました。
public class ServerMessage extends org.apache.axis.AxisFault implements java.io.Serializable
そして、Axis2の生成結果の「アイテム」が大幅に異なると、スローすることさえできなくなります。私は何が間違っているのですか?