如何在https和客户端证书请求后生成Web服务代理

时间:2010-09-29 14:47:19

标签: java web-services https certificate axis

我正在尝试使用eclipse生成一个Web服务客户端(我也尝试过使用jdeveloper和netbeans)。 WSDL位于具有客户端证书请求的https服务器后面。

我可以使用此命令连接并生成类:

java -Djavax.net.ssl.trustStore=testes.keystore -Djavax.net.ssl.keyStore=testes.keystore -Djavax.net.ssl.trustStorePassword=123 -Djavax.net.ssl.keyStorePassword=123 -Dsun.security.ssl.allowUnsafeRenegotiation=true -jar D:\Java\jdevstudio10134\webservices\lib\wsa.jar -genProxy -wsdl https://urlxpto?wsdl

然后我收到有关ActionMismatch的错误。可能这个错误来自我正在使用的库,所以我想尝试使用轴。如果我在eclipse中使用向导,则在尝试连接时会出错。 jdeveloper或netbeans也是如此。

所以问题是:我该怎么办?如何使用IDE生成Web服务代理?

或者问题可能是:如何更改消息部分以匹配soap请求中的操作部分?

谢谢!

1 个答案:

答案 0 :(得分:1)

我想我无法使用经典向导生成一个支持客户端证书请求的https后面的Web服务客户端。

我能想到并且对我有用的唯一方法是:

  • 在浏览器中安装所需的证书;
  • 手动下载WSDL xml文档;
  • 手动下载WSDL引用的每个xml文档,这些文档位于同一个域中;
  • 将WSDL更改为指向磁盘上的xml文件,而不是指向那些文档所在的URL;
  • 使用genproxy或WSDL2Java或使用针对磁盘上的WSDL的向导构建客户端
  • 将代码更改为指向原始网址;
  • 最后将密钥库详细信息添加到生成的客户端;

我仍然遇到一些问题,但我现在可以与服务器连接并“交谈”。