gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 03:08:53 24 4
gpt4 key购买 nike

我在 Eclipse 中使用向导将 JAX-WS 处理程序添加到我的项目中。它实现了 SOAPHandler。

然后,在 Project Explorer 中的 JAX-WS Web Services > Service Endpoint Interfaces > 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: header 中没有内容类型”。所以,也许这个错误发生在 handleMessage 有机会运行之前。

如果有人能为这个主题提供更多信息,我将不胜感激。谢谢。

最佳答案

我有同样的问题,但我的客户端是由 maven 使用 jaxws:wsimport 生成的。我的 Handler 从未被调用过,所以解决方案是声明 @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 ....


处理程序链文件:

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

关于java - JAX-WS 处理程序 - handleMessage 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com