isag webservice axis

来源:互联网 发布:hl中走丝系统编程 编辑:程序博客网 时间:2024/06/05 15:42

上上周和赵工调试了isag的发送短信的接口。

总共实现了几个功能:

1、通过页面向notification发送消息,桩作为客户端


2、作为服务端,接收send接口、receive接口的消息,并正确返回响应


3、支持多线程向notification接口发送消息,线程数、时间间隔在web.xml中配置

第一次使用到webService和电信的isag接口,觉得有必要总结一下

1.如何调用接口

 SmsNotificationServiceLocator snsl = new SmsNotificationServiceLocator();
   SmsNotification sn = snsl.getSmsNotification(url);

 

2.添加soapheader和解析soapheader

isag的soapheader分为两个RequestSOAPHeader(下行)和NotifySOAPHeader(上行)。

客户端使用RoutSOAPHeader类来初始化下行header和上行header。

服务端使用DecodeSOAPHeader类来解析上下行header。

 

3.如何获得notifysmsdeliverystatus的deliverystatus对象

deliverystatus的构造函数是protected,要想获得其对象,调用其两个静态函数,其实最终还是调用的静态函数formValue(String value)

 

4.messagecontext

要想获得soapheader,HttpServletRequest 或者httpresponse对象,都需要先获得messagecontext对象

//获得messagecontext对象

MessageContext context = MessageContext.getCurrentContext();

 

//获得SOAPEnvelope 对象以及SOAPHeaderElement

SOAPEnvelope requestEnvelope = context.getRequestMessage().getSOAPEnvelope();
        SOAPHeaderElement requestSequenceIdHeader = requestEnvelope.getHeaderByName(
                "http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1", "RequestSOAPHeader");

接下来可以调用decodesoapheader来解析其元素了

 

//获得HttpServletRequest 对象

HttpServletRequest request = (HttpServletRequest) context.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);

 

//获得HttpServletResponse 对象

HttpServletResponse response = (HttpServletResponse)context.getProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE);

 

原创粉丝点击