嗯嗯,成功了,加上xercesImpl.jar就好了。

解决方案 »

  1.   

    问题找到了。
    如果在一次请求中调用多次webservice,就会导致第一次以后的webservice客户端发不出消息,然后服务器端一直等待,并且没有返回,最终导致超时。不知道是cxf的BUG还是什么其他的原因。现在的解决方法是在每次调用完后都关闭连接,代码如下:
    ws = (OuterWebInterface) ServiceLocator
    .getWebservice("NewbizWebService");
    Map<String, Object> req_ctx = ((BindingProvider)ws).getRequestContext(); 
    Map<String, List<String>> headers = new HashMap<String, List<String>>(); 
    headers.put("connection", Collections.singletonList("close")); 
    req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);