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

标签 java configuration jax-ws cxf

我目前正在使用不带 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/

相关文章:

java.sql.SQLException : ORA-00933: SQL command not properly ended when using getGeneratedKeys 异常

java - 在多模块 Maven 项目中优化 Spring Bean?

ios - Xcode 4 - 专用配置设置 : build settings and schemes definition

java - 如何在 OSGi 中通过 HttpService 发布 JAX-WS

java - Tomcat 中 Web 服务的 Shutdownhook

java - 在 java servlet 中使用 Spring (SOAP) Web 服务

java - 如何从Java中的绝对URL中提取相对URL

java - 在 Java 中如何将文件从一个位置 move 到另一个位置?

spring - 使用 ControllerClassNameHandlerMapping 的 Spring MVC 配置约定?

java - 与 Java 的 SSH 连接