java调用https的webservice,https的wsdl

java调webService太正常了。。。
在调用https的webService的时候几种常用的方法会出现安全错误,很多人说的是在jre里面装证书。。。那也太郁闷了吧
这里提供一种不用证书的方式


对方webService提供的接口,这个你应该要知道的吧,不知道的话就wsdl自己还原
Java代码 复制代码
  1. /**  
  2.  * webService接口声明  
  3.  * 包括两个方法:  
  4.  * 1.获取微博authtoken  
  5.  * 2.获取微博信息   
  6.  * @author bo  
  7.  * @version $Id: WeiboInterface.java,v 0.1 2009-9-1 上午09:59:05 bo Exp $  
  8.  */  
  9. public interface WeiboInterface{   
  10.     // 获取微博authtoken   
  11.     public String getWeiboAuthToken();   
  12.   
  13.     // 获取微博信息     
  14.     public String getWeiboInfo();   
  15. }  
Java代码 复制代码
  1.     /** webService地址 */  
  2.     private static final String SERVICE_URL       = "https://localhost/wsdl/services1/";   
  3.   
  4.     /** webService的名称空间 */  
  5.     private static final String SERVICE_NAMESPACE = https://localhost/wsdls;   
  6.   
  7.   
  8.     /** 服务名称 */  
  9.     private static final String SERVICE_NAME      = "weiboGetInfo";   
  10.   
  11.     /** http协议类型 */  
  12.     private static final String HTTP_TYPE         = "https";   
  13.   
  14.     /** 端口号 */  
  15.     private static final int    PORT              = 443;   
  16. /**  
  17.      * 初始化webService调用,设置访问webService的相关属性  
  18.      */  
  19.     private void initService() {   
  20.         ProtocolSocketFactory easy = new EasySSLProtocolSocketFactory();   
  21.         Protocol protocol = new Protocol(HTTP_TYPE, easy, PORT);   
  22.         Protocol.registerProtocol(HTTP_TYPE, protocol);   
  23.         Service serviceModel = new ObjectServiceFactory().create(WeiboInterface.class,   
  24.             "weiboService", SERVICE_NAMESPACE, null);   
  25.         try {   
  26.             service = (WeiboInterface) new XFireProxyFactory().create(serviceModel, SERVICE_URL   
  27.                                                                                     + SERVICE_NAME);   
  28.         } catch (MalformedURLException e) {   
  29.             logger.error("初始化webService失败," + e);   
  30.         }   
  31.         //设置client的相关属性,设置传输数据的方式   
  32.         Client client = ((XFireProxy) Proxy.getInvocationHandler(service)).getClient();   
  33.         client.addOutHandler(new DOMOutHandler());   
  34.         client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED, Boolean.TRUE);   
  35.         client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "1");   
  36.         client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");   
  37.     }  
   

service就相当于将webService给初始化了,然后就可以直接service调用XXXInterface里面的方法了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章