【问题标题】:JAX-WS MTOM does not work on Tomcat but works if published by EndpointJAX-WS MTOM 不适用于 Tomcat,但如果由 Endpoint 发布,则可以使用
【发布时间】:2014-03-08 02:45:59
【问题描述】:

我正在尝试将附件从 JAX-WS/Metro 服务器发送到客户端。

我有一个标准的 Tomcat 7/JDK 6 环境和从 WSDL 生成的简单项目,只需一次操作。

许多指南都说如何配置 MTOM,我在响应中添加了 base64Binary 类型,在我的服务实现中添加了 @MTOM 注释。我没有添加任何其他内容。

当我打电话时

public static void main (String args[]){
        Endpoint.publish("http://localhost:8080/sampleService", new SampleService()); ;
    }

它工作正常,我看到来自服务器的附件。

现在我想创建一个做同样事情的网络应用程序。

这是我的 web.xml 的一部分

<listener>
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>SampleService</servlet-name>
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SampleService</servlet-name>
    <url-pattern>/SampleService</url-pattern>
  </servlet-mapping>

我下载了 jaxws-ri 依赖项并将它们放在 Tomcat/lib 文件夹中。 还在 WEB-INF 目录下创建了以下 sun-jaxws.xml:

<?xml version="1.0" encoding="UTF-8"?>
<endpoints
    xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
    version="2.0">

    <endpoint
        name="SampleService"
        implementation="com.example.SampleService"
        url-pattern="/SampleService"
        mtom-enabled="true"
         />

</endpoints>

注意 mtom-enabled 属性。

然后我部署它并且它工作,但 MTOM 不起作用,响应包含内联 Base64 编码的二进制数据而不是附件。 代码完全一样,只是运行方式和额外的web.xml和sun-jaxws.xml文件不同。

我错过了什么吗?

【问题讨论】:

    标签: java web-services soap jax-ws


    【解决方案1】:

    我遇到了同样的问题,最终我可以解决它,在我的情况下,MTOM 被禁用,因为自定义处理程序序列化了当我使用直接 jax-ws 服务时未调用的soap消息。 所以尝试禁用所有的实现LogicalHandler和SOAPHandler 在我们的例子中,我们在 Web 服务配置中设置了处理程序:

    final SpringService springService = new SpringService();
    springService.setBean(endpoint);
    springService.setHandlers(getHandlers());
    

    其中 getHandlers 是私有 List getHandlers();

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 2010-11-09
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      相关资源
      最近更新 更多