从 weblogic 迁移到 tomcat

我的应用程序目前在 weblogic 上运行良好。但是由于升级应用程序,我想使用spring boot和嵌入式tomcat。我有一个JndiTemplate豆子,例如:


<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">

    <property name="environment">

        <props>

            <prop key="java.naming.factory.initial">${java.naming.factory.initial}</prop>

            <prop key="java.naming.provider.url">${java.naming.provider.url}</prop>

        </props>

    </property>

</bean>

此模板是查找 jndi 对象(如数据源和 jms)的助手。如您所知,工厂是,weblogic.jndi.WLInitialContextFactory而 url 是t3://SERVER:PORT我们在 weblogic 上的时候。但是说到tomcat我不知道如何配置这个模板。


开心每一天1111
浏览 580回答 2
2回答

慕侠2389804

Tomcat 不是像 Weblogic 那样的 Java EE 容器。如果您真的想继续使用 JNDI,请查看 TomEE。就个人而言,我会让 Spring 管理数据库连接。使用像 Spring 这样的框架的优点是它从您的应用程序运行的容器中承担了很多责任,例如。数据库连接。Spring Boot 通过查看以下内容自动配置数据源:你application.yml的 JDBC url 和用户名/密码您pom.xml可以查看它将使用哪个数据库驱动程序(Spring Boot 也可以从您的 JDBC url 派生该驱动程序,但您必须添加驱动程序库)真的没什么可做的了。您现在可以自动装配DataSource或使用 SpringJdbcTemplate来避免大量样板代码。

互换的青春

这可以使用配置文件使用 @Bean 注释来初始化 TomcatEmbeddedServletContainerFactory 。请参阅下面的代码片段,这可能会有所帮助。以下是需要根据您的需要更新的格式之一。@Beanpublic TomcatEmbeddedServletContainerFactory tomcatFactory() {&nbsp; &nbsp; return new TomcatEmbeddedServletContainerFactory() {&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tomcat.enableNaming();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return super.getTomcatEmbeddedServletContainer(tomcat);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; /* (non-Javadoc)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* @see org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory#postProcessContext(org.apache.catalina.Context)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; protected void postProcessContext(Context context) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ContextResource resource = new ContextResource();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resource.setName("your_app_DS_name");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resource.setType("your_app_property");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resource.setProperty("driverClassName", "your_app_Drive");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resource.setProperty("factory", "your_app_factory_property_details");//similarly configure other needed and dependent properties.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; context.getNamingResources().addResource(resource);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; };}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java