gpt4 book ai didi

wss :binding? 的 Java 配置对应项

转载 作者:行者123 更新时间:2023-11-30 02:58:04 25 4
gpt4 key购买 nike

好吧,这是我在谷歌上搜索了几个小时但没有成功的东西......最后我只能希望一些 Spring 魔术师阅读并回答这个问题。 :)

我正在将旧的 Web 应用程序(基于 Spring 2.x)升级到 Spring 4.2.x,在添加新功能的同时,我决定完全放弃基于 XML 的配置。 (再次强调:我不想在项目中包含任何 Spring XML 文件!)

我已经转换了几乎所有内容,但我无法解决的最后一件事是找到正确的 Java 配置对应项:

<ws:service id="MySoapService" bean="#ServiceImpl" />
<wss:binding service="#MySoapService" url="/1.0/soap" />

ws/wss 命名空间来自:

xmlns:ws="http://jax-ws.dev.java.net/spring/core"
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"

所以我想做的是导出@WebService带注释的类,但使用 Java 配置而不是 XML。

其他信息:

  • 我尝试过使用 SimpleJaxWsServiceExporter ,但是无论我使用哪个端口,都会留下一个“java.net.BindException:地址已在使用中:绑定(bind)”...

  • 该应用程序有两个 servlet:一个是用于新 REST API 的普通 Spring MVC 调度程序,另一个 com.sun.xml.ws.transport.http.servlet.WSSpringServlet这将使上述 JAX-WS 服务可用。

  • 我正在尝试使用纯 JAX-WS RI 解决问题,无需 CXF 或任何其他库。该应用程序已经足够大了...:(

最佳答案

您可以通过注入(inject)端点和以下辅助方法来实现此目的(请注意,我的方法为每个端点使用基类 BaseEndpoint):

@Configuration
public WebserviceConfiguration {

@Inject
private FooEndpoint fooEndpoint;

@Bean
public SpringBinding fooEndpoint() throws Exception {
return bind(fooEndpoint, "ws/bar");
}

private SpringBinding bind(BaseEndpoint endpoint, String url) throws Exception {
SpringService springService = new SpringService();
springService.setBean(endpoint);
SpringBinding binding = new SpringBinding();
binding.setService(springService.getObject());
binding.setUrl(url);
return binding;
}

}

关于wss :binding? 的 Java 配置对应项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698638/

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