2012-03-23 4 views
0

프로젝트에서 모든 데이터베이스 정보를 이동하려고합니다. 그러면 SA가 서버를 설정하고 WAR 파일의 내용을 변경하지 않고 DEV-> QA-> PROD에서 동일한 WAR를 이동할 수 있습니다. 우리는 tomcat6의 MySQL 데이터베이스에 JNDI를 설정했습니다. 왜이 기능이 작동합니까? JNDI, Tomcat6

는 server.xml에

<Resource name="jdbc/mi" auth="Container" type="javax.sql.DataSource" 
       username="xxx" password="xxx" 
       url="jdbc:mysql://xx" 
       driverClassName="com.mysql.jdbc.Driver" 
       initialSize="5" maxWait="5000" 
       maxActive="120" maxIdle="5" 
       validationQuery="select 1" 
       poolPreparedStatements="true"/> 

에 다음을 추가하지만이 프로젝트는 잘 작동하지 않습니다. 나는 위대한 실행하지만 SA 내 전쟁에서 서버 정보를 원하지 않는 내 프로젝트 모두에서 동일한 정보와 함께 /META-INF/context.xml을 setupp 경우

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 

: 나는 다음과 같은 오류가 발생합니다. 그것은 무엇 일 수 있는가 ?? 누군가가 나를 도와주세요이 하나 .. 인터넷에서 모든 것을 검색하고 모든 것을 시도했지만 아무것도 작동하지 않습니다 .. 프로그래머를 도와주세요!

답변

1

프로젝트에 WEB-INF/web.xml을 설정 했습니까? 이 내용이 포함되어야합니다.

<resource-env-ref> 
    <resource-env-ref-name>jdbc/mi</resource-env-ref-name> 
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> 
</resource-env-ref> 

질문에 언급하지 않았으므로 누락되었을 수 있습니다. 이 부분을 참조하십시오 및 the Tomcat6' one

1

context.xml에는 응용 프로그램이 자원을 전역으로 볼 수 있도록 자원 링크가 필요합니다.

<ResourceLink name="jdbc/mi" global="jdbc/mi"/> 
1

위의 답변에 추가하여 DB의 JDBC 라이브러리가 $ {TOMCAT_HOME}/lib 폴더에 저장되어 있는지 확인해야합니다.

관련 문제