乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      簡(jiǎn)單CXF方式的webService客戶端調(diào)用范例

       kekokeko 2010-11-16

      簡(jiǎn)單CXF方式的webService客戶端調(diào)用范例

      文章分類:Java編程

          一般webServices發(fā)布后需要測(cè)試一下,是否可行通,在此我把自己所測(cè)試的 調(diào)用 webService 的簡(jiǎn)單范例貼出來(lái)供新手參考。如有不足,請(qǐng)多指教。

       

      1:需要借助的包: wss4j-1.5.4.jar    cxf-bundle-2.1.3.jar

      2:

       

      Java代碼 復(fù)制代碼
      1. package con.transnal.ucenter.client;   
      2.   
      3. import java.lang.reflect.Proxy;   
      4. import java.util.HashMap;   
      5. import java.util.Map;   
      6.   
      7. //import net.sxinfo.ucenter.services.UCenterService;   
      8. //此處就為你發(fā)布的 webService的 源代碼,此處我把它打成 jar 包了.   
      9. //一般在開發(fā)中,你可以建一個(gè)webService Clietn 來(lái)引用 webService的wsdl   
      10.   
      11. import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor;   
      12. import org.apache.cxf.configuration.jsse.TLSClientParameters;   
      13. import org.apache.cxf.endpoint.Client;   
      14. import org.apache.cxf.frontend.ClientProxy;   
      15. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;   
      16. import org.apache.cxf.transport.http.HTTPConduit;   
      17. import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;   
      18. import org.apache.ws.security.WSConstants;   
      19. import org.apache.ws.security.handler.WSHandlerConstants;   
      20. import org.junit.Test;   
      21.   
      22. /**  
      23.  * 客戶端程序  
      24.  *   
      25.  * @author RenWeigang  
      26.  */  
      27. public class UCenterServiceClientTest {   
      28.   
      29.     @Test  
      30.     public void testCreateUser() throws Exception {   
      31.         UCenterService ucenterService = getUCenterService();   
      32.         String result = ucenterService.createUser("renweigang""123456789",  "123456@test.com");   
      33.         System.out.println(result);   
      34.     }   
      35.        
      36.     private UCenterService getUCenterService() {   
      37.         return getNotSSLUCenterService();   
      38.     }   
      39.        
      40.     private UCenterService getNotSSLUCenterService()   
      41.     {   
      42.         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();   
      43.         factory.setServiceClass(UCenterService.class);   
      44. //此處的地址為對(duì)方發(fā)布的 webService的地址。   
      45.         factory.setAddress("http://uc./ucenter/ucenter/services/UCenterService");   
      46.         System.setProperty("org.apache.cxf.bus.factory""org.apache.cxf.bus.CXFBusFactory");   
      47.         UCenterService ucenterService = (UCenterService) factory.create();   
      48.         ClientProxy proxy = (ClientProxy) Proxy.getInvocationHandler(ucenterService);   
      49.         Client client = proxy.getClient();   
      50.         // ③添加流模型和DOM模型轉(zhuǎn)換的Handler   
      51.        
      52.         //client.getOutInterceptors().add(new SAAJOutInterceptor());   
      53.            
      54.         Map<String,Object> properties = new HashMap<String,Object>();   
      55.         // ④-1動(dòng)作   
      56.         properties.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN + " " + WSHandlerConstants.TIMESTAMP);   
      57.         // PW_TEXT 明文 ,PW_DIGEST 摘要   
      58.         // PasswordDigest是通過(guò)非保密渠道發(fā)送用戶名和口令的最佳方法。即使使用XML加密對(duì)<wsse:Password>元素進(jìn)行加密,PasswordText依然可以使用   
      59.        
      60.         properties.put(WSHandlerConstants.USER, "services-test");// ④-3指定用戶   
      61.         properties.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);   
      62.         properties.put(WSHandlerConstants.PW_CALLBACK_CLASS, UtPasswordHandler.class.getName());   
      63.         WSS4JOutInterceptor wss4j = new WSS4JOutInterceptor(properties);   
      64.         client.getOutInterceptors().add(wss4j);   
      65.            
      66.            
      67.         return ucenterService;   
      68.     }   
      69. }  
      Java代碼 復(fù)制代碼
      1.  <PRE class=java name="code">package net.sxinfo.ucenter.client;   
      2.   
      3. import java.util.HashMap;   
      4. import java.util.Map;   
      5.   
      6. import javax.security.auth.callback.Callback;   
      7. import javax.security.auth.callback.CallbackHandler;   
      8.   
      9. import org.apache.ws.security.WSPasswordCallback;   
      10.   
      11. public class UtPasswordHandler implements CallbackHandler {   
      12.     // ①客戶端用戶模擬數(shù)據(jù)庫(kù)   
      13.   
      14.     private static final Map<String,String> pwMockDB = new HashMap<String,String>();   
      15.   
      16.               //一般真正開發(fā)中,對(duì)方的webService指定用戶,此處的 services-//test 為用戶名,test 為密碼。   
      17.     static{   
      18.     pwMockDB.put("services-test""test");   
      19.     }   
      20.        
      21.     public void handle(Callback[] callbacks) {   
      22.   
      23.     WSPasswordCallback callback = (WSPasswordCallback) callbacks[0];   
      24.   
      25.     String id = callback.getIdentifer();   
      26.     // ②獲取用戶對(duì)應(yīng)的密碼   
      27.     callback.setPassword(pwMockDB.get(id));   
      28.   
      29.     }   
      30. }</PRE>   
      31.    

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多