2

当我的异常映射器类位于 .war 包中时,它可以完美地工作。问题是我有几个共享相同异常层次结构的 .war 包。我正在考虑将我的异常映射器类放入实用程序 jar 中,并将它们放入应用程序服务器的“/lib”文件夹中。这个实用程序 jar 已经包含我的自定义异常类。事实证明,一旦将 Jersey 放在 .war 包之外,它们就找不到我的异常映射器类。

有没有办法启用位于“/lib”文件夹中的 Jersey 扫描提供程序?

顺便说一句,我的应用程序服务器是“JBoss AS 6.0”,我正在使用 Jersey SpringServlet。这是我的 web.xml 配置片段:

    <servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>
            com.sample.rest
        </param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/*</url-pattern>       
</servlet-mapping>

干杯!

4

1 回答 1

0

您需要告诉 jersey 扫描 web.xml 中包含 ExceptionHandler 的包。只需用';'分隔它们

它应该看起来像这样:

<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.company.app.rest;com.company.util.exception</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
于 2013-05-24T17:01:59.737 回答