Jboss:RestEasy + spring dispatcher servlet =没有为servlet javax.ws.rs.core.Application指定servlet类

时间:2017-09-18 10:34:54

标签: spring web-services servlets jboss resteasy

我有一个部署到Jboss eap 6.4的应用程序。 在web.xml中,我将javax.ws.rs.core.Application定义为servlet,并为以“api”(/api/*)开头的所有URL注册。

<servlet>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <url-pattern>1</url-pattern>
</servlet-mapping>

前段时间我添加了一个Spring DispatcherServlet作为第二个servlet,注册所有以'admin'开头的网址(/admin/*

  <servlet>
        <servlet-name>admin dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>...</init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>admin dispatcher</servlet-name>
        <url-pattern>/admin/*</url-pattern>
    </servlet-mapping>
猜猜是什么?当我开始申请时,我收到了主题中的错误。

  

没有为servlet javax.ws.rs.core.Application

指定servlet类

1 个答案:

答案 0 :(得分:0)

通过调试RestEasy源代码,如果RestEasy发现在web.xml中使用spmewhere的“org.springframework.web.servlet.DispatcherServlet”(硬编码字符串),它似乎在Jboss / RestEasy集成的某个深处,它只是停止自动配置和后来因为配置错误而失败。

有一个棘手的解决方法 - 只需扩展spring的调度程序servlet MyDispatcherServlet extends DispatcherServlet并在web.xml中使用它而不是spring。这是为了欺骗硬编码的字符串。

Voila - RestEasy和春季派遣员都开始合作。