java – JAX-WS处理程序 – handleMessage未运行

我在
Eclipse中使用向导将JAX-WS Handler添加到我的项目中.它实现了SOAPHandler.

然后,在Project Explorer中,在JAX-WS Web Services>下 handleMessage永远不会被调用.

这是我的handleMessage代码:

@Override
public boolean handleMessage(SOAPMessageContext context) {
        SOAPMessage msg = context.getMessage();
        return true;
}

我在此方法中设置了断点,希望我能够看到正在发送到远程Web服务的消息的内容.
我还要注意,当我尝试使用此服务时,目前我收到错误“WebServiceException:标头中没有Content-type”.所以,也许,这个错误发生在handleMessage有机会运行之前.

如果有人能为这个问题提供更多的亮点,我将不胜感激.谢谢.

最佳答案 我有同样的问题,但我的客户端是由maven使用jaxws生成的:wsimport.从来没有调用过我的处理程序,所以解决方案是声明@HandlerChain(file =“MyHandlerFile.xml”),Xml文件(在本例中)应该在同一个包里面,你的类是什么,例如:

com.my.package.MyClientWS.java
com.my.package.MyHandlerFile.xml

声明注释:

@WebService(.....)
@HandlerFile(file="MyHandlerFile.xml")<br>
public class MyClientWS extends Service ....

处理程序链文件:

<?xml version="1.0" encoding="UTF-8"?>
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
  <handler-chain>
    <handler>
      <handler-name>package.to.my.MyHandler<handler-name>
      <handler-class>package.to.my.MyHandler</handler-class>
    </handler>
  </handler-chain>
</handler-chains>
点赞