求助:如果透過weblogic的datasource獲取連線!!!

liuzhy_max發表於2005-04-07
我建立了一個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的包沒有寫全嗎,還是別的什麼原因。

相關文章