我尝试使用jersey将EJB注入ClientResponseFilter。但是,EJB始终为空。我在线阅读了一些资源,但是发现的所有解决方案都没有用(而且,我不想使用InitialContext来照顾我的bean)。这是我的过滤器
@Provider
public class MyResponseFilter implements ClientResponseFilter {
private static final Logger LOGGER = LoggerFactory.getLogger(MyResponseFilter.class);
@EJB
private MyBean myBean;
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
...
// using myBean always throws NullPointerException
myBean.someMethod();
}
}
MyBean的代码:
@Startup
@Singleton
public class MyBean extends SomeAbstractClass {
...
}
我还尝试使用resources.add(MyResponseFilter.class);
将提供程序添加为资源,但这也行不通。有人可以帮我解决这个问题吗?我想按原样使用MyBean
,因为它在很多其他地方都用过,而且我不确定我能否抓住它的更改可能带来的所有副作用。
谢谢!