【发布时间】:2014-11-21 19:19:30
【问题描述】:
重点是创建一个简单的白页 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 类(两者都适用),但我不知道如何继续...任何建议或提示将不胜感激..
提前致谢
【问题讨论】:
-
最好的起点是查看 JAXB 规范(或参考实现 jaxb.java.net)