Webservice本身的实时性就不是很好,并且Webservice验证也会降低性能成本,简单的 SSL 点对点加密有时是更好的解决方案,但安全性比较低。具体安全性和性能要求需要根据实际需求决定。

http://www.ibm.com/developerworks/cn/java/j-jws6/ 一文很好的阐述Webservice验证所造成的性能问题。

 

Ws-security简单内容介绍见:http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/HowASP.NETWebServicesWork.mspx?mfr=true

 

XFire Web Service验证方案 见:http://blog.csdn.net/qiao000_000/article/details/5592117

 

测试中遇到几个问题:

1、client端除了需要xfire基本包外还需要commons-httpclient-3.0.jar。

2、第二种方式是通过addOutHandler和addInHandler加入的验证,里面的内容是通过JDOM拼出来的,不是固定的。

 

里面client的可以封装成一个方法:

 public 接口 getUserService(String userName, String password,
   String serviceURL) throws MalformedURLException {
    Service srvcModel = new ObjectServiceFactory().create(接口.class);
    XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
      .newInstance().getXFire());
    接口 service = (接口) factory.create(srvcModel, serviceURL);
    XFireProxy proxy = (XFireProxy) Proxy.getInvocationHandler(service);
    Client client = proxy.getClient();
    client.addOutHandler(new ClientAuthenticationHandler(userName,password));
    return service;
 }

调用方法:   接口.方法名(参数)

没有登录不能评论