重点是创建一个简单的白页Web服务,使用SOAP将人员添加到电话簿(称为addPerson())。如果手机中已有一个姓名相同的人 书,应该返回一个错误信息。
我制作了以下wsdl文件
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="whitepages" targetNamespace="http://whitepages.ws"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://whitepages.ws" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<types>
<xsd:schema targetNamespace="http://whitepages.ws" xmlns:tns="http://whitepages.ws">
<xsd:complexType name="personType">
<xsd:sequence>
<xsd:element name="address" type="tns:addressType"></xsd:element>
</xsd:sequence>
<xsd:attribute name="firstName" type="xsd:string"/>
<xsd:attribute name="lastName" type="xsd:string"/>
<xsd:attribute name="phone" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="addressType">
<xsd:sequence>
<xsd:element name="street">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
<xsd:element name="postcode">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
<xsd:element name="city">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="person" type="tns:personType"></xsd:element>
<xsd:element name="response" type="xsd:string"></xsd:element>
<xsd:complexType name="faultType">
<xsd:sequence>
<xsd:element name="errorMessage" type="xsd:string"></xsd:element>
<xsd:element name="person" type="tns:personType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="fault" type="tns:faultType"></xsd:element>
</xsd:schema>
</types>
<message name="whitepagesOperationRequest">
<part name="person" element="tns:person"/>
</message>
<message name="whitepagesOperationResponse">
<part name="response" element="tns:response"/>
</message>
<message name="WPFault">
<part name="errorMessage" type="xsd:string"/>
<part name="person" element="tns:person"/>
</message>
<portType name="whitepages">
<operation name="addPerson">
<input name="input1" message="tns:whitepagesOperationRequest"/>
<output name="output1" message="tns:whitepagesOperationResponse"/>
<fault name="fault1" message="tns:WPFault"/>
</operation>
</portType>
<binding name="whitepagesBinding" type="tns:whitepages">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="addPerson">
<soap:operation style="document"/>
<input name="input1">
<soap:body use="literal"/>
</input>
<output name="output1">
<soap:body use="literal"/>
</output>
<fault name="fault1">
<soap:fault name="fault1" use="literal"/>
</fault>
</operation>
</binding>
<service name="whitepagesService">
<port name="whitepagesBindingPort" binding="tns:whitepagesBinding">
<soap:address location="http://localhost:${HttpDefaultPort}/service"/>
</port>
</service>
</definitions>
我验证了xml,现在我需要为该模式制作java类(两者),但我不知道如何继续...任何建议或提示都会非常感激..
提前致谢
答案 0 :(得分:1)
我正在使用的eclipse发行版有一个向导,用于从模式创建JAXB类:
面向Web开发人员的Eclipse Java EE IDE。
版本:Juno Service Release 1 构建ID:20120920-0800&gt;
(c)版权所有Eclipse贡献者和其他人2005,2012。保留所有权利。 访问http://www.eclipse.org/webtools
另一种选择是使用XJC编译器从模式生成类。它包含在标准JDK中。
在任何情况下,您都必须将模式定义提取到XSD文件并从WSDL引用它:
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://whitepages.ws" schemaLocation="NAME_OF_Your_XSD_FILE.xsd" />
</schema>