ग्रहण में एक गतिशील वेब परियोजना के संदर्भ रूट को कैसे बदलें?


205

मैंने ग्रहण में एक गतिशील वेब परियोजना विकसित की। मैं निम्नलिखित URL का उपयोग करके अपने ब्राउज़र के माध्यम से ऐप को एक्सेस कर सकता हूं:

http://localhost:8080/MyDynamicWebApp

मैं एक्सेस URL को इसमें बदलना चाहता हूं:

http://localhost:8080/app

ऐसा करने के लिए, मैंने प्रोजेक्ट "गुण | वेब प्रोजेक्ट सेटिंग्स | संदर्भ रूट" से संदर्भ रूट को बदल दिया। हालाँकि, वेब ऐप में अभी भी एक ही एक्सेस URL है। मैंने टॉमकैट पर एप्लिकेशन को फिर से तैनात किया है और टॉमकैट को फिर से शुरू किया है, लेकिन एक्सेस URL पहले की तरह ही है।

मैंने पाया कि server.xmlफाइल के साथ कोई फाइल जुड़ी हुई नहीं थी WARserver.xmlफ़ाइल संलग्न किए बिना , टॉमकैट यह कैसे निर्धारित कर रहा है कि मेरे वेब ऐप का संदर्भ रूट है /MyDynamicWebAppऔर मुझे इस संदर्भ रूट URL के माध्यम से एप्लिकेशन तक पहुंचने की अनुमति है?

जवाबों:


331

मुझे यकीन है कि आप अब तक चले गए हैं, लेकिन मुझे लगा कि मैं फिर भी जवाब दूंगा।

इनमें से कुछ जवाब वर्कआर्डर देते हैं। वास्तव में क्या होना चाहिए कि आप नए URI को "सक्रिय" करने के लिए अपनी परियोजना को साफ और पुन: प्रकाशित करें। यह आपके सर्वर (सर्वर दृश्य में) को राइट-क्लिक करके और क्लीन चुनने के द्वारा किया जाता है। फिर आप शुरू करें (या इसे पुनरारंभ करें)। यहां अन्य अधिकांश उत्तर आपको ऐसे काम करने की सलाह देते हैं जो वास्तव में इसे पूरा करते हैं।

वह फ़ाइल जो बदल रही है workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat, जब तक कि आप अपने कार्यक्षेत्र में एक से अधिक सर्वर न पाएं, publishN.datउसी स्थिति में वह उसी पथ पर होगा ।

आशा है कि यह किसी की मदद करता है।


सुनिश्चित नहीं है कि यह उचित शिष्टाचार है या नहीं - मैं इस उत्तर को ग्रहण इंडिगो के लिए सटीक कदम देने के लिए संपादित कर रहा हूं।

  1. अपने प्रोजेक्ट के गुणों में , वेब प्रोजेक्ट सेटिंग चुनें

  2. एप्लिकेशन के लिए प्रसंग रूट बदलें ।

    ग्रहण परियोजना के स्क्रीन शॉट वेब परियोजना सेटिंग्स

  3. विंडो चुनें > दृश्य> सर्वर दिखाएं

  4. सर्वर को या तो लाल स्क्वायर बॉक्स पर क्लिक करके रोकें ("स्टॉप सर्वर" टूलटिप को रोकें) या "स्टॉप" चुनने के लिए सर्वर लिस्टिंग पर संदर्भ पर क्लिक करें।

  5. जिस सर्वर पर आप उपयोग करना चाहते हैं, "क्लीन ..." चुनने के लिए संदर्भ पर क्लिक करें।

    यहां छवि विवरण दर्ज करें

  6. इस पुष्टि संवाद बॉक्स में ओके पर क्लिक करें।

    परिवर्तित संदर्भ रूट से मिलान करने के लिए सर्वर कॉन्फ़िगरेशन को अपडेट करने के लिए संवाद का स्क्रीनशॉट

अब आप अपने ऐप को नए "ऐप" URL से चला सकते हैं जैसे:

http://localhost:8080/app/

