亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 weblogic 遷移到 tomcat

從 weblogic 遷移到 tomcat

開心每一天1111 2021-07-01 14:15:16
我的應用程序目前在 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我不知道如何配置這個模板。
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

Tomcat 不是像 Weblogic 那樣的 Java EE 容器。如果您真的想繼續使用 JNDI,請查看 TomEE。

就個人而言,我會讓 Spring 管理數據庫連接。使用像 Spring 這樣的框架的優點是它從您的應用程序運行的容器中承擔了很多責任,例如。數據庫連接。

Spring Boot 通過查看以下內容自動配置數據源:

  • application.yml的 JDBC url 和用戶名/密碼

  • pom.xml可以查看它將使用哪個數據庫驅動程序(Spring Boot 也可以從您的 JDBC url 派生該驅動程序,但您必須添加驅動程序庫)

真的沒什么可做的了。

您現在可以自動裝配DataSource或使用 SpringJdbcTemplate來避免大量樣板代碼。


查看完整回答
反對 回復 2021-07-14
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

這可以使用配置文件使用 @Bean 注釋來初始化 TomcatEmbeddedServletContainerFactory 。請參閱下面的代碼片段,這可能會有所幫助。以下是需要根據您的需要更新的格式之一。


@Bean

public TomcatEmbeddedServletContainerFactory tomcatFactory() {


    return new TomcatEmbeddedServletContainerFactory() {

        @Override

        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {

            tomcat.enableNaming();

            return super.getTomcatEmbeddedServletContainer(tomcat);

        }


        /* (non-Javadoc)

         * @see org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory#postProcessContext(org.apache.catalina.Context)

         */

        @Override

        protected void postProcessContext(Context context) {

            ContextResource resource = new ContextResource();

            resource.setName("your_app_DS_name");

            resource.setType("your_app_property");

            resource.setProperty("driverClassName", "your_app_Drive");

            resource.setProperty("factory", "your_app_factory_property_details");

//similarly configure other needed and dependent properties.

            context.getNamingResources().addResource(resource);


        }

    };

}


查看完整回答
反對 回復 2021-07-14
  • 2 回答
  • 0 關注
  • 630 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號