2011-06-27 6 views
8

मैं एक्लिप्स में जावा (Servlets/JSP) के साथ एक गतिशील वेब अनुप्रयोग विकसित कर रहा हूं। मैं एक बाहरी जार का उपयोग करने की कोशिश कर रहा हूं (मैं अपाचे कॉमन्स से StringUtils का उपयोग कर रहा हूं) और मैं उलझन में हूं कि मुझे जार (/lib, /WEB-INF/lib?) और मुझे अपने क्लास पथ को कॉन्फ़िगर करने की आवश्यकता कैसे है ग्रहण)।वेब ऐप विकसित करते समय मुझे बाहरी जेएआर फाइलें कहां रखनी चाहिए?

मैं परियोजना संपत्तियों में Add JAR क्लिक करके classpath को ऊपर उल्लिखित स्थानों के दोनों में जार डाल, और लोड हो रहा है उन्हें और दोनों समाधान तो तरह ठीक संकलन है, लेकिन एक रनटाइम त्रुटि देने की कोशिश की:

SEVERE: Servlet.service() for servlet UserList threw exception java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils at cs236369.hw5.db.MySqlDbHandler.insert(MySqlDbHandler.java:58) at cs236369.hw5.servlets.UserList.doGet(UserList.java:50) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)

तो ... मैं बाहरी जार कैसे लोड करूं?

कृपया ध्यान दें कि मैं जावा, वीएम, या ग्रहण में कैसे बाहरी जेएआर लोड कर रहा हूं, इस बारे में परिचित नहीं हूं, इसलिए मैं विस्तृत समाधानों की सराहना करता हूं।

उत्तर

21

उन्हें yourapp/WEB-INF/lib में रखा जाना चाहिए। (ग्रहण में आप उन्हें ठीक से जोड़ रहे हैं)। तो सुनिश्चित करें कि जार वास्तव में वहाँ है। ध्यान दें कि यदि आप ऐप को ग्रहण के भीतर से शुरू कर रहे हैं, तो आपको तैनाती संयोजन को कॉन्फ़िगर करना होगा।

परिनियोजन असेंबली ग्रहण में right click > properties > deployment assembly के माध्यम से कॉन्फ़िगर किया गया है। वहां आपको अपनी "जावा बिल्ड पथ प्रविष्टियों" को जोड़ना चाहिए

+0

"आपको तैनाती संयोजन को कॉन्फ़िगर करना होगा।" - मेरा यही मतलब था जब मैंने कहा कि मैं अधिक विस्तृत स्पष्टीकरण की सराहना करता हूं :) मुझे नहीं पता कि इसका क्या अर्थ है। क्या आप कृपया समझा सकते हैं? –

+0

अपडेट देखें ..... – Bozho

+0

@ बोझो अगर मुझे जड़ को रूट निर्देशिका में रखने की ज़रूरत है तो मेरा मतलब है वेब-आईएनएफ/lib के बाहर इसका निर्माण कैसे करें? – Achyut

संबंधित मुद्दे

 संबंधित मुद्दे