使用 spring-boot 我想访问曾经在 web.xml 中的资源,但由于我使用的是 spring-boot,我尝试以这种方式添加它:
应用程序.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”。
我在做什么错,为什么我不能访问它?