gpt4 book ai didi

java - 如何在 wsdl 末尾更改 soap 地址

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:55 24 4
gpt4 key购买 nike

我有一个由 Apache CXF WS 生成的 WSDL,看起来像这样

<wsdl:service name="MyWS">
<wsdl:port binding="tns:MyWSSoapBinding" name="MyWSImplPort">
<soap:address location="http://someaddress/MyApp/ws/MyWS"/>
</wsdl:port>
</wsdl:service>

我想更改 soap:address 以使用 https 而不是 http 协议(protocol)。

这种需求背后的原因。我们在 LoadBalancer 后面的 tomcat 服务器上运行 SpringBootApp。负载均衡器将在地址 https://someaddress/MyApp/ws/MyWs?wsdl 上接收请求,然后通过 http 将请求转发给服务器。当 wsdl 由 Apache CXF 自动生成时,它使用 soap:address 生成它,协议(protocol)为 http 而不是 https

在Application.java中

@Bean
public ServletRegistrationBean servletRegistrationBean() {
CXFServlet servlet = new CXFServlet();
return new ServletRegistrationBean(servlet, "/MyApp/ws/*");
}

@Bean
@Autowired
public Endpoint submitAssessment(ApplicationContext context, MyWS myWS) {
Bus cxfBus = (Bus)context.getBean(Bus.DEFAULT_BUS_ID);
EndpointImpl endpoint = new EndpointImpl(cxfBus, myWS);
endpoint.setAddress("/MyWS");
cxfBus.getInInterceptors().add(new LoggingInInterceptor());
endpoint.publish();
return endpoint;
}

关于我的服务实现

@Service
@WebService(serviceName = "MyWS", name = "MyWSPortType", portName = "MyWSPort", )
public class MyWSImpl implements MyWS {

最佳答案

参数“publishedEndpointURL”看起来像您正在搜索的那个。

参见: http://cxf.apache.org/docs/jax-ws-configuration.html

关于java - 如何在 wsdl 末尾更改 soap 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35804261/

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