java - Jersey 的 ServletContainer init 方法可以被重写吗?

标签 java maven jersey initialization servlet-container

用 Java 编写 Web 服务 (Jersey/Maven)。我想构建一个类,在部署应用程序之前构建多个数据库 - 因为它的所有资源都依赖于这些数据库。尽管有 Jersey 的ServletContainer的文字表示源代码,它已经被编译成字节码并打包到 jar 中,因此无法编辑。解决方案是否像声明 ServletContainer 的实例一样简单?我的代码中的类并覆盖那里的 init 方法?

最佳答案

您可以在ResourceConfig中完成所有初始化。

package org.foo;

public class AppConfig extends ResourceConfig {
    public AppConfig() {
        // initialize here
        packages("the.packages.to.scan");
    }
}

并且您可以在 web.xml 中声明它

<web-app>
    <servlet>
        <servlet-name>MyApplication</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>org.foo.AppConfig</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyApplication</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>

有关其他部署选项,请参阅 Servlet-based Deployment

关于java - Jersey 的 ServletContainer init 方法可以被重写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348290/

相关文章:

java - JSTL:绝对 uri:http://java.sun.com/jsp/jSTL/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

java - Java 1.7 是否使用不同的字符编码?

java - 在 Maven 中包含 JSTL 依赖项

java - RESTFul 服务器中的多态性

java - Dropwizard 注册两个类/客户端

rest - RESTful API 中的 URL 作为路径参数会导致错误的请求

java - 以编程方式抛出 EntityExistsException - 不好的做法?

java - 使用 Java 检查 Spark Dataframe 中是否存在列

android - 无法 HEAD 'https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml' 。从服务器 : Bad Gateway 收到状态码 502

java - spring roo windows安装 "Could not find or load main class"