2012-02-22 6 views
0

Когда я компилирую следующий java-файл, я получаю ошибку для класса DataSource. Он не показывает никаких ошибок в инструкции import. Пожалуйста, помогите мне.Класс DataSource не может разрешить символ

Пример кода

import java.io.*; 
import java.sql.Connection; 
import java.sql.SQLException; 
import java.util.Date; 
import java.util.Hashtable; 
import javax.naming.*; 
import javax.rmi.PortableRemoteObject; 
import javax.sql.DataSource; 
public class DBConnectionManager 
{ 
private Hashtable pools; 
public synchronized Connection getConnection(String s) 
{ 
    try 
    { 
     DataSource datasource = (DataSource)pools.get(s); 
     Object obj = null; 
     if(datasource != null) 
     { 
      Connection connection = datasource.getConnection(); 
      return connection; 
     } else 
     { 
      InitialContext initialcontext = new InitialContext(); 
      Object obj1 = initialcontext.lookup("java:comp/env/jdbc/" + s); 
      DataSource datasource1 = (DataSource)PortableRemoteObject.narrow(obj1, javax.sql.DataSource.class); 
      pools.put(s, datasource1); 
      Connection connection1 = datasource1.getConnection(); 
      return connection1; 
     } 
    } 
    catch(SQLException sqlexception) 
    { 
     log(sqlexception, "SQL In getConnection for pool " + s); 
    } 
    catch(NamingException namingexception) 
    { 
     log(namingexception, "Naming In getConnection for pool " + s); 
    } 
    return null; 
}  
} 

Ошибка

DBConnectionManager.java:56: не может разрешить символу символа: класс DataSource местоположение: класс DBConnectionManager DataSource = (источник данных DataSource) pools.get (s); ^ DBConnectionManager.java:56: не может разрешить символ symbol: class DataSource местоположение: класс DBConnectionManager DataSource datasource = (DataSource) pools.get (s); ^ DBConnectionManager.java:66: не может разрешить символ символ: класс DataSource местоположение: класс DBConnectionManager DataSource DataSource1 = (DataSource) PortableRemoteObject.narrow (obj1, javax.sql.DataSource.class); ^ DBConnectionManager.java:66: не может разрешить символ символ: класс DataSource местоположение: класс DBConnectionManager DataSource DataSource1 = (DataSource) PortableRemoteObject.narrow (obj1, javax.sql.DataSource.class);

4 ошибки

ответ

0

Опубликовать трассировку стека. Это будет более полезно, чем ваш вопрос.

Я не вижу, где пулы объявлены или инициализированы в любом месте.

В вашем CLASSPATH есть JAR, в котором есть javax.sql.DataSource? Если нет, вам понадобится один.

0

1 Я предполагаю, что первый импорт линия опечатка

Во-вторых, попробуйте изменить это:

DataSource datasource = (DataSource)pools.get(s); 

в

DataSource datasource = (DataSource)(pools.get(s)); 

Я подозреваю, что вы бросаете бассейны с DataSource а затем пытается вызвать метод get, который, вероятно, не существует. Я думаю, что вы хотите сделать, это передать результат метода get на DataSource.