在2个调度程序servlet的情况下找不到资源

时间:2015-09-18 10:44:39

标签: spring spring-mvc

在我的web.xml中,我有以下映射:

<servlet>
    <servlet-name>admin</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>admin</servlet-name>
    <url-pattern>/admin/*</url-pattern>
</servlet-mapping>

用于我的应用程序的管理部分。

但是,当我为指标添加另一个映射时:

 <servlet>
    <servlet-name>metrics</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>metrics</servlet-name>
    <url-pattern>/metrics/*</url-pattern>
</servlet-mapping>

并尝试使用例如/ metrics / errors url来访问资源,我收到错误,找不到资源。对于资源,我有以下控制器:

@RestController
@RequestMapping("/metrics")
public class MetricsController  {

@Autowired
private MetricsService metricsService;

@RequestMapping(value = "/errors", method = RequestMethod.GET)

public List<TransactionsPerDay> fetchResult(@RequestParam("startDate") @DateTimeFormat(pattern="yyyy-MM-dd") Date startDate, @RequestParam("endDate") @DateTimeFormat(pattern="yyyy-MM-dd") Date endDate) {

  //Specific logic here 


}

这可能是个问题因为我尝试在我的应用中使用2个Dispatcher servlet吗? 当我将我的控制器移动到admin servlet所涵盖的管理包中时,突然发现了资源。

1 个答案:

答案 0 :(得分:0)

URL由以下部分组成: - url-pattern DispatcherServlet - 类级@RequestMapping注释 - 方法级@RequestMapping注释

在我们的情况下,MetricsController.fetchResult可通过网址/metrics/metrics/error访问。要/metrics/error使其可用,我建议删除类级@RequestMapping注释。