gpt4 book ai didi

java - 如何在服务器端为使用 Grails 和 CXF 发布的 Web 服务启用 MTOM?

转载 作者:行者123 更新时间:2023-12-02 08:31:12 26 4
gpt4 key购买 nike

使用 Grails 和 CXF,我发布了一个小型 Web 服务,如下所示

class TestService {

static expose=['cxf']

int pushData(int id, DataHandler data) {

//receives data for a specific ID,
return 1
}
}

问题是,我现在想要启用 MTOM 来传输 DataHandler 数据。通常,使用 Groovy 和 CXF(或 JAX-WS),我会将 TestService 发布为 Endpoint

Endpoint ep = Endpoint.publish("http://localhost:9000/test", new TestService())
SOAPBinding binding = (SOAPBinding)ep.getBinding();
binding.setMTOMEnabled(true);

一切都完成了。

现在我使用 Grails 进行发布,但我不知道如何获取 Endpoint。有谁知道如何实现这一点?

最佳答案

假设服务接口(interface)如下所示

@MTOM
@WebService(targetNamespace="http://soap.services.website.com/",
endpointInterface="com.armorize.web.services.ServiceInterface")
public interface ServiceInterface

int uploadData(@XmlMimeType("application/octet-stream") DataHandler code) ;

端点的属性可以在cxf-servlet.xml中指定。对于名为 ServiceImpl 的实现服务,您需要添加以下规范

  <jaxws:endpoint id="endpointID"
implementor="com.website.web.services.ServiceImpl" address="/test">

<jaxws:properties>
<entry key="mtom-enabled" value="true" />
<entry key="mtom-threshold" value="0" />
</jaxws:properties>

关于java - 如何在服务器端为使用 Grails 和 CXF 发布的 Web 服务启用 MTOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332225/

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