2010-03-10 6 views
14

मैं जेटी 7 सर्वर (http://download.eclipse.org/jetty/ से उपलब्ध सबसे पुराना संस्करण) में अपनी परियोजनाओं को चलाने और तैनात करने के लिए ग्रहण स्थापित करने की कोशिश कर रहा हूं। मैंने जेटी 7 को डाउनलोड किया है और इसे अनपॅक किया है, और मैंने जेट्टी प्लगइन को उपलब्ध सर्वर एडेप्टर सूची से स्थापित किया है, लेकिन जब मैं एक नया जेटी सर्वर कॉन्फ़िगर करने का प्रयास करता हूं, तो सर्वर प्रकार सूची में केवल "जेट्टी 6" होता है। अगर मैं इस का उपयोग करें और अपने सर्वर रनटाइम पर यह बात है, जब मैं मैं निम्नलिखित त्रुटि मिलती है यह प्रारंभ करने का प्रयास:ग्रहण में जेटी 7 सर्वर चल रहा है?

java.lang.NoClassDefFoundError: org/mortbay/start/Main 
Caused by: java.lang.ClassNotFoundException: org.mortbay.start.Main 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
Exception in thread "main"

मेरा अनुमान है कि मैं किसी अन्य एडाप्टर की जरूरत जेट्टी 7 शुरू करने के लिए है, लेकिन मुझे पता नहीं है इसे कहां मिलना है।

उत्तर

2

समस्या यह है कि पैकेज नाम eclipse के माइग्रेशन के साथ बदल गया है, और जेटी लोग अभी भी व्यस्त हैं।

आपका सबसे आसान विकल्प कोडहौस (http://dist.codehaus.org/jetty/) से जेटी 6 डाउनलोड करना है, इसे कहीं अनपैक करें और जेटी 6 एडाप्टर का उपयोग करें।

+4

विडंबना तरह-की है कि एक अधिकारी ने ग्रहण किया जा रहा करने के लिए कदम प्रोजेक्ट ने ग्रहण के साथ जेटी का उपयोग करने के लिए * कठिन * बना दिया है, लेकिन ऐसा लगता है कि यह मामला है। ओह ठीक है, मुझे लगता है कि v6 पर वापस। :( – user264636

+1

नया जेटी एडाप्टर जेटी 7.2 –

+0

के साथ बहुत अच्छी तरह से काम करता है: नया एडाप्टर कौन सा संस्करण है, और आपको यह कहां मिला? मेरे पास org.mortbay.jetty.serveradaptor_1.0.4 है (जिसे "अतिरिक्त सर्वर डाउनलोड करें" एडेप्टर, और जो http://www.webtide.com/eclipse/ पर भी उपलब्ध है) उस एडाप्टर के साथ, ग्रहण केवल मुझे रनटाइम प्रकार "जेट्टी 6" प्रदान करता है, और यदि मैं जेटी 7 के साथ इसका उपयोग करने की कोशिश करता हूं, तो मुझे मिलता है उपरोक्त प्रश्न में एक ही अपवाद। –

22

डब्ल्यूटीपी एडाप्टर का उपयोग करने से बेहतर मैं एक एम्बेडेड जेटी का उपयोग करना पसंद करता हूं। मैं सिर्फ एक नियमित जावा परियोजना बनाते हैं, चलिए "एम्बेडेड-जेट्टी" कहते हैं। मैं मूल वेबपैप प्रोजेक्ट को प्रोजेक्ट गुणों के जावा बिल्ड पथ के प्रोजेक्ट सेक्शन में इस प्रोजेक्ट की आवश्यकता बनाता हूं। की तुलना में मैं एक वर्ग है कि इस तरह एक घाट उदाहरण शुरू बनाने के लिए:

import org.eclipse.jetty.server.Server; 
import org.eclipse.jetty.webapp.WebAppContext; 

public class JettyServer { 
public static void main(String[] args) { 
    Server server = new Server(8080); 

    WebAppContext context = new WebAppContext(); 
    context.setResourceBase("../webapp-project/WebContent"); 
    context.setDescriptor("../webapp-project/WebContent/WEB-INF/web.xml"); 
    context.setContextPath("/"); 
    context.setParentLoaderPriority(true); 
    server.setHandler(context); 

    try { 
    server.start(); 
    server.join(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 
} 

एम्बेडेड-घाट परियोजना मैं एक "lib" बनाने पर फ़ोल्डर और घाट/lib फ़ोल्डर से सभी libs कॉपी, तो मैं libs जोड़ने परियोजना गुणों के पुस्तकालयों पर।

चल रहा है और डिबगिंग घाट एम्बेडेड मेरे लिए अच्छा काम करता है, jsp और वर्ग एक आकर्षण की तरह काम करता है फिर से लोड करने

+0

दिलचस्प विचार। मैं ऐसा कुछ करता था, लेकिन यह समाप्त हो गया मेरे वेब ऐप्स जेटी पर निर्भर हैं, जो कुछ मैं टालना चाहता हूं। आपके दृष्टिकोण में यह समस्या प्रतीत नहीं होती है। धन्यवाद। – user264636

+0

आप इस एप्लिकेशन को टेस्ट फ़ोल्डर में भी प्राप्त कर सकते हैं, ताकि यह सभी के लिए उपलब्ध हो लेकिन वास्तविक जार फ़ाइल में नहीं जा रहा है – kubek2k

22

एक नया (आधिकारिक!) जेट्टी डब्ल्यूटीपी प्लगइन समर्थन जेट्टी 7.x और 8.x है: http://wiki.eclipse.org/Jetty_WTP_Plugin

+0

मैंने अभी आपके लिंक पर क्लिक किया है, और इसमें यह अपडेट है: "इस सुविधा के लिए समर्थन जेटी 9 के साथ गिरा दिया गया है। यदि आपको लगता है कि इसे वापस लाया जाना चाहिए कृपया एक बग फाइल करें। " – skomisa

+0

ऐसा लगता है कि नया" आधिकारिक "तरीका स्टैंडअलोन जेटी सर्वर में तैनात करना है और रिमोट डीबगिंग का उपयोग करना है: http://www.eclipse.org/jetty/documentation/current /debugging-with-eclipse.html –

1

रन-जेटी-रन ग्रहण प्लग-इन में जेटी 7 और जेट्टी 8, दोनों के लिए अच्छा समर्थन है और मेरे लिए डब्ल्यूटीपी ग्रहण का उपयोग करना आसान है।

इसे आजमाएं। :)

http://code.google.com/p/run-jetty-run/

0

आप अपने ग्रहण में घाट सर्वर को कॉन्फ़िगर करने के लिए बहुत आसानी से जेट्टी Maven प्लगइन का उपयोग कर सकते हैं। आप pom.xml

<jetty.version>9.3.0.M1</jetty.version> 

<!-- JETTY DEPENDENCIES --> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-server</artifactId> 
    <version>${jetty.version}</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-servlet</artifactId> 
    <version>${jetty.version}</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-webapp</artifactId> 
    <version>${jetty.version}</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-servlets</artifactId> 
    <version>${jetty.version}</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-ant</artifactId> 
    <version>${jetty.version}</version> 
</dependency> 

में और अपने पोम के प्लगइन्स प्रबंधन में निम्नलिखित तत्व,

<plugin> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-maven-plugin</artifactId> 
     <version>${jetty.version}</version> 
     <configuration> 
      <stopKey>keyStop</stopKey> 
      <stopPort>8181</stopPort> 
      <httpConnector> 
       <host>0.0.0.0</host> //also localhost or IP address 
       <port>8080</port> 
      </httpConnector> 
     </configuration> 
</plugin> 

शामिल करें या आप अलग jetty-.xml फाइलों में सर्वर विन्यास को अलग कर सकते हैं। अधिक के लिए Configuring the jetty container देखें।

अब सही अपने Maven परियोजना क्लिक करें और लक्ष्य को चलाने के लिए,

mvn jetty:run 

डिफ़ॉल्ट पोर्ट 8080 पर सर्वर शुरू करने के लिए।और सर्वर को रोकने के लिए,

mvn jetty:stop 

If not specified, Jetty will create a ServerConnector instance listening on port 8080 . You can change this default port number by using the system property jetty.http.port on the command line, for example, mvn -Djetty.http.port=9999 jetty:run . Note that since jetty-9.0 it is no longer possible to configure a https connector directly in the pom.xml: you need to use jetty xml config files to do it.

अधिक लक्ष्यों और घाट साइट पर विन्यास के बारे में

पढ़ें,

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