2010-03-16 5 views
14

부두에 대해 구성된 c3p0 db 연결 풀을 얻으려고했지만 ClassNotFoundException이 계속 발생합니다.부두 7 + MySQL 구성 [java.lang.ClassNotFoundException : org.mortbay.jetty.webapp.WebAppContext]

2010-03-14 19:32:12.028:WARN::Failed startup of context [email protected]@fccada/phpMyAdmin,file:/usr/local/jetty/webapps/phpMyAdmin/,file:/usr/local/jetty/webapps/phpMyAdmin/ 
java.lang.ClassNotFoundException: org.mortbay.jetty.webapp.WebAppContext 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:313) 
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:266) 
    at org.eclipse.jetty.util.Loader.loadClass(Loader.java:90) 
    at org.eclipse.jetty.xml.XmlConfiguration.nodeClass(XmlConfiguration.java:224) 
    at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:187) 
    at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:77) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:975) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:586) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:349) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:165) 
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:162) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:165) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:92) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:228) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:990) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:955) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:394) 
    at org.eclipse.jetty.start.Main.start(Main.java:546) 
    at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:208) 
    at org.eclipse.jetty.start.Main.main(Main.java:75) 

저는 Jetty에 익숙하지 않아 phpMyAdmin과 WordPress가 Quercus와 JDBC 연결을 통해 실행되도록하고 싶습니다. 다음은 내 WEB-INF 디렉토리에있는 web.xml 및 jetty-web.xml 파일입니다.

부두-web.xml의 :

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<Configure class="org.mortbay.jetty.webapp.WebAppContext"> 
    <New id="mysql" class="org.mortbay.jetty.plus.naming.Resource"> 
     <Arg>jdbc/mysql</Arg> 
     <Arg> 
      <New class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
       <Set name="Url">jdbc:mysql://localhost:3306/mysql</Set> 
       <Set name="User">user</Set> 
       <Set name="Password">pw</Set> 
      </New> 
     </Arg> 
    </New> 
</Configure> 

의 web.xml :

<?xml version="1.0"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> 
<web-app> 
    <description>Caucho Technology's PHP Implementation</description> 
    <resource-ref> 
     <description>My DataSource Reference</description> 
     <res-ref-name>jdbc/mysql</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 

    <servlet> 
     <servlet-name>Quercus Servlet</servlet-name> 
     <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> 

     <!-- 
      Specifies the encoding Quercus should use to read in PHP scripts. 
     --> 
     <init-param> 
      <param-name>script-encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 

     <!-- 
      Tells Quercus to use the following JDBC database and to ignore the 
      arguments of mysql_connect(). 
     --> 
     <init-param> 
      <param-name>database</param-name> 
      <param-value>jdbc/mysql</param-value> 
     </init-param> 

     <init-param> 
      <param-name>ini-file</param-name> 
      <param-value>WEB-INF/php.ini</param-value> 
     </init-param> 

    </servlet> 

    <servlet-mapping> 
     <servlet-name>Quercus Servlet</servlet-name> 
     <url-pattern>*.php</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>index.php</welcome-file> 
    </welcome-file-list> 
</web-app> 

내가 몇 항아리 또는 뭔가를 누락 같은데요.

c3p0-0.9.1.2.jar
평민 - DBCP-1.4.jar
공유지 풀-1.5.4.jar
: 현재 내 WEB-INF/lib 디렉토리에 다음 항아리에 놓여있다 MySQL의 커넥터 - 자바-5.1.12-bin.jar를 나는 또한 JETTY 가정에서/lib 디렉토리/내선이 항아리를 넣어 시도하지만 아무 소용이 ... 누군가가 무엇인지 말씀 해주십시오

내 구성에 문제가있다. 제티의 허위 문서를 파헤쳐서 아프다.

답변

22

Jetty 7부터 Jetty는 Eclipse Foundation 프로젝트가되었다. 부두 7 이클립스 부두 (6)의 이송시, 새로운 패키지 구조합니다 (Jetty 7 Refactoring 페이지 참조)를 채용하고있다 : org.mortbay.jetty.webapp에서

  • 클래스 org.eclipse.jetty.plus.jndi
  • 지금 org.mortbay.jetty.plus.naming에서 org.eclipse.jetty.webapp
  • 클래스에있다있다

그래서이 jetty-web.xml (안 테스트) 다음으로 시도 :

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <New id="mysql" class="org.eclipse.jetty.plus.jndi.Resource"> 
     <Arg>jdbc/mysql</Arg> 
     <Arg> 
      <New class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
       <Set name="Url">jdbc:mysql://localhost:3306/mysql</Set> 
       <Set name="User">user</Set> 
       <Set name="Password">pw</Set> 
      </New> 
     </Arg> 
    </New> 
</Configure> 

하지만 제티 7에서 멋진 것을 필요로하지 않는다면, 제티 6 (더 안정적이고, 더 많은 문서화, 더 많은 리소스, 덜 복잡한 등, 다른 말로는 통증 완화)을 고수하는 것이 좋습니다.

+0

아를 ... 제가 읽은 후 이마에 자신을 때려서 이. 백만 명의 친구에게 감사드립니다. 나는 지금 이것을 소용돌이 치게 할 것이다. Scott –

4

이제는 작동하도록 구성되었습니다. 나는 부두에 대한 LIB WEB-INF /에서 다음 항아리

c3p0-0.9.1.2.jar
평민 - DBCP 7.

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <New id="mysql" class="org.eclipse.jetty.plus.jndi.Resource"> 
     <Arg>jdbc/mysql</Arg> 
     <Arg> 
      <New class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
       <Set name="driverClass">com.mysql.jdbc.Driver</Set> 
       <Set name="jdbcUrl">jdbc:mysql://localhost:3306/mysql</Set> 
       <Set name="user">user</Set> 
       <Set name="password">pw</Set> 
      </New> 
     </Arg> 
    </New> 
</Configure> 

을 수정 부두-web.xml 파일을 게시하도록하겠습니다 -1.4.jar
commons-pool-1.5.4.jar
mysql-connector-java-5.1.12-bin.확인 OLDjetty-env.xml이 클래스 경로에 있지 않은지 확인하기 위해

+0

클래스에 코드를 표시 할 수 있습니까? "DriverManager.getConnection"을 사용합니까? – Timo

1

확인을 항아리 - 을 부두 6 jetty-env.xml에서이 시작 :

<Configure class="org.mortbay.jetty.webapp.WebAppContext">