国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 使用jaxws建立webservice客戶端并實現soap消息的handler驗證示例

使用jaxws建立webservice客戶端并實現soap消息的handler驗證示例

2019-11-14 15:23java教程網 JAVA教程

這篇文章主要介紹了使用jaxws建立webservice客戶端并實現soap消息的handler驗證示例,需要的朋友可以參考下

因項目需要,將之前使用過的webservice重新撿了起來,并且這次選擇了使用不需要jar包的Java原生Jaxws。首先是wsimport的用法,先分享我的用法:cmd下先轉到工程所在路徑,然后運行以下命令

 

復制代碼代碼如下:

wsimport -keep -extension -s ./src -p com.jaxws.test http://192.168.1.1:8080/service?wsdl


在com.jaxws.test的包下就能找到自動生成的各種客戶端相關輔助類。這些類怎么用就不細說了,網上很多資料。然后就是自己編寫調用類(我這里只是一個方法,會被調用到就行)

 

 

復制代碼代碼如下:

public String jaxws(Object[] opArgs)
{
    ServicesService service=new ServicesService();

    //向SOAP添加表頭
    service.setHandlerResolver(new HandlerResolver(){
        public List<Handler> getHandlerChain(PortInfo portInfo) {
            List<Handler> handlerList = new ArrayList<Handler>();
            //添加認證信息
            handlerList.add(new ClientHandler());
            return handlerList;
        }
    });

    String result =service.getServicesPort().getResults(opArgs.toString());
    //得到結果
    System.out.println(result); 
    return result;
}

 

注意到這里的【//添加認證信息 handlerList.add(new ClientHandler());】,所以我們還需要新建一個ClientHandler類來實現認證消息的組裝,如下:

 

復制代碼代碼如下:

package com.jaxws.test;

import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.soap.*;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

public class ClientHandler implements SOAPHandler<SOAPMessageContext> {

    public boolean handleMessage(SOAPMessageContext ctx) {

    //出站,即客戶端發出請求前,添加表頭信息
    Boolean request_p=(Boolean)ctx.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if(request_p){
        try {
            SOAPMessage msg=ctx.getMessage();
            SOAPEnvelope env=msg.getSOAPPart().getEnvelope();
            SOAPHeader hdr=env.getHeader();
            if(hdr==null) hdr=env.addHeader();

            //添加認證信息頭

            //QName(String namespaceURI, String localPart, String prefix)
            //QName(String namespaceURI, String localPart)
            //QName(String localPart)
            //@param namespaceURI:QName的名稱空間
            //@param localPart:QName的本地部分
            //@param prefix:QName的前綴
            QName name=new QName("http://csdc.info/", "Authentication", "wsse");
            SOAPHeaderElement header = hdr.addHeaderElement(name);

            //addChildElement(String localName, String prefix,String uri)
            //addChildElement(String localName, String prefix)
            //addChildElement(String localName)
            //@param uri:新元素所屬空間名稱URI
            //@param localName:新元素的本地名稱
            //@param prefix:新元素名稱的空間前綴
            //見JDK 1.6的API
            SOAPElement userElement = header.addChildElement("Username", "wsse");
            userElement.addTextNode("admin");
            SOAPElement passElement = header.addChildElement("Password", "wsse");
            passElement.addTextNode("admin");

            msg.saveChanges();

            //把SOAP消息輸出到System.out,即控制臺
            msg.writeTo(System.out);

            return true;    
        } catch (Exception e) {    
           e.printStackTrace();    
        }
    }    
    return false;    
    }

    @Override
    public boolean handleFault(SOAPMessageContext context) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void close(MessageContext context) {
        // TODO Auto-generated method stub        
    }

    @Override
    public Set<QName> getHeaders() {
        // TODO Auto-generated method stub
        return null;
    }
}


 這個類就把所有的soap消息都加上了一個頭消息,我這里的頭消息如下:

復制代碼代碼如下:

<wsse:Authentication xmlns:wsse="http://csdc.info/">
    <wsse:Username>admin</wsse:Username>
    <wsse:Password>admin</wsse:Password>
</wsse:Authentication>


這樣就實現了帶soap頭認證的基于jaxws的webservice客戶端。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜桃香蕉视频 | aaa综合国产 | 成人爱情偷拍视频在线观看 | 一级片在线播放 | 求av网址| 国产一区二区三区在线免费观看 | 欧美一区二区三区电影 | 久久伊人官网 | 视频在线一区 | 中文日韩在线 | 国产精品极品美女在线观看免费 | 综合伊人| 欧美一级全黄 | 日韩精品一区二区在线观看 | 大胆裸体gogo毛片免费看 | 亚洲国产激情 | 91精品国产综合久久香蕉 | 激情五月婷婷 | 亚洲另类视频 | 久久66 | 久久久久久久久久久亚洲 | 一级片国产| 精品久久久久久亚洲综合网 | 亚洲国产精品久久久久秋霞蜜臀 | 日韩三级电影在线免费观看 | 国产精品69久久久久水密桃 | 国产精品久久久久久亚洲调教 | 国产成人高清 | 成人九九视频 | 偷拍一区二区 | 91精品国产欧美一区二区成人 | 在线日韩欧美 | 国产精品乱码人人做人人爱 | 久久综合久久88 | 国产成人精品综合 | 麻豆国产一区二区三区 | 91一区二区 | 精品亚洲一区二区 | 欧美精品一级二级 | 欧美一级二级三级 | 国产免费自拍 |