我正在尝试制作一个Spring Boot Soap WebService应用程序,并按照入门(https://spring.io/guides/gs/producing-web-service/)示例来学习如何执行此操作。
我已经创建了我想要的内容,但是我在这个设置中遇到了两个URL问题,我无法找到应该更改的配置来修复此问题:
我知道这是Spring WS的一个功能,但是我想要一个固定的URL(在这两种情况下都没有“任何”)并且无法找到要为此更改的内容
答案 0 :(得分:0)
没有直接的方法来限制你想要的方式。
你想要的东西可能是以下方式。
ServletRegistrationBean
中的网址映射以限制网址访问/ws/*
映射是所有/ws/whatever
网址成功响应的原因。new ServletRegistrationBean(servlet, "/ws");
/ws
网址DefaultWsdl11Definition
实际上是在每次请求时从XSD生成WSDL。countries.wsdl
保存到resource
文件夹作为静态WSDL文件。 DefaultWsdl11Definition
bean。像
一样创建一个新的SimpleWsdl11Definition
bean
@Bean(name = "countries")
public SimpleWsdl11Definition orders() {
SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
wsdl11Definition.setWsdl(new ClassPathResource("countries.wsdl"));
return wsdl11Definition;
}
现在在ServletRegistrationBean
中添加另一个静态网址映射。因为它最终看起来像new ServletRegistrationBean(servlet, "/ws", "/ws/countries.wsdl");
static-wsdl
用于生产环境。详情** here 答案 1 :(得分:0)
只需更改
return new ServletRegistrationBean(servlet, "/ws/*");
例如
return new ServletRegistrationBean(servlet, new String[]{
"/ws/v1/countries.wsdl",
"/ws/v2/countries.wsdl"
});