JAX-WS handler语言 - handleMessage is not running



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

然后,在项目资源管理器中,在JAX-WS Web服务>服务端点接口> MyServiceSoap下,我使用选项来配置处理程序。我指向我的Handler类,新文件在MyServiceSoap.java文件所在的文件夹中创建了Handler -chain.xml。

我已经查看了我的MyServiceSoap.java,我看到声明@HandlerChain(file = "handler-chain.xml")

所以,据我所知,所有的部分都到位了。但是,当我尝试调用这项服务时,handleMessage永远不会被调用。

下面是我的handleMessage代码:
@Override
public boolean handleMessage(SOAPMessageContext context) {
        SOAPMessage msg = context.getMessage();
        return true;
}

我在这个方法中设置了断点,希望我能够看到正在发送到远程web服务的消息的内容。我还必须注意到,目前我得到错误"WebServiceException: No Content-type in the header",当我尝试使用此服务。所以,这个错误可能是在handleMessage有机会运行之前发生的。

如果有人能对这个问题提供更多的说明,我将不胜感激。谢谢。

我遇到了同样的问题,但是我的客户机是由maven使用jaxws: wimport生成的。我的处理程序从来没有被调用,所以解决方案是声明@HandlerChain(file="MyHandlerFile.xml"), Xml文件(在这种情况下)应该在相同的包里面,你的类,例如:

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

声明注释:

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


Handler Chain File:

<?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>

相关内容

最新更新