wsdl:fault
を使用しようとしていますが、予想されるJavaクラス(例外)を生成できません。私が生成されますクラス(注釈とゲッター/セッターを削除):wsdl:errorCodeとerrorMessageを使用して例外を生成する方法は?
public class ProjectException extends Exception {
private com.home.project.generated.Fault fault;
}
public class Fault {
protected String errorMessage;
protected long errorCode;
}
私が生成されますことを期待クラス:
public class ProjectException extends Exception {
protected String errorMessage;
protected long errorCode;
}
私のwsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ProjectSoapServiceImplService"
targetNamespace="http://www.home.com/webservices/v1_0/project/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.home.com/webservices/v1_0/project/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema xmlns:tns="http://www.home.com/webservices/v1_0/project/"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified"
targetNamespace="http://www.home.com/webservices/v1_0/project/" version="1.0">
<xs:element name="createProject" type="tns:projectRequest"/>
<xs:element name="projectResponse" type="tns:projectResponse"/>
<xs:complexType name="projectRequest">
<xs:sequence>
<xs:element minOccurs="0" name="projectName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="projectResponse">
<xs:sequence>
<xs:element minOccurs="0" name="projectId" type="xs:long"/>
</xs:sequence>
</xs:complexType>
<xs:element name="fault">
<xs:complexType>
<xs:sequence>
<xs:element name="errorMessage" type="xs:string"/>
<xs:element name="errorCode" type="xs:long"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="createProject">
<wsdl:part name="parameters" element="tns:createProject"/>
</wsdl:message>
<wsdl:message name="createProjectResponse">
<wsdl:part name="parameters" element="tns:projectResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="projectException">
<wsdl:part name="faultMessage" element="tns:fault"/>
</wsdl:message>
<wsdl:portType name="ProjectPort">
<wsdl:operation name="createProject">
<wsdl:input name="createProject" message="tns:createProject"/>
<wsdl:output name="createProjectResponse" message="tns:createProjectResponse"/>
<wsdl:fault name="fault" message="tns:projectException"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProjectSoapServiceImplServiceSoapBinding" type="tns:ProjectPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="createProject">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="createProject">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="createProjectResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProjectSoapServiceImplService">
<wsdl:port name="ProjectPortPort" binding="tns:ProjectSoapServiceImplServiceSoapBinding">
<soap:address location="http://localhost:9090/ProjectPortPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
任意のアイデアをどのように直接クラスのインラインプロパティ?
おかげで、事前に
wsdlは同じままである必要がありますか? – approxiblue
変更される可能性があります –