2010-03-16 20 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) 

मैं जेटी के लिए नया हूं और मैं आखिरकार फाइबरमीडिन और वर्डप्रेस को क्वार्कस और जेडीबीसी कनेक्शन के माध्यम से चलाने के लिए प्राप्त करना चाहता हूं। मेरी वेब-एक्सएम निर्देशिका में मेरी 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
: वर्तमान में मैं अपने वेब-INF/lib निर्देशिका में निम्नलिखित जार रखा है mysql-कनेक्टर-जावा-5.1.12-bin.jar

मैं भी/lib/ext घाट-घर में इन जार डाल करने की कोशिश की है, लेकिन कोई लाभ नहीं हुआ ... किसी ने मुझे बता क्या है मेरी विन्यास के साथ गलत है। मैं जेटी के क्रैपी दस्तावेज के माध्यम से खुदाई करने में बीमार हूँ।

उत्तर

22

जेट्टी 7 से शुरू, जेटी एक्लिप्स फाउंडेशन की एक परियोजना बन गई है। जेट्टी 6 के प्रवास जेट्टी 7 ग्रहण करने के दौरान, एक नए पैकेज संरचना अपनाया गया है (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

आह ... मैं पढ़ने के बाद माथे में अपने आप को मार इस। धन्यवाद एक लाख साथी। मैं इसे अभी एक भंवर दे दूंगा। स्कॉट –

4

मुझे अब कार्य करने के लिए कॉन्फ़िगरेशन मिला है। मैं जेट्टी के लिए सही जेटी-web.xml पोस्टिंग कर रहा हूँ 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> 
वेब-INF/में निम्नलिखित जार lib

c3p0-0.9.1.2.jar
कॉमन्स-DBCP साथ

-1.4.jar
कॉमन्स-पूल-1.5.4.jar
mysql-connector-java-5.1.12-bin।जार

+0

क्या आप कक्षा में अपना कोड दिखा सकते हैं। क्या आप "DriverManager.getConnection" का उपयोग करते हैं? – Timo

1

जांच करके सुनिश्चित करें पुरानेjetty-env.xml अपने classpath में नहीं है बनाने के लिए - घाट 6 jetty-env.xml में इस के साथ शुरू होता है:

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