gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:50:58 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com