【问题标题】:Set different context paths with configuration files使用配置文件设置不同的上下文路径
【发布时间】:2019-12-20 05:20:37
【问题描述】:

为 Webservice 和 Rest 设置不同的上下文路径

我有一个包含 Web 服务和 Rest 服务实现的应用程序,我正在寻找一种解决方案,使用 yml/properties 文件为 Web 服务和 Rest 服务设置不同的上下文路径

如何配置 servlet dispatcher 才能正常工作?

我想要:

localhost:8080/ws/* - webservice
localhost:8080/web/* - MVC components
  servlet:
    context-path: "/ws"

它为webservices和rest services设置全局,如何在不编程的情况下使其相互独立?

【问题讨论】:

  • 您是否尝试使用 Nginx(或替代)代理路由方法?
  • 我不相信你可以。您需要以编程方式创建 2 个 servlet,并将每个 servlet 配置为映射到上下文路径。有关更多信息,请参阅此内容:stackoverflow.com/questions/20915528/…

标签: java spring-boot


【解决方案1】:

使用 Spring Boot(带有 Spring Starter Web),您可以通过 @RequestMapping 注释实现您的要求。

您可以将@RequestMapping(value="/ws") 放在每个rest 控制器的类声明中,并将@RequestMapping(value="/web") 放在Web 控制器中。

对于 rest 和 web 控制器,您可以使用其他注释来指定方法路径,即 @GetMapping(value="/methodPath")。

@Controller
@RequestMapping(value="/web")
public class WebController{

    @GetMapping(value="/method")
    public String method(){
        ...
    }

}

@RestController
@RequestMapping(value="/ws")
public class RestController{

    @GetMapping(value="method")
    public String method(){
        ...
    }

}

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2019-12-13
    • 2016-08-23
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2018-11-07
    • 2011-02-23
    相关资源
    最近更新 更多