我有一个无法更改的 servlet(com.sun.jersey.spi.container.servlet.ServletContainer
来自 Jersey RS)。我能做的是创建它的子类。但是,我需要在初始化 servlet 时运行我的子类的一个函数。我无法覆盖该init
方法,因为它具有泽西岛代码。
我尝试@PostConstruct
在方法上使用注解使其在初始化后运行,但它不起作用(但它在 Tomcat 6 下确实有效)。在web.xml
类中设置为在启动时运行。
我有一个无法更改的 servlet(com.sun.jersey.spi.container.servlet.ServletContainer
来自 Jersey RS)。我能做的是创建它的子类。但是,我需要在初始化 servlet 时运行我的子类的一个函数。我无法覆盖该init
方法,因为它具有泽西岛代码。
我尝试@PostConstruct
在方法上使用注解使其在初始化后运行,但它不起作用(但它在 Tomcat 6 下确实有效)。在web.xml
类中设置为在启动时运行。
您应该能够继承ServletContainer
、覆盖init
、调用超类方法然后执行您自己的逻辑,即
public class MyServletContainer extends ServletContainer {
public void init() throws ServletException {
super.init();
//... perform custom initialization logic here
}
}
检查您的 webapp 库中是否有一些罐子“commons-annotation.jar、geronimo-annotation_1.1_spec、jboss-annotations-api_1.1_spec”并删除。