使用spring-boot我想访问曾经在web.xml中的资源,但由于我使用的是spring-boot,我试图以这种方式添加它:
Application.java
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
tomcat.enableNaming();
return super.getTomcatEmbeddedServletContainer(tomcat);
}
@Override
protected void postProcessContext(Context context) {
ContextResource resource = new ContextResource();
resource.setName("connectivityConfiguration");
resource.setType(com.sap.core.connectivity.api.configuration.ConnectivityConfiguration.class.getName());
context.getNamingResources().addResource(resource);
}
};
}
在我的服务中,我想通过以下方式访问此资源:
Context context = new InitialContext();
Object conObj = context.lookup("java:comp/env/connectivityConfiguration");
ConnectivityConfiguration configuration = (ConnectivityConfiguration) conObj;
但这不起作用,我得到一个例外:
javax.naming.NamingException:无法创建资源实例
当我查看列表内容时:
NamingEnumeration<NameClassPair> list = context.list("java:comp/env");
我看到第一个迭代器节点有“connectivityConfiguration”键。
我做错了什么,为什么我不能访问它?