2012-08-10 3 views
0

JBoss 4.3.0을 사용하고 있습니다. MS SQL 서버에 연결하기 위해 서버에 데이터 소스를 만들려고합니다. JNDI를 통해 데이터베이스에 연결할 때 Jboss의 NameNotFoundException이 발생했습니다.

나는 파일 MyApp를-MSSQL-ds.xml을 작성 C의 내부에 그것을 배치 : \ 제이 보스-4.3.0 \ 서버 \의 myapps가 \ 디렉토리를 배포합니다.

다음을

는 파일의 내용은 다음과 같습니다,
<datasources> 
    <local-tx-datasource> 
<jndi-name>jdbc/MyDatasource</jndi-name> 
    <connection-url>jdbc:jtds:sqlserver://urlhere</connection-url> 

<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> 
<user-name>myuser</user-name> 
<password>mypassword</password> 


<min-pool-size>2</min-pool-size> 
    <max-pool-size>70</max-pool-size> 
    <blocking-timeout-millis>5000</blocking-timeout-millis> 
    <idle-timeout-minutes>15</idle-timeout-minutes> 

</local-tx-datasource> 
    </datasources> 

및 자바 코드에서

는 내가이 예외를 얻을

 DataSource dataSource; 
    DAOFactory instance = null; 

    String url ="jdbc/MyDatasource"; 
    try { 
     dataSource = (DataSource) new InitialContext().lookup(url); 
    } catch (NamingException e) { 
     throw new DAOConfigurationException(
      "DataSource '" + url + "' is missing in JNDI.", e); 
    } 

     instance = new DataSourceDAOFactory(dataSource); 

마지막으로 그것을 다음과 같은 방법으로 액세스

javax.naming.NameNotFoundException : MyDatasource 바인딩되지 않음

내가 누락 된 항목이 있습니까? 다른 곳에서 다른 항목을 만들어야합니까?

+0

서버 시작 로그를 보았습니까? 서버가 데이터 소스를 성공적으로 만들 수 있습니까? 로그에 나타나는 데이터 소스의 이름은 무엇입니까? –

답변

1

JDBC 데이터 소스의 JNDI 이름이 java:/ 컨텍스트 (see the docs here)를 기준으로 바인딩, 그래서 당신은 단지 String url = "java:jdbc/MyDatasource"String url = "jdbc/MyDatasource"을 변경해야합니다.

또는 use-java-context 속성을 false으로 설정하여 데이터 소스를 구성 할 수 있으며 JNDI 이름 앞에 java:이라는 접두어를 붙일 필요가 없습니다.

관련 문제