2013-08-15 2 views
2

우분투 12/JDK7 (VM/가상 상자에서 실행)에서 tomcat7.0_26을 시작할 때 logs 디렉토리의 catalina.out 파일에있는 DataSourceFactory에 대해 다음 오류가 계속 발생합니다. 이 아이디어를 어떻게 해결할 수 있습니까? 관련 server.xml 및 context.xml 부분도 아래에 복사했습니다. 제공된 username/pwd 조합으로 postgres DB에 연결할 수 있습니다.tomcat7 연결 풀 오류

server.xml에 :

<Resource type="javax.sql.DataSource" 
     name="jdbc/DB" 
     factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
     driverClassName="org.postgresql.Driver" 
     url="jdbc:postgresql://localhost:5432/DBName" 
     username="database-user" 
     password="database-user-pwd" 
     testWhileIdle="true" 
     testOnBorrow="true" 
     testOnReturn="false" 
     validationQuery="SELECT 1" 
     validationInterval="30000" 
     timeBetweenEvictionRunsMillis="30000" 
     maxActive="100" 
     minIdle="10" 
     maxWait="10000" 
     initialSize="10" 
     removeAbandonedTimeout="60" 
     removeAbandoned="true" 
     logAbandoned="true" 
     minEvictableIdleTimeMillis="30000" 
     jmxEnabled="true" 

의 context.xml catalina.out

<Context> 

    <!-- Default set of monitored resources --> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 

    <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
    <!-- 
    <Manager pathname="" /> 
    --> 

    <!-- Uncomment this to enable Comet connection tacking (provides events 
     on session expiration as well as webapp lifecycle) --> 
    <!-- 
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
    --> 

    <ResourceLink type="javax.sql.DataSource" 
       name="jdbc/DB" 
       global="jdbc/DB"/>  

</Context> 

:

Aug 15, 2013 3:39:22 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 1052 ms 
Aug 15, 2013 3:39:22 PM org.apache.catalina.core.NamingContextListener addResource 
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSourceFactory] 
Aug 15, 2013 3:39:22 PM org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans 
SEVERE: Exception processing Global JNDI Resources 
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSourceFactory] 
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:84) 
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:843) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:154) 
    at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:119) 
    at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:73) 
    at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:36) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:140) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:147) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:112) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:84) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:725) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:645) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) 
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSourceFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:82) 
    ... 23 more 

답변

5

당신은 t이 보인다 o jar 파일 tomcat-jdbc.jar이 누락되었습니다. 표준 데비안/우분투 패키지에는 기본적으로 포함되어 있지 않습니다. Maven Central에서 다운로드 할 수 있습니다.

+1

우분투의/usr/share/tomcat7/lib 디렉토리에 tomcat-jdbc jar 파일을 추가했습니다. 나는 포스트 그레스 드라이버에 대해서도 똑같이했다. 나는 우분투에서 바람둥이로 이것을 처리하는 더 좋은 방법이 있는지 알고 싶다. 감사! –

+0

내 지식에. 나는 그것을 같은 방식으로했다. –