如何从java代码中提供jndi配置,而不是在tomcat server.xml中提供

时间:2018-03-16 14:54:43

标签: tomcat jndi

我们有spring boot项目,我们可以通过为 TomcatEmbeddedServletContainerFactory 类创建bean来通过java代码配置JNDI。在我们的项目中使用以下代码片段并使用spring boot embedded server正常工作。 / p>

但是如何从Java代码本身进行类似的JNDI配置来运行外部tomcat服务器,而不是在Tomcat中使用server.xml。

@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(connectionJndiName);
                resource.setType(DataSource.class.getName());
                resource.setProperty("driverClassName",
                        connectionDriverClassName);
                resource.setProperty("url", connectionURL);
                resource.setProperty("password", connectionPassword);
                resource.setProperty("username", connectionUserName);

                context.getNamingResources().addResource(resource);
            }
        };
}

0 个答案:

没有答案