Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带MVC的Spring Boot SOAP Web服务_Java_Spring_Spring Mvc_Spring Boot_Spring Ws - Fatal编程技术网

Java 带MVC的Spring Boot SOAP Web服务

Java 带MVC的Spring Boot SOAP Web服务,java,spring,spring-mvc,spring-boot,spring-ws,Java,Spring,Spring Mvc,Spring Boot,Spring Ws,我想结合Spring指南中的两个Spring(Spring boot)应用程序: 不幸的是,这些例子不能一起工作。servlet dispatcher存在问题。添加DispatcherServletbean后,MVCServlet不工作(错误404) 如何配置servlet dispatcher以正常工作 我希望: localhost:8080/ws/*-webservice localhost:8080/web/*-MVC组件 提前谢谢 问题在于注册消息dispatcherServ

我想结合Spring指南中的两个Spring(Spring boot)应用程序:

不幸的是,这些例子不能一起工作。servlet dispatcher存在问题。添加DispatcherServletbean后,MVCServlet不工作(错误404)

如何配置servlet dispatcher以正常工作

我希望:

  • localhost:8080/ws/*
    -webservice
  • localhost:8080/web/*
    -MVC组件

提前谢谢

问题在于注册
消息dispatcherServlet
时,由于名称
dispatcherServlet
它会覆盖由Spring Boot注册的
dispatcherServlet
。后者是网站的MVC部分所需要的

要修复它,只需将您的方法重命名为除
dispatcherServlet
say
messageDispatcherServlet
之外的任何方法

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}

将方法重命名为
messageDispatcherServlet
而不是
dispatcherServlet
后者将覆盖默认配置的
dispatcherServlet
。非常感谢!!!它是working@m-deinum我有一个simular MessageDispatcherServlet,但它被配置为使用“/*”url模式。我想添加一个MVCServlet,它将响应“/ui”模式。我是否可以向MessageDispatcherServlet添加一个过滤器或其他内容,以便它首先检查“/ui”模式并进行委托,否则它将作为标准SOAP消息处理请求。谢谢你为什么需要一个过滤器?servlet容器为您处理这个问题,只需将服务器映射到正确的模式。
@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}