JNDI上下文查找虽然存在但仍无法正常工作

时间:2017-04-13 11:08:40

标签: java spring spring-boot hana-cloud-platform tomcat8.5

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

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

0 个答案:

没有答案