我有一个部署到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类
答案 0 :(得分:0)
通过调试RestEasy源代码,如果RestEasy发现在web.xml中使用spmewhere的“org.springframework.web.servlet.DispatcherServlet”(硬编码字符串),它似乎在Jboss / RestEasy集成的某个深处,它只是停止自动配置和后来因为配置错误而失败。
有一个棘手的解决方法 - 只需扩展spring的调度程序servlet MyDispatcherServlet extends DispatcherServlet
并在web.xml中使用它而不是spring。这是为了欺骗硬编码的字符串。
Voila - RestEasy和春季派遣员都开始合作。