2010-03-16 11 views
14

Ben İskelesi'ne için yapılandırılmış bir c3p0 db bağlantı havuzu almaya çalışıyorum, ama ClassNotFoundException almaya devam:İskele 7 + MySQL Yapılandırma [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’de yeniyim ve phpMyAdmin ve WordPress’i Quercus ve JDBC bağlantısı üzerinden çalıştırmak istiyorum. İşte WEB-INF dizininde web.xml ve jetty-web.xml dosyalarım.

dalgakıran-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> 

Ben birkaç kavanoz ya da bir şey bir eksik olduğunu tahmin ediyorum.

c3p0-0.9.1.2.jar
commons-dbcp-1.4.jar
commons-havuz-1.5.4.jar
: Şu anda benim WEB-INF/lib dizininde aşağıdaki kavanoz yerleştirdik mysql-connector-java-5.1.12-bin.jar Ben de İSKELE-HOME/lib/ext bu kavanoz koymak için çalıştık, ama boşuna ... Biri ne olduğunu söyle lütfen

konfigürasyonumda yanlış. Jetty'nin berbat belgeleriyle uğraşmaktan bıktım.

cevap

22

Jetty 7 ile başlayan Jetty, Eclipse Vakfı'nın bir projesi oldu. Jetty 7 Eclipse için İskelesi'ne 6 göçü sırasında, yeni bir paket yapısı (Jetty 7 Refactoring sayfaya bakınız) kabul edilmiştir: org.mortbay.jetty.webapp den

  • Sınıflar org.eclipse.jetty.plus.jndi
  • şimdi org.mortbay.jetty.plus.naming den org.eclipse.jetty.webapp
  • Sınıflarda artık are

Yani jetty-web.xml (değil test) Aşağıdaki deneyin:

<?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> 

Ama eğer Jetty 7'den güzel şeylere ihtiyacınız yoksa, benim önerim Jetty 6'ya (daha istikrarlı, daha fazla dokümantasyon, Internet'te daha fazla kaynak, daha az karmaşık, vb., Daha az acı) bağlı kalmak olacaktır.

+0

Ahh ... Ben okuma sonra alnında kendimi tokatlanması bu. Bir milyon arkadaşına teşekkürler. Şu an bunu bir koşuşturma yapacağım. Scott –

4

Şimdi çalışacak yapılandırmayı aldım. Ben İskelesi'ne için lib WEB-INF/aşağıdaki kavanoz

c3p0-0.9.1.2.jar
commons-dbcp ile 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> 

düzeltilmiş dalgakıran-web.xml post ediyorum -1.4.jar
commons-pool-1.5.4.jar
mysql-connector-java-5.1.12-bin.Emin ESKİjetty-env.xml Sınıfyolu kalmamasını sağlamak için

+0

Kodunuzu sınıfta gösterebilirsiniz. "DriverManager.getConnection" kullanıyor musunuz? – Timo

1

çek kavanoz - iskelesi 6 jetty-env.xml bu başlar:

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