FTPC使用Axis2创建WebService

以往在FTPC里创建WebService是用jaxrpc,但是这次服务端的返回解析不了,而使用jaxrpc对返回值自己解析也不好操作,测试过axis2之后,觉得还不错。

1、引入Axis2的jar包,开发测试的时候可以建library,部署的时候放到SOS的lib下面即可,不用担心jar包冲突

2、需要引入的jar

其中引入dom4j是因为解析服务端返回的报文出错,自己手写的把XML转换成对象的解析语句要用到。

其他的是axis2本身要用到的jar包

3、服务端反应收不到请求对象,要求将HTTP请求头设为:Content-Type: text/xml; charset=UTF-8  

修改方法:

_serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

如果使用SOAP11Constants(SOAP 1.1),HTTP请求头如下:

  1. POST /test HTTP/1.1  
  2. Content-Type: text/xml; charset=UTF-8  
  3. SOAPAction: "urn:add"  
  4. User-Agent: Axis2  
  5. Host: 146.11.42.87:9876  
  6. Transfer-Encoding: chunked  

如果使用SOAP12Constants(SOAP 1.2) ,HTTP请求头如下:

  1. POST /test HTTP/1.1  
  2. Content-Type: application/soap+xml; charset=UTF-8; action="urn:add"  
  3. User-Agent: Axis2  
  4. Host: 146.11.42.87:9876  
  5. Transfer-Encoding: chunked  

如果不设置这个参数,HTTP请求头如下(和SOAP 1.1是一样的,可以确认默认使用SOAP 1.1):

  1. POST /test HTTP/1.1  
  2. Content-Type: text/xml; charset=UTF-8  
  3. SOAPAction: "urn:add"  
  4. User-Agent: Axis2  
  5. Host: 146.11.42.87:9876  
  6. Transfer-Encoding: chunked  

HTTP响应头中的Content-Type字段也是一样的

猜你喜欢

转载自my.oschina.net/u/173975/blog/1788375
今日推荐