【发布时间】:2015-08-20 13:43:30
【问题描述】:
我尝试像在this answer 中那样实现自定义上下文注入:
@Provider
public class DaoContextProvider extends SingletonTypeInjectableProvider<Context,Bar> {
public DaoContextProvider() {
super(Bar.class, new Bar("haha"));
}
}
这是我的控制器类,我想注入我的上下文:
@Path("foo")
public class Foo {
@Context
private Bar message;
@GET
public String index() {
return String.format("%s", message );
}
}
但响应 message 为空。
我尝试按照建议将上下文提供程序添加到单例中:
@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {
public ApplicationConfig() {
getSingletons().add(new DaoContextProvider());
}
//...
然后我的工件甚至没有部署,并给我提供了这个错误:
Artifact server:war exploded: java.io.IOException: com.sun.enterprise.admin.remote.RemoteFailureException: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.UnsupportedOperationException. Please see server.log for more details.
我会提供 server.log,如异常中所述,但我不知道在哪里可以找到此日志。
【问题讨论】:
-
Foo资源类目前是如何注册的?在同一个ApplicationConfig类中,还是通过web.xml包扫描属性? -
@peeskillet 在应用程序配置中
标签: java jakarta-ee dependency-injection jersey jax-rs