1

使用 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”。

我在做什么错,为什么我不能访问它?

4

0 回答 0