ग्रहण के बाहर अपने उत्पादन सर्वर पर ऐसा करना और भी आसान है -> युद्ध फ़ाइल का नाम बदलें। अपने वाडिन ऐप को एक WAR फ़ाइल ( फ़ाइल> निर्यात> वेब> WAR फ़ाइल ) के रूप में निर्यात करें । अपने वेब सर्वर के टॉम कंटेनर जैसे WAR फ़ाइल को स्थानांतरित करें। इस मामले में अपनी WAR फ़ाइल का नाम बदलें, app.war के लिए । जब आप सर्वलेट कंटेनर शुरू करते हैं, तो टॉमकैट जैसे अधिकांश ऐप को ऑटो-परिनियोजित करेंगे, जिसमें एक फ़ोल्डर में युद्ध फ़ाइल का विस्तार करना शामिल है। इस मामले में, हमें ऐप नाम का एक फ़ोल्डर देखना चाहिए । आप जाने के लिए तैयार हैं। अपने URL का परीक्षण करें। एक डोमेन के लिए जैसे * example.com ”यह होगा:

http://www.example.com/app/

यदि दृश्य ऐड ऑन का उपयोग करते हुए वाडिन टूलकिट प्रोग्रामर को अपने विजेट सेट को फिर से बनाने की आवश्यकता हो सकती है।


बहुत बढ़िया जवाब !!! आप मेरे जीवन को बचाने के लिए अन्य जवाब यहाँ दे सकते हैं जो आपको सुझाव देते हैं कि आप ऐसा करें जो इस बात को पूरा करे
AndreaNobili

यहाँ इस उत्तर की प्रतिभा है: मैंने इस पृष्ठ पर अपना रास्ता बनाया, और टैग भी नहीं पढ़े (मैं विजुअल स्टूडियो का उपयोग करके ASP.NET वेबसाइट बना रहा हूँ)। लेकिन समाधान वैसे भी काम किया!
कर्ट

मेरे पास ऐसा कोई विकल्प नहीं है और
IntoTheDeep

सिर्फ यह कहते हुए कि workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.datयह एक द्विआधारी फ़ाइल है, मुझे समझ में नहीं आता है कि आप इसका उल्लेख क्यों करते हैं, यह इस समस्या का समाधान देता है
एलियोपी

लेकिन क्या होगा अगर हम ग्रहण का उपयोग नहीं करते हैं .. या किसी भी आईडीई .. मैं सर्वलेट संदर्भ के रूट पथ को प्रोग्रामेटिक रूप से कॉन्फ़िगर करना चाहता हूं। मैं ऐसा कैसे करूंगा? in web.xml शायद? ..
जियोर्गी सिकलौरी

32

प्रोजेक्ट गुणों में संदर्भ रूट को बदलने के बाद आपको अपने वेब एप्लिकेशन को टॉमकैट (सर्वर के संदर्भ मेनू पर जोड़ें और निकालें ...) का उपयोग करके हटाना होगा, फिर से सबमिट करना होगा, फिर अपना आवेदन और पुन: लागू करना होगा। इसने मेरे लिए काम किया।

यदि आप मारे गए हैं तो आपके पास एक और विकल्प है: सर्वर दृश्य में टॉमकैट सर्वर का चयन करें। उस सर्वर पर डबल क्लिक करना (या संदर्भ मेनू में ओपन का चयन करना) एक मल्टीप्ल एडिटर लाता है जहां एक मॉड्यूल पेज है। यहां आप अपने मॉड्यूल के मूल संदर्भ को बदल सकते हैं (जिसे इस पृष्ठ पर पथ कहा जाता है)।


धन्यवाद! इसने मेरे लिए चाल चली। हालाँकि, यह परियोजना के गुणों में संदर्भ रूट को बदले बिना भी काम करता है। क्या मुझसे कोई चूक हो रही है?
क्रिस

यह मेरे लिए पिछले ग्रहण बिल्ड में भी काम करता था, लेकिन वर्तमान बिल्ड (लूना) में केवल क्लीन विकल्प अब काम करता है
Griknok

namasety, dhanywaada :) जब मैंने शुरू में अपना संदर्भ बदला, तो सर्वर रिस्टार्ट और क्लीन होने के बाद भी यह काम नहीं किया। यह केवल पोस्ट का काम करता है, मैंने प्रोजेक्ट को हटा दिया और रीड किया।
योगेश सांचीहर

24

यदि आप एक्लिप्स से टॉमकैट चला रहे हैं, तो यह आपके वास्तविक टॉमकैट इंस्टॉलेशन से कॉन्फ़िगरेशन का उपयोग नहीं करता है। यह टॉमकैट कॉन्फ़िगरेशन का उपयोग करता है जो इसे "सर्वर" परियोजना के तहत बनाया और संग्रहीत किया गया है। यदि आप अपना ग्रहण कार्यक्षेत्र देखते हैं, तो आपको "सर्वर" नामक एक प्रोजेक्ट देखना चाहिए। उस "सर्वर" परियोजना का विस्तार करें और आप server.xml पर आ जाएंगे। इस फ़ाइल को खोलें और नीचे तक सभी तरह से स्क्रॉल करें, और आपको कुछ इस तरह से देखना चाहिए: -

<Context docBase="abc" path="/abc" reloadable="true" source="org.eclipse.jst.jee.server:abc"/>

यहां, आप केवल अपने प्रोजेक्ट संदर्भ पथ को कुछ और में बदल सकते हैं।

उम्मीद है की यह मदद करेगा।


मुझे यकीन नहीं है कि आपके सभी 3 मान बदलना चाहते हैं। Csaba_H के समाधान ने मेरे लिए काम किया और यह केवल "पथ" विशेषता को बदलता है ...
क्रिस

यह एक मेरे लिए काम नहीं किया - जब आप सर्वर को पुनरारंभ करते हैं तो उस निर्देशिका की फाइलें अधिलेखित हो जाती हैं। Csaba_H के संस्करण दो, Tomcat सर्वर के तहत मॉड्यूल टैब, "सही" दृष्टिकोण की तरह लगता है।
इडरविन

17

मैंने पोस्ट में Russ Bateman Here द्वारा सुझाए गए समाधान की कोशिश की

http://localhost:8080/Myapp सेवा http://localhost:8080/somepath/Myapp

लेकिन डिडंट ने मेरे लिए काम किया, क्योंकि मेरे पास एक * .war फ़ाइल होनी चाहिए जो कॉन्फिगरेशन को पकड़ सके न कि मेरे लोकमंच पर सर्वर का व्यक्तिगत उदाहरण।

संदर्भ

ऐसा करने के लिए मुझे WEB-INF में रखा गया jboss-web.xml चाहिए

<?xml version="1.0" encoding="UTF-8"?>
 <!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

  <jboss-web>
  <context-root>somepath/Myapp</context-root>
  </jboss-web>

इसने मेरे लिए काम किया। पर्यावरण = ग्रहण + m2e + m2e-wtp + सर्वर से JBoss को देखने के लिए तैनात करना। ROOT के रूप में मुख्य वेब परियोजना को तैनात करने की आवश्यकता है और किसी भी ग्रहण सेटिंग ने चाल नहीं चली। मैंने तोशा की फ़ाइल (ऊपर) को कॉपी किया और "रूट" संस को संदर्भ-मूल मान के रूप में उद्धृत किया। किया और किया। धन्यवाद, @ तोशा!
स्टीवन फ्रांसोला

यह काम करता है, लेकिन मुझे आश्चर्य है कि यह परियोजना गुणों में सेटिंग की उपेक्षा क्यों करता है?
वेदरन

4
JBoss WildFly 8.1.0 फाइनल के साथ काम करता है
अलेक्जेंडर

मैं MyEclipse 8.6 से ग्रहण में चला गया और '/' मूल संदर्भ के साथ तैनात नहीं हो सका। Jboss-web.xml को जोड़ना सफलतापूर्वक काम किया। सर्वर: Jboss के रूप में 5.1 ग्रहण लूना।
साईं

9

ग्रहण वेब मॉड्यूल में कुछ भी नहीं करने के लिए पथ सेट करना संवाद संपादित करने से मुझे URL (यानी ROOS) में किसी भी पथ घटक के बिना परियोजना का उपयोग करने में सक्षम बनाया गया।

यदि आप "सर्वर" दृश्य में टॉमकैट का चयन करते हैं या उस पर डबल क्लिक करके एफ 3 दबाकर वेब मॉड्यूल संपादित संवाद तक पहुंच सकते हैं।

कुछ स्क्रीनशॉट:


क्षमा करें, लेकिन क्या आप इस पर अधिक जानकारी दे सकते हैं?
13

ओह धन्यवाद! जीएनयू / लिनक्स पर ग्रहण लूना पर, /हालांकि यह आवश्यक है।
स्मॉन्ग

1
मैंने Win7 पर एक्लिप्स मार्स (4.5) का इस्तेमाल किया।
रे हुल्हा

6

Apache tomcat server.xml पथ में प्रोजेक्ट संदर्भ पथ रखता है। ग्रहण पर प्रत्येक वेब परियोजना के लिए, वहाँ से टैग है जिसे आप इसे बदल सकते हैं।
मान लीजिए, सर्वर पर दो या तीन परियोजनाएं तैनात हैं। हर एक संदर्भ पथ में संग्रहीत किया जाता है। यह टैग ग्रहण पर बनाए गए सर्वर के भीतर server.xml फ़ाइल पर स्थित है।

सर्वर में संदर्भ रूट पथ पर मेरे पास एक परियोजना है:

<Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:Test1"/>

यह पथ आपके वेब एप्लिकेशन के संदर्भ पथ का प्रतिनिधित्व करता है। इस पथ को बदलने से, आपका वेब ऐप संदर्भ पथ बदल जाएगा।


6

मुझे पता है कि जवाब पहले ही स्वीकार कर लिया गया है। लेकिन, बस का उपयोग कर Maven एक ही बात प्राप्त करना चाहता है मामला किसी में, बस सेट finalName Maven में निर्माण > अद्यतन परियोजना - करने के लिए जो भी नाम आप दे सकते हैं और एक Maven क्या करना चाहते हैं

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>

4

यदि प्रोजेक्ट मावेन है, तो pom.xml में "फाइनलनेम" बदलें और मावेन के रूप में प्रोजेक्ट को अपडेट करें। यह मेरे लिए काम कर रहा है।


2

Glassfish में आपको WEB-INF / glassfish-web.xml फ़ाइल भी बदलनी होगी

<glassfish-web-app>
    <context-root>/myapp</context-root>
</glassfish-web-app>

इसलिए जब आप "Run as> Run on server" पर क्लिक करेंगे तो यह सही तरीके से खुल जाएगा।


हाँ, हमें करना चाहिए। अच्छा साझा किया।
दीनानाथ

2

मैं बस यह जोड़ना चाहता था कि यदि आप अपना एप्लिकेशन नाम रूट संदर्भ में बिल्कुल नहीं चाहते हैं, तो आपने ग्रहण में - "/" (कोई उद्धरण नहीं, बस आगे की स्लैश) डाल दी -> वेब प्रोजेक्ट सेटिंग्स -> प्रसंग रूट प्रविष्टि

यह वेबप को केवल http: // localhost: 8080 / पर तैनात करेगा

बेशक, यह अन्य वेबएप्स के साथ समस्याओं का कारण होगा जिन्हें आप सर्वर पर चलाने की कोशिश करते हैं, इसलिए इसके साथ सिर करते हैं।

मुझे हमेशा के लिए एक साथ लेने के लिए ले लिया ... इसलिए भले ही यह पोस्ट 8 साल पुरानी है, उम्मीद है कि यह अभी भी किसी की मदद करेगा!


0

जावा प्रोजेक्ट में, .settings फ़ोल्डर खोलें। "org.eclipse.wst.common.component" नाम की फ़ाइल ढूंढें। टैग बदलें <wb- मॉड्यूल परिनियोजन-नाम = "NEW_NAME">।

इसके अलावा आप परियोजना के गुणों में संदर्भ रूट को बदलना चाह सकते हैं


यह सब मेरी परियोजना पर अच्छा लग रहा है और यह ठीक-ठीक ग्रहण के भीतर चलता है। यह तब होता है जब मैं इसे मावेन का उपयोग करके एक युद्ध फ़ाइल में परिवर्तित करता हूं जो इसे खो देता है मूल संदर्भ और इसके बजाय लोकलहोस्ट / इवेंट्स / यह लोकलहोस्ट पर चलता है / जो मेरे सभी लिंक को तोड़ देता है
जेसीबायड

0

यदि अपने आवेदन को तैनात करने के लिए ग्रहण का उपयोग कर रहे हैं। हम इस मावेन प्लगइन का उपयोग कर सकते हैं

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <wtpversion>2.0</wtpversion>
        <wtpContextName>newContextroot</wtpContextName>
    </configuration>
</plugin>

अब अपने प्रोजेक्ट रूट फ़ोल्डर में जाएं और उस स्थान पर cmd प्रॉम्प्ट खोलें, जो यह कमांड टाइप करता है:

मवन ग्रहण: ग्रहण -दिवस २ = २.०

आपको ग्रहण को पुनः आरंभ करने की आवश्यकता हो सकती है, या सर्वर व्यू डिलीट सर्वर में और प्रभावित देखने के लिए एगियन बनाने की आवश्यकता हो सकती है। मुझे आश्चर्य है कि यह अभ्यास वास्तविक जीवन में समझ में आता है लेकिन काम करता है।


0

मावेन जावा ई 7/8 उद्यम अनुप्रयोग का उपयोग करते समय, ईएआर परियोजना के pom.xml को संपादित करने की आवश्यकता होती है

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.sample</groupId>
                        <artifactId>ProjectName-web</artifactId>
                        <contextRoot>/myproject</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.