REST在不同的war文件中使用多个resteasy提供程序
在部署的EAR文件中,有两个配置rest提供程序的WAR file1.war:REST在不同的war文件中使用多个resteasy提供程序,rest,jakarta-ee,servlets,resteasy,Rest,Jakarta Ee,Servlets,Resteasy,在部署的EAR文件中,有两个配置rest提供程序的WAR file1.war: <context-param> <param-name>resteasy.providers</param-name> <param-value> path1.exception.Mapper1 </param-value> </context-param> <listener> &l
<context-param>
<param-name>resteasy.providers</param-name>
<param-value>
path1.exception.Mapper1
</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/path1</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest/path1/* </param-value>
</context-param>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/path1</url-pattern>
</servlet-mapping>
没有成功(当尝试访问/rest/path2 url时,path1.exception.Mapper1捕捉到它并工作)。
有什么想法吗?你说的“不成功”是什么意思?更多信息、错误消息、堆栈跟踪总是比精神力量好。在Wildfly10上也有同样的问题。你解决了吗?@StefanHaberl,我调试了它,发现resteasy为异常创建了一个映射。此映射中的键-是异常类的名称,但不是完整路径。因此,当一个异常(例如两次战争中的Error1)出现时,可能会使用相同的处理程序。解决方法:使用不同的异常类名称。或者,更好的方法是:将异常映射器提取到公共组件中,这将被两个war文件重用。
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest/path1/* </param-value>
</context-param>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/path1</url-pattern>
</servlet-mapping>