3.Apache Axis2用户指引-介绍服务

Apache Axis2 用户指引- 服务介绍

"Web services"这个术语适用于多种方式来回发送信息.然而,这个指引主要关注于发送和接受SOPA消息.SOAP消息是一个包含“payload”的“Envelope”的xml文档(请看代码清单4)。

代码清单4:SOAP消息示例

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://www.w3.org/2005/03/addressing"> 
 <env:Header>

    <wsa:MessageID>
      http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD
    </wsa:MessageID>
    <wsa:ReplyTo>
      <wsa:Address>http://example.com/projects/clientApp</wsa:Address>
    </wsa:ReplyTo>
    
<wsa:To>http://example.com/axis2/publishingService</wsa:To>
    
<wsa:Action>http://example.com/axis2/addDocument</wsa:Action>
 
</env:Header>
 <env:Body>

  <addDocument>
   <docTitle>What I Did On My Summer Vacation</doctitle>
   <docSubtitle>Children's Essays from Accross the World</docSubtitle>
   <docLocation>contentRepos/summerVac.doc</docLocation>
  </addDocument>

 </env:Body>
</env:Envelope>

这个文档包含SOPA Envelope的外部标签和其内容.SOAP Envelope在SOAP命名空间里,http://www.w3.org/2003/05/soap-envelope,env为前缀:包含两个子标签.对于每一个单独的SOAP消息发送和SOAP Web service接收.这个envelope是标准格式化的从属关系.

Envelop的内容包含两个部分;第一个是SOAP头部-包含env:Header标签的内容.这些头部,如WS-Addressing标签所展示的,提供有关于消息及该被处理的附加信息.一个SOAP 消息可以携带有关消息的多个方面的hearder,也可以不携带headers.这些headers会被消息处理进行一般处理。

第二部分,也是值得讨论的部分是payload,它包含env:Body标签的内容.这是接收者真正想要的信息,这也是主程序最后要处理的信息。

信息交换模式

虽然所有的SOAP消息携带者相同的结构,可以被组合成许多不同的"消息交换模式",或者叫做MEPs.两个主要的消息交换模式如下:

  • 也进也出: 这个MEP,客户端发送一个SOAP消息到服务器端, 服务器端处理消息然后反馈一条消息. 这是使用MEP最多的情况,并且对于一些任务很有作用.比如查找信息和提交信息(在知识如此重要的情形下).
  • 只进不出: 这个MEP,客户端发送一条消息到服务器端,不期望服务器端会给与反馈.你可以使用这个MEP用来连接一个服务来唤醒它,报告你需要的日志信息等等.

在这两个MEPs里边,你有几个变量是需要注意的:

  • 模块阻塞和非阻塞: 当客户端发送一条消息,应用程序需要再继续执行之前可能需要等待反馈,或者简单的发送一个消息,然后当反馈接受到的时候调用一个回调函数.When 参数数量:最后地,从客户端发送的一个消息到达服务器端,它意图要执行一个特别的动作.那个动作可能不要任何的参数,或者它要求一个或者多个参数.这些参数必须作为消息的payload的一部分编码.

考虑下所有的选项,你就可以创建任何的MEP.例如,你可以通过反转只进不出的MEP来创建一个只出不进的MEP. Apache Axis2 还包含少量的杰出的MEPs,比如Robust-In-Only.

查看下节课程 - 创建客户端(Creating Clients)

 

你可能感兴趣的:(apache,service,服务器,header,文档,SOAP)