具有Java应用程序和SSL的Web服务客户端

我正在开发一个Java桌面应用程序,我想在其中使用Web服务。 Web服务需要使用binarysecuritytoken进行双向SSL连接和消息级安全性。 我使用NetBeans IDE 6.9.1和JDK 1.6.0.23以及JAX-WS作为ws包装器。 如何在不使用客户端计算机上的任何Web服务器的情况下与ws进行通信。 我读过的大多数东西需要在客户机上有tomcat或其他一些web服务器(在tomcat中配置密钥库等等)。 有可能吗? 请为基于SSL的ws客户端推荐一些Java桌面应用程序的文章。

以下是两种处理WS over SSL的方法http://ws.apache.org/xmlrpc/ssl.html 。
正确的方法是为SE和EE解决方案配置和使用密钥库。
下一个快速解决方案也适用于我:

 package client; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import javax.xml.namespace.QName; import ws.MyService1; import ws.MyService1ServiceLocator; public class Client { public static void main(String[] args) throws Exception { test(); } public static void test() throws Exception { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) { // Trust always } public void checkServerTrusted(X509Certificate[] certs, String authType) { // Trust always } } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("SSL"); // Create empty HostnameVerifier HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }; sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(hv); // use secured service QName qname = new QName("http://ws", "MyService1Service"); String url = "https://127.0.0.1:7002/MyService/wsdl/MyService1.wsdl"; MyService1 service = new MyService1ServiceLocator(url, qname).getMyService1(); System.out.println(service.getMessage()); } } 

在JavaSE中使用Web服务 – 请参阅NetBeans教程

在调用服务之前,使用BindingProvider设置属性。 请参阅此处使用BindingProvider示例