SOAP端点和REST端点可以具有相同的uri路径吗?

时间:2018-11-13 15:24:09

标签: rest spring-boot soap

我有一个同时支持SOAP和REST端点的Spring Boot项目。现在,我有一个业务需求,需要在相同的URI上下文中访问它们:

SOAP端点:app-context / wsdl-location

REST端点:app-context / rest-uri

到目前为止,我尝试的所有操作均导致“ 405方法不允许”错误。另外,希望通过注释来尽可能地做到这一点。

任何帮助将不胜感激

编辑1:

这是用于生成WSDL的SOAP配置(URI是公开了wsdl的SOAP URI):

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext context) {
  MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
  messageDispatcherServlet.setApplicationContext(context);
  messageDispatcherServlet.setTransformWsdlLocations(true);
  return new ServletRegistrationBean(messageDispatcherServlet, URI + "/*");

}

@Bean
 public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema awadSchema) {
  DefaultWsdl11Definition definition = new DefaultWsdl11Definition();
  definition.setPortTypeName();  //cannot state port type name
  definition.setTargetNamespace(); //cannot state namespace
  definition.setLocationUri(URI);
  definition.setSchema(awadSchema);
  return definition;

}

@Bean
public XsdSchema awadSchema() {
  return new SimpleXsdSchema(new ClassPathResource("/WEB-INF/xsd-file-name"));

}

企业希望保持uri不变,并在其中附加REST端点:URI / report /.....

我尝试过:

1)使soap uri成为application.properties中的servlet上下文路径

2)在REST映射中明确给出完整的uri

3)尝试使用@Order使其首先评估REST端点

4)在web.xml中设置顺序

只要它们具有相同的上下文,应用程序就会尝试通过wsdl发送REST请求,并且会出现405错误

0 个答案:

没有答案