2013-02-19 4 views
1

Использование этого post Я хочу создать тест JUnit с источником данных. Я тестировал этот код:Вызов ojdbc в JUnit

import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.activation.DataSource; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import org.junit.BeforeClass; 

public class NewEmptyJUnitTest 
{ 

    public NewEmptyJUnitTest() 
    { 
    } 

    @BeforeClass 
    public static void setUpClass() throws Exception 
    { 
     // rcarver - setup the jndi context and the datasource 
     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("jdbc:oracle:thin:@host:port:db"); 
      ds.setUser("MY_USER_NAME"); 
      ds.setPassword("MY_USER_PASSWORD"); 

      ic.bind("java:/comp/env/jdbc/nameofmyjdbcresource", ds); 
     } 
     catch (NamingException ex) 
     { 
      Logger.getLogger(MyDAOTest.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 

    public void inittest() throws NamingException 
    { 

     Context initContext = new InitialContext(); 
     Context webContext = (Context) initContext.lookup("java:/comp/env"); 

     DataSource ds = (DataSource) webContext.lookup("jdbc/nameofmyjdbcresource"); 

    } 
} 

Но Netbeans не может найти этот класс 'OracleConnectionPoolDataSource'. Как я могу решить эту проблему? Что такое пакет, который я должен импортировать, чтобы использовать этот класс?

ответ

1

Согласно ojdbc14.jar, OracleConnectionPoolDataSource можно найти в oracle.jdbc.pool:

import oracle.jdbc.pool.OracleConnectionPoolDataSource; 
+0

Да, это правильно, но этот пакет не может быть найден в моем локальном хранилище. Какой репозиторий мне нужен как в файле POM Maven, чтобы загрузить этот пакет? –

+0

Я сомневаюсь, что вы найдете интеллектуальную собственность Oracle в любом публичном репозитории. Загрузите драйверы JDBC Oracle и импортируйте их в свой собственный репозиторий. И обязательно проверяйте разные версии, особенно если вы хотите/должны обеспечить обратную совместимость со старыми версиями Oracle. – jwenting

+0

Благодарим за решение! –