REST在不同的war文件中使用多个resteasy提供程序

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

在部署的EAR文件中,有两个配置rest提供程序的WAR

file1.war:

<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>