2012-06-28 5 views
6

परीक्षण उद्देश्यों के लिए मैं केवल स्थिर सामग्री की सेवा के लिए जेट्टी 8 का उपयोग करना चाहता हूं। मुझे पता है कि कमांड लाइन से वेबसर्वर शुरू करने के लिए:मैं जेटी 8 को केवल स्थिर सामग्री की सेवा कैसे शुरू करूं?

जावा जार start.jar jetty.port = 8082

मैं चाहते हैं या एक वेनिला जेट्टी 8 उपयोग करने के लिए, खासकर सक्षम होने के लिए

जावा जार start.jar विकल्प = संसाधनों resources.root = ../foo jetty.port = 8082

fil: 7, और यह की तरह कुछ का उपयोग शुरू तब सर्वर के रूट से सुलभ होना चाहिए। ../foo/x.html नामक एक फ़ाइल http://localhost:8082/x.html के माध्यम से सुलभ होनी चाहिए।

मैं एक WAR फ़ाइल या कुछ भी फैंसी नहीं बनाना चाहता हूं। अधिमानतः यह विंडोज मशीनों पर अनलॉक की गई फाइलों को छोड़कर, सर्वर की ओर से किसी भी कैशिंग को नहीं करना चाहिए। साथ ही, मैं केवल उपनिर्देशिकाओं में स्थित फाइलों की सेवा करना चाहता हूं, कोई फैंसी फ़ाइल ब्राउज़र या क्लाइंट से उन्हें संशोधित करने के तरीके नहीं।

क्या यह संभव है? यदि नहीं, तो इस तरह के व्यवहार को पूरा करने के लिए आवश्यक न्यूनतम कॉन्फ़िगरेशन क्या है?

अतिरिक्त जानकारी

मैं निम्न आदेश की कोशिश की है। मैं जावाडोक जेट्टी 8 http://localhost:8080/javadoc/ का उपयोग कर के साथ भेज दिया ब्राउज़ करने में सक्षम होने की उम्मीद है, लेकिन यह हमेशा मुझे एक 404

जावा जार --ini विकल्प = सर्वर, संसाधनों आदि/jetty.xml संदर्भों start.jar देता है/javadoc.xml

+0

कारण है कि http: // localhost: 8080/जावाडोक/काम नहीं करता है क्योंकि आपकी जेटी होम निर्देशिका में 'जावाडोक' नाम की कोई निर्देशिका नहीं है। मुझे समझ में नहीं आ रहा है कि जेटी इसे उदाहरण के रूप में क्यों भेजता है जब जेटी वितरण जावाडॉक के साथ नहीं आता है। उल्लिखित यूआरएल काम करने के लिए आपको बस अपने जेटी घर में निर्देशिका 'जावाडोक' बनाने की आवश्यकता है और 'javadoc' निर्देशिका में 'index.html' नाम की एक HTML फ़ाइल बनाएं। 'वेबएप' निर्देशिका में javadoc.html पर एक नज़र डालें, यह जानने के लिए कि उपरोक्त चरणों की आवश्यकता क्यों है। – Parvez

उत्तर

5

सबसे आसान तरीका जेट्टी शुरू करने के लिए जाना शुरू प्रक्रिया है और यह स्थिर सामग्री की सेवा है निम्नलिखित xml फ़ाइल का उपयोग करना है:

स्थिर सामग्री।xml:

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<Configure id="FileServer" class="org.eclipse.jetty.server.Server"> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
      <Set name="host"><Property name="jetty.host" /></Set> 
      <Set name="port"><Property name="jetty.port" default="8080"/></Set> 
      </New> 
     </Arg> 
    </Call> 

    <Set name="handler"> 
     <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
     <Set name="resourceBase"><Property name="files.base" default="./"/></Set> 
     </New> 
    </Set> 
</Configure> 

से आप उपयोग कर जेट्टी शुरू कर सकते हैं:

java -jar start.jar --ini static-content.xml files.base=./foo jetty.port=8082 

आप files.base छोड़ देते हैं, तो वर्तमान direcory उपयोग किया जाएगा; यदि आप jetty.port को छोड़ देते हैं, तो पोर्ट 8080 का उपयोग किया जाएगा।

--ini start.ini से सेटिंग्स को अक्षम कर देगा, इसलिए यह भी सुनिश्चित करें कि कोई अन्य हैंडलर इत्यादि सक्रिय नहीं होंगे।

+0

अनुमान लगाना आसान है लेकिन मैं इसे +1 कर दूंगा, और इसे किसी बिंदु पर जेटी दस्तावेज़ीकरण में जोड़ूंगा, धन्यवाद! –

0

संदर्भों के तहत आपके वितरण में निर्देशिका एक javadoc.xml है जिसे आप आसानी से पर्याप्त तरीके से कैसे करें इस पर एक उदाहरण के रूप में उपयोग कर सकते हैं।

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-distribution/src/main/resources/contexts/javadoc.xml

वह यह है कि क्या यह वास्तव में लगता है कि आप संदर्भ पथ और संसाधन आधार

भी बस में स्टार्टअप से घाट-webapps.xml निकालने की सलाह देते हैं बदलने के लिए देख रहे हैं

तरह

start.ini फ़ाइल और उन संदर्भ फ़ाइलों को भी हटा रहा है जिन्हें आप

पर तैनात नहीं करना चाहते हैं, तो आप start.ini फ़ाइल में कुछ अन्य विकल्पों को सेट करने पर भी देख सकते हैं, साथ ही आपको

http://wiki.eclipse.org/Jetty/Feature/Start.jar

वहाँ जानकारी के लिए

चियर्स

+0

प्रतिक्रिया और पॉइंटर्स के लिए बहुत बहुत धन्यवाद। किसी कारण से मैं इसे काम नहीं कर सकता। मैंने अब अपना खुद का जेनेरिक समाधान बनाने के लिए आदि के रूप में आदि/jetty-fileserver.xml का उपयोग किया है। –

1

से Offtopic के बारे में थोड़ी है, लेकिन Maven का उपयोग कर (मान कि निश्चित संसाधनों target/web में कॉपी की गई) इस तरह यह कुछ करना चाह सकते हैं किसी को:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>8.1.9.v20130131</version> 
    <executions> 
     <execution> 
      <id>start-jetty</id> 
      <phase>install</phase> 
      <goals> 
       <goal>start</goal> 
      </goals> 
      <configuration> 
       <webAppConfig> 
        <resourceBases> 
         <contextPath>/</contextPath> 
         <resourceBase>${project.build.directory}/web</resourceBase> 
        </resourceBases> 
       </webAppConfig> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
संबंधित मुद्दे