求助:如果透過weblogic的datasource獲取連線!!!
我建立了一個java專案(不是j2ee專案),然後透過Context獲取weblogic的datasource,
內容如下:weblogic中的datasource的jini的名字為MysqlDataSource,同時weblogic上的連線池
都已經配置好了,也和dataSource繫結了,這都沒有問題,我在EJB中測試都透過了,
問題:
現在我只是做了一個java專案,專案中將weblogic的包如weblogic.jar,webservice.jar,..
都包含了,然後透過如下程式碼呼叫:
package cms_sock.dbutil;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* @author liuzhy
*
* 功能:
*
* 輸入引數:
*
* 輸出:
*
* 注意:
*
*/
public class CmsDataSourceFactory {
private static InitialContext getContext(String serverurl) throws NamingException {
Hashtable props = new Hashtable();
props.put(
InitialContext.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
props.put(InitialContext.PROVIDER_URL, serverurl);
// This establishes the security for authorization/authentication
// props.put(InitialContext.SECURITY_PRINCIPAL,"username");
// props.put(InitialContext.SECURITY_CREDENTIALS,"password");
InitialContext initialContext = new InitialContext(props);
return initialContext;
}
// public Connect getConnection()
public static Connection getConnection(String datasource, String serverurl)
throws Exception {
try {
Context ctx = getContext(serverurl);
Object objRef = ctx.lookup(datasource);
javax.sql.DataSource ds =
(javax.sql.DataSource) javax.rmi.PortableRemoteObject.narrow(
objRef,
javax.sql.DataSource.class);
return ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw e;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw e;
}
}
}
public class DbTest {
public static void main(String[] args) {
Connection conn = null;
String strSql = "select * from account";
try {
conn =
CmsDataSourceFactory.getConnection(
"MysqlDataSource",
"t3://127.0.0.1:7001");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
執行時,報異常,ds.getConnection();出錯。異常是:rmi中的一個異常。
但是如果我先建立一個web專案,然後在web專案中建立這兩個類,執行就沒有錯,
是不是我在java專案中關於weblogic的包沒有寫全嗎,還是別的什麼原因。
內容如下:weblogic中的datasource的jini的名字為MysqlDataSource,同時weblogic上的連線池
都已經配置好了,也和dataSource繫結了,這都沒有問題,我在EJB中測試都透過了,
問題:
現在我只是做了一個java專案,專案中將weblogic的包如weblogic.jar,webservice.jar,..
都包含了,然後透過如下程式碼呼叫:
package cms_sock.dbutil;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* @author liuzhy
*
* 功能:
*
* 輸入引數:
*
* 輸出:
*
* 注意:
*
*/
public class CmsDataSourceFactory {
private static InitialContext getContext(String serverurl) throws NamingException {
Hashtable props = new Hashtable();
props.put(
InitialContext.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
props.put(InitialContext.PROVIDER_URL, serverurl);
// This establishes the security for authorization/authentication
// props.put(InitialContext.SECURITY_PRINCIPAL,"username");
// props.put(InitialContext.SECURITY_CREDENTIALS,"password");
InitialContext initialContext = new InitialContext(props);
return initialContext;
}
// public Connect getConnection()
public static Connection getConnection(String datasource, String serverurl)
throws Exception {
try {
Context ctx = getContext(serverurl);
Object objRef = ctx.lookup(datasource);
javax.sql.DataSource ds =
(javax.sql.DataSource) javax.rmi.PortableRemoteObject.narrow(
objRef,
javax.sql.DataSource.class);
return ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw e;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw e;
}
}
}
public class DbTest {
public static void main(String[] args) {
Connection conn = null;
String strSql = "select * from account";
try {
conn =
CmsDataSourceFactory.getConnection(
"MysqlDataSource",
"t3://127.0.0.1:7001");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
執行時,報異常,ds.getConnection();出錯。異常是:rmi中的一個異常。
但是如果我先建立一個web專案,然後在web專案中建立這兩個類,執行就沒有錯,
是不是我在java專案中關於weblogic的包沒有寫全嗎,還是別的什麼原因。
相關文章
- 如何透過CRM系統獲取更多銷售線索?
- Oracle獲取連線的IP地址Oracle
- 如何透過DBeaver 連線 TDengine?
- 透過hostname獲取IP的perl指令碼指令碼
- 透過Amoeba連線mysql報錯MySql
- jdbc獲取資料庫連線JDBC資料庫
- adb透過wifi連線手機WiFi
- 透過cx_Oracle模組獲取資料Oracle
- Django透過request獲取客戶端IPDjango客戶端
- weblogic 連線oracle racWebOracle
- (請問)weblogic的連線池Web
- 如何獲取Flume連線HDFS所需要的包
- 透過Lambda函式的方式獲取屬性名稱函式
- SSH 透過跳板機連線目標機
- 樹莓派透過nmcli命令連線WIFI樹莓派WiFi
- 透過Python SDK 獲取tushare資料Python
- 如何透過API獲取實時商品資料API
- 透過WebView2獲取HTTP-only cookieWebViewHTTPCookie
- 利用weblogic的POOL(連線池)連線資料庫 (轉)Web資料庫
- 一次性講清楚「連線池獲取連線慢」的所有原因
- java獲取url連線地址引數的工具類Java
- jdbc獲取對各種資料庫的連線JDBC資料庫
- iOS 獲取當前已連線 WiFi 資訊iOSWiFi
- [Android]獲取網路連線狀態Android
- jdbc獲取各種資料庫連線JDBC資料庫
- Tomcat配置DataSource,連線池資料來源Tomcat
- python透過IP獲取國家和城市地市的方法Python
- 透過WLAN測試驗證網路的連線性
- 獲取連線電腦的裝置的所有埠資訊
- 拼多多商品資料如何透過api介面獲取API
- 獲取 CPU資訊,並透過登錄檔寫入
- 透過硬體識別符號獲取過程映像輸入符號
- 求助:關於通過電腦控制安卓手機 連線指定 WIFI安卓WiFi
- 獲取oracle資料庫連線出現的問題Oracle資料庫
- 獲取SQL Server中連線的客戶端IP地址SQLServer客戶端
- 怎麼透過Python獲取檔案指定行的內容?Python
- 透過PHP連線My SQL的兩種方法簡介(轉)PHPSQL
- java連線Oracle資料庫獲取資料JavaOracle資料庫