Java axis1.4客户端使用Mtom发送文件

Java axis1.4客户端使用Mtom发送文件,java,web-services,jax-ws,axis,mtom,Java,Web Services,Jax Ws,Axis,Mtom,我正在尝试将带有axis1.4客户端的文件发送到jaxws服务。我的客户端代码如下所示 System.out.println(service.getCalcImplPort().getFile(new DataHandler(new DataSource() { @Override public OutputStream getOutputStream() throws IOException { // TODO

我正在尝试将带有axis1.4客户端的文件发送到jaxws服务。我的客户端代码如下所示

System.out.println(service.getCalcImplPort().getFile(new DataHandler(new DataSource() {

            @Override
            public OutputStream getOutputStream() throws IOException {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public String getName() {
                // TODO Auto-generated method stub
                return "abc.txt";
            }

            @Override
            public InputStream getInputStream() throws IOException {
                InputStream bs = new ByteArrayInputStream("Hello world".getBytes());
                return bs;
            }

            @Override
            public String getContentType() {
                // TODO Auto-generated method stub
                return "application/soap+xml";
            }
        })));
当我从tcpmon看时,我看到下面的消息是生成的

------=_Part_0_1601756168.1386618236799
内容类型:text/xml;字符集=UTF-8 内容传输编码:二进制 内容Id:

------=第0部分\u 1601756168.1386618236799 内容类型:应用程序/soap+xml 内容传输编码:二进制 内容Id:

你好,世界 ------=第0部分\u 1601756168.1386618236799--

XML部分是

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><getFile xmlns="http://ws.kasim.com/"><arg0 href="cid:5C354342D8307DD2EC87841AD94BCCB0" xsi:type="xsd:base64Binary" xmlns=""/></getFile></soapenv:Body></soapenv:Envelope>

当我在服务器端检查时,我看到服务的DataHandler参数没有发送数据。首先,这是一条有效的mtom消息吗?如果没有,谁能告诉我这里少了什么


谢谢。

经过长时间的网上搜索,我找到了解决方案。问题是我没有在客户端存根文件中设置mtom属性。在我将代码添加到下面之后,它开始工作。我没有删除这个问题,可能是其他人需要它

call.setProperty(Call.ATTACHMENT_ENCAPSULATION_FORMAT, Call.ATTACHMENT_ENCAPSULATION_FORMAT_MTOM);