如何在SOAP Web服务中传递Java对象

时间:2016-11-13 21:43:45

标签: java web-services soap wsdl jax-ws

SOAP Web服务可以独立于平台和语言。并且可以接受来自客户端的参数,并可以将响应发送回客户端。例如 - 我可以将城市作为字符串参数传递回来并获取天气信息作为回复。
但是,如果我必须传递一个java对象 - 比如说 person 对象并获得他的信用评分。 (说人物对象有名称,年龄,ssn,地址等属性) (并且地址本身可以是另一个具有诸如街道,城市,拉链等属性的java对象)

SOAP服务是否可以立即接受对象,或者在提取所有原始信息后需要传递person对象,并且此信息只需要作为字符串或ints传递给服务 - 如(name,age,ssn,街道,城市,拉链)

1 个答案:

答案 0 :(得分:2)

  

SOAP服务可以立即接受对象还是person对象   需要在提取所有原始信息后传递   此信息需要以字符串或整数形式传递给服务   只是?

您需要了解以下几点:

(1)SOAP是一种具有一些预定义规范/格式(带有标题,正文等元素)的协议,用于跨两个不同应用程序(使用相同或不同的编程语言开发)进行数据交换。

(2)当您使用SOAP服务时,您就是SOAP客户端。

(3)当您为其他用户公开/提供SOAP服务时,您就是SOAP服务提供者。

(4) SOAP服务不直接使用java对象。相反,它们将被转换为xml(称为编组),然后发送/接收

(5)因此,当您调用SOAP服务提供者时,您的person java对象将被编组为xml格式并发送给SOAP服务提供者。

(6)SOAP服务提供者将根据他们的平台接收xml并转换为他们的表示(称为解组),即它可以是Java或.net或任何其他。

(7)处理完请求后,SOAP服务提供者将准备响应(Object / something转换为xml)并将其发送给调用者。

(8)为了轻松编组和解组(即Java到XML之间的转换,反之亦然),Java中有几种工具,如JAXBXMLBeans等。< / p>

P.S。:我刚刚提到了消息格式为xml(这是常见的)供您理解,但它可以是应用程序可以同意的任何其他格式。

您可以查看here了解详情。