webservice接口发布之后生成的wsdl文件里的soap:address location地址自动在域名前面加了端口号,有没有哥们知道,指导一手
这是配置类的代码:
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
@Bean
public ServletRegistrationBean cxfServlet() {
return new ServletRegistrationBean(new CXFServlet(), "/ws/*");
}
@Bean
public StandardProcedureServiceImpl standardProcedureServer() {
return new StandardProcedureServiceImpl();
}
/*jax-ws*/
@Bean
public Endpoint StandardProcedureServerEndpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), standardProcedureServer());
endpoint.publish("/standardProcedureServer");
return endpoint;
}
在CXF框架中,SOAP地址的生成规则可以通过配置文件进行修改。在Spring Boot项目中,可以通过在application.yml或application.properties文件中进行配置。
以下是在application.yml中配置SOAP地址的示例:
server:
port: 8080
cxf:
servlet:
path: /ws/*
endpoint:
standardProcedureServer:
address: /standardProcedureServer
在上面的示例中,通过cxf.endpoint配置项对SOAP地址进行配置。standardProcedureServer是我们在代码中通过Endpoint.publish()方法发布的服务名。在address属性中设置服务相对于应用程序上下文路径的地址。在本例中,地址为/standardProcedureServer,所以完整的SOAP地址将是http://localhost:8080/ws/standardProcedureServer。
这样配置之后,应该就能够正确生成没有端口号的SOAP地址了。