java调用https的webservice接口

pcodecode 2014-10-28 12:05:25
对端系统提供了一个https的webservice接口,并且提供了证书client.jks,和密码,请问我客户端怎么调用这个接口啊?哪个大虾能提供一个调用样例。我看网上大多是这样调用的,我这样调用不行,没有.truststore,是否可以根据jks生成.truststore?
public static void main(String [] args) throws Exception {
System.setProperty("javax.net.ssl.keyStore", "test\\client.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "abc");
System.setProperty("javax.net.ssl.trustStore", "test\\client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "abc");
//System.setProperty("javax.net.debug", "ssl");
//System.setProperty("https.protocols", "TLSv1");
//System.setProperty("java.protocol.handler.pkgs","javax.net.ssl");
String endpoint = "https://localhost:" +"8443"+ "/axis/services/EcVoteNotice";
//String endpoint = "http://localhost:" +"8080"+ "/axis/services/EcVoteNotice";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("toStringP");
String res = (String) call.invoke( new Object[] {"Box"} );
call.setOperationName("toString");
String res2 = (String) call.invoke( new Object[] {} );

System.out.println( res+"/"+res2 );
}
...全文
2412 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcodecode 2014-10-28
  • 打赏
  • 举报
回复
引用 1 楼 littlebrain4solving 的回复:
采用Xfire客户端来调用WebService 具体参考 http://blog.csdn.net/xymyeah/article/details/3888924
关键是证书的处理这块,调用其实没啥问题的,http是可以调通的,就是对方改成https就有问题了,不知道证书这块怎么处理
  • 打赏
  • 举报
回复
采用Xfire客户端来调用WebService 具体参考 http://blog.csdn.net/xymyeah/article/details/3888924
Mr_JieLQ 2014-10-28
  • 打赏
  • 举报
回复
http://blog.csdn.net/cookieweb/article/details/7531477

使用JDK自带的工具创建密匙库和信任库。 

  1)通过使用以下的命令来创建服务器端的密匙库: 
   keytool -genkey -alias Server -keystore server.keystore -keyalg RSA 
  输入keystore密码:  strongit 
  您的名字与姓氏是什么? 
  [Unknown]:  Server 
  您的组织单位名称是什么? 
  [Unknown]:  ec 
  您的组织名称是什么? 
  [Unknown]:  ec 
  您所在的城市或区域名称是什么? 
  [Unknown]:  nanchang 
  您所在的州或省份名称是什么? 
  [Unknown]:  jiangxi 
  该单位的两字母国家代码是什么 
  [Unknown]:  CN 
CN=Server, OU=ec, O=ec, L=beijing, ST=beijing, C=CN 正确吗? 
  [否]:  y 

输入<Server>的主密码 
        (如果和 keystore 密码相同,按回车): 
   以上命令执行完成后,将获得一个名为server.keystore的密匙库。 
    
  2)生成客户端的信任库。首先输出RSA证书: 
  keytool -export -alias Server -file test_axis.cer -storepass strongit-keystore server.keystore 
  然后把RSA证书输入到一个新的信任库文件中。这个信任库被客户端使用,被用来验证服务器端的身份。 
  keytool -import -file test_axis.cer -storepass changeit -keystore client.truststore -alias serverkey -noprompt 
  以上命令执行完成后,将获得一个名为client.truststore的信任库。 
   
  3)同理生成客户端的密匙库client.keystore和服务器端的信任库server.truststore.方便起见给出.bat文件 
     gen-cer-store.bat内容如下: 
    
1	set SERVER_DN="CN=Server, OU=ec, O=ec, L=nanchang, S=jiangxi, C=CN"
2	    set CLIENT_DN="CN=Client, OU=ec, O=ec, L=nanchang, S=jiangxi, C=CN"
3	    set KS_PASS=-storepass strongit
4	    set KEYINFO=-keyalg RSA
1	keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass strongit <br>     keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore <br>     keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt <br><br>     keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass strongit <br>     keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore <br>     keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt

     
      
  好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore 
  

更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了) 
      
1	<Connector port="8440" 
2	               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
3	               enableLookups="false" disableUploadTimeout="true"
4	               acceptCount="100" scheme="https" secure="true"
5	               clientAuth="true" keystoreFile="f:\server.keystore" keystorePass="changeit"
6	                 truststoreFile="f:\server.truststore" truststorePass="changeit"
7	               sslProtocol="TLS" />

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