gpt4 book ai didi

java - CXF 如何在没有 Spring 的情况下在 CXF 端口上设置 SoapVersion

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:44 24 4
gpt4 key购买 nike

我目前正在使用不带 Spring 配置文件的 CXF 开发 Web 服务客户端。

它工作得很好,但我不知道如何使用 Java Api 设置绑定(bind) SoapVersion。使用 Spring 文件按以下方式完成:

<jaxws:binding>
<soap:soapBinding version="1.2"/>
</jaxws:binding>

你们知道如何在 Java 代码中(在 Port 上,在 SOAPBinding 上...)做到这一点吗?

预先感谢您的帮助!

编辑------------------------

我仍然被这个问题困住了......我尝试按照以下响应之一的建议在界面上添加 SOAPBinding 注释,但它没有用......我仍在寻找一种方法来手动配置我的 PortType/Binding/Bus 以使用 Soap 1.2...

有什么想法吗?

编辑------------------------

问题解决了!实际上我回答了我自己的问题:见下文...

谢谢!

最佳答案

好的,我再次回答我自己的问题以分享解决方案。在 CXF 邮件列表的帮助下,我找到了适合我的解决方案。实际上有两种方法可以解决这个问题。解释如下:

问题出在我构建 CXF 服务的方式上。

第一个解决方案是在服务创建时指定 WSDL 位置:

// Create the service
Service service = Service.create(urlToWsdl, serviceQName);
// Access the port
return service.getPort(serviceQName, portTypeClass);

这解决了问题,但我不想拥有指向 WSDL 的链接,所以这是摆脱此链接的第二个解决方案:

// Create the service
Service service = Service.create(serviceQName);
// Add a Port to the service and specify the SOAP 1.2 binding
service.addPort(serviceQName, javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING, wsUrl);
// Access the port
return service.getPort(serviceQName, portTypeClass);

在我的项目中,我们决定选择第二种解决方案。

希望这对您有所帮助!

关于java - CXF 如何在没有 Spring 的情况下在 CXF 端口上设置 SoapVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4248098/

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