2010-01-06 92 views

回答

1

通過手動創建數據源,在您的@Before(或@BeforeClass)方法中設置JNDI上下文。

(答案是唯一的指導,但我不能提供任何具體的,因爲你沒有提供任何具體的),如果問題是,你需要JNDI

0

然後有一個簡單的獨立實現可用於應用程序和單元測試場景。

2

我在before class方法中運行以下代碼。

try { 

     // Create initial context 
     System.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
      "org.apache.naming.java.javaURLContextFactory"); 
     System.setProperty(Context.URL_PKG_PREFIXES, 
      "org.apache.naming");    
     InitialContext ic = new InitialContext(); 

     ic.createSubcontext("java:"); 
     ic.createSubcontext("java:/comp"); 
     ic.createSubcontext("java:/comp/env"); 
     ic.createSubcontext("java:/comp/env/jdbc"); 

     // Construct DataSource 
     OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource(); 
     ds.setURL(""); // <--insert url to database here 
     ds.setUser("username"); //<-- self explanatory 
     ds.setPassword("password"); //<-- self explanatory 

     ic.bind("java:/comp/env/jdbc/examplename", ds); //<--insert name of binding here 
    } catch (NamingException ex) { 
     ex.printStackTrace(); 
    } catch (SQLException ex){ 
     ex.printStackTrace(); 
    } 

我使用Tomcat作爲我的服務器,所以我也只好引用位於在tomcat \ bin目錄中的以下JAR文件:

  1. Tomcat的juli.jar
  2. bootstrap.jar
  3. 公地daemon.jar

我希望這有助於你

+0

你救了我,這是我單元測試soap服務器的方法所需要的。在我的情況下使用postgres給這樣的事情: 'import org.postgresql.ds.PGPoolingDataSource; // ... PGPoolingDataSource ds = new PGPoolingDataSource(); ds.setDataSourceName(「...」); ds.setServerName(「...」); ds.setDatabaseName(「...」); ds.setUser(「...」); ds.setPassword(「...」); ds.setMaxConnections(10); ic.bind(「...」,ds);' – 2013-12-07 10:12:58