[英]Impossible to deploy on Weblogic
我試圖在這些問題中應用所有解決方案:
javax.naming.NameNotFoundException:試圖查找 jdbc
但他們沒有解決我的問題。 我正在使用 Maven 和 WebLogic。
在我的 web.xml 中,我使用了標簽“res-ref-name”。
非常感謝!
您已使用名稱“ jndi /ConsipGfrDS”注冊數據源,但使用“ jdbc /ConsipGfrDS”查找。 在這兩種情況下都使用一個(無論如何,但相同的)名稱。
我建議您在 JNDI 中使用名稱“ jdbc /ConsipGfrDS”,因為如果您在 JNDI 中有很多對象,那么將對象分類會更容易。
這是老式的 JNDI,這里有幾個問題。
您的web.xml
已正確定義
<res-ref-name>jdbc/ConsipGfrDS</res-ref-name>
這些資源引用在 JNDI java:comp/env
命名空間中定義名稱,也稱為 web 應用程序本地的組件環境命名空間。 這意味着 web 應用程序中數據源的完整 JNDI 名稱實際上是java:comp/env/jdbc/ConsipGfrDS
,因此您的查找代碼應該是:
@Bean
public DataSource dataSource() throws NamingException {
Context ctx = new InitialContext();
return (DataSource)ctx.lookup("java:comp/env/jdbc/ConsipGfrDS");
}
到目前為止,我們已經有了獨立於平台(即應用服務器)的代碼。 您已將平台相關部分正確推送到weblogic.xml
文件中。
但是,這是您的第二個問題所在。 weblogic.xml
包含一個小錯誤。 您提供的顯示 JDBC 數據源配置的 weblogic 控制台圖像顯示 JNDI 名稱為jdbc/ConsipGfrDS
。 因此,更新如下:
<?xml version="1.0" encoding="UTF-8" ?>
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://xmlns.oracle.com/weblogic/weblogic-web-app http://http://www.oracle.com/technology/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">
<resource-description>
<!-- match jndi name in weblogic -->
<jndi-name>jdbc/ConsipGfrDS</jndi-name>
<!-- match res-ref-name name in web.xml -->
<res-ref-name>jdbc/ConsipGfrDS</res-ref-name>
</resource-description>
</weblogic-web-app>
玩得開心!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.