Java Axis2响应中丢失附件

Java Axis2响应中丢失附件,java,web-services,axis2,Java,Web Services,Axis2,我正在尝试从Axis2 web服务向客户端发送附件。问题在于,客户端从服务接收的消息上下文不包含任何附件,尽管最后一个似乎添加了附件。 以下是双方的简要代码。 服务: 客户端(正在尝试接收附件): getAttachment()方法返回null。在调试客户端应用程序时,IDE显示,输入消息上下文中的附件映射不包含任何元素(大小=0)。包含附件id的OmeElement对象(idElem)通常由客户端接收和读取(调试显示cid)。参数enableSwA、cacheAttachments、attac

我正在尝试从Axis2 web服务向客户端发送附件。问题在于,客户端从服务接收的消息上下文不包含任何附件,尽管最后一个似乎添加了附件。 以下是双方的简要代码。 服务:

客户端(正在尝试接收附件):

getAttachment()方法返回null。在调试客户端应用程序时,IDE显示,输入消息上下文中的附件映射不包含任何元素(大小=0)。包含附件id的OmeElement对象(idElem)通常由客户端接收和读取(调试显示cid)。参数enableSwA、cacheAttachments、attachmentDIR、sizeThreshold都是在services.xml和客户端的编程部分中设置的。消息上下文有什么问题? 谢谢你的建议

Upd:TCPmon显示了以下内容。 服务请求:

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><getXMLFile xmlns="http://axis2.apache.org"><filename>goods.xml</filename></getXMLFile></soapenv:Body></soapenv:Envelope>
goods.xml
我想没关系:)

服务部门的答复:

109
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><doc href="cid:d06f3b36afdfcbd2e135ecfbcad05ee602661262b059ed38@apache.org"></doc></soapenv:Body></soapenv:Envelope>
0
109
0
我为一些简单的问题道歉,但是附件应该反映在哪里?我猜,如果服务发送附件,SOAP消息包含二进制数据,不是吗?
我还检查了是否将附件放入服务端的消息上下文中-没关系,添加后我可以从上下文中将其返回。

您可以使用tcpmon[1]跟踪http消息并隔离问题

无论如何,处理附件的更好方法是使用MTOM。它可以与ADB[2]之类的数据绑定框架一起使用,也可以与POJO一起使用

谢谢, 阿米拉

[1]


[2]

您可以使用tcpmon[1]跟踪http消息并隔离问题

无论如何,处理附件的更好方法是使用MTOM。它可以与ADB[2]之类的数据绑定框架一起使用,也可以与POJO一起使用

谢谢, 阿米拉

[1]


[2] 问题解决了。问题出在服务方面。TCPmon显示响应消息中没有附件。然而,同样的方法很好。在检查和比较了我服务中的每一个操作之后,发现编程部分也不是原因。唯一剩下的是服务设置。因此,原因是服务上service.xml文件中需要布尔类型的设置字段不允许任何其他符号。我的错误是:

不正确:

    <parameter name="enableSwA">
        true
    </parameter>

真的
正确:

<parameter name="enableSwA">true</parameter>
true

问题解决了。问题出在服务方面。TCPmon显示响应消息中没有附件。然而,同样的方法很好。在检查和比较了我服务中的每一个操作之后,发现编程部分也不是原因。唯一剩下的是服务设置。因此,原因是服务上service.xml文件中需要布尔类型的设置字段不允许任何其他符号。我的错误是:

不正确:

    <parameter name="enableSwA">
        true
    </parameter>

真的
正确:

<parameter name="enableSwA">true</parameter>
true

您跟踪了HTTP流量吗?没有。在服务部件上成功添加附件的假设是基于此部件的正常执行,并将带有附件ID的OMElement传递回客户端。如果您解释如何跟踪HTTP流量以及跟踪结果的含义,我将很乐意这样做:)例如,您可以使用Wirkshark或简单的TCP代理来查看附件是否已提交。您可以将问题隔离到客户端或服务器上。我发现Wireshark对我来说有点困难:由于某种原因,它没有显示本地通信量(从本地主机到本地主机),但我使用TCPmon跟踪了它(见下文)。谢谢你的帮助!你跟踪HTTP流量了吗?没有。在服务部件上成功添加附件的假设是基于此部件的正常执行,并将带有附件ID的OMElement传递回客户端。如果您解释如何跟踪HTTP流量以及跟踪结果的含义,我将很乐意这样做:)例如,您可以使用Wirkshark或简单的TCP代理来查看附件是否已提交。您可以将问题隔离到客户端或服务器上。我发现Wireshark对我来说有点困难:由于某种原因,它没有显示本地通信量(从本地主机到本地主机),但我使用TCPmon跟踪了它(见下文)。谢谢你的帮助!