Eclipse'de dinamik bir web projesinin bağlam kökünü nasıl değiştirebilirim?


205

Eclipse'de dinamik bir web projesi geliştirdim. Aşağıdaki URL'yi kullanarak uygulamaya tarayıcımdan erişebilirim:

http://localhost:8080/MyDynamicWebApp

Erişim URL'sini şu şekilde değiştirmek istiyorum:

http://localhost:8080/app

Bunu yapmak için, "Özellikler | Web Projesi Ayarları | Bağlam Kökü" projesinden bağlam kökünü değiştirdim. Ancak, web uygulaması yine de aynı erişim URL'sine sahiptir. Uygulamayı Tomcat üzerinde yeniden kurdum ve Tomcat'i yeniden başlattım, ancak erişim URL'si daha önce olduğu gibi aynı.

server.xmlDosyaya eklenmiş bir dosya olmadığını gördüm WAR. Olmadan server.xmlekli dosyada nasıl Tomcat benim web uygulamasının içeriği kök olduğunu belirliyor /MyDynamicWebAppve bana bu bağlam kök URL üzerinden uygulamaya erişmek için izin?

Yanıtlar:


332

Şimdiye kadar devam ettiğine eminim, ama yine de cevap vereceğimi düşündüm.

Bu yanıtların bazıları geçici çözümler vermektedir. Aslında olması gereken, yeni URI'yi "etkinleştirmek" için projenizi temizleyip yeniden yayınlamanızdır. Bu, sunucunuzu sağ tıklayıp (Sunucular görünümünde) ve Temizle'yi seçerek yapılır. Sonra başlatırsınız (veya yeniden başlatırsınız). Buradaki diğer cevapların çoğu, bunu gerçekleştiren şeyleri yapmanızı önerir.

Değişen dosya, workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.datçalışma alanınızda birden fazla sunucunuz olmadığı sürece, bu durumda publishN.dataynı yolda olacaktır.

Umarım bu birine yardımcı olur.


Bunun uygun görgü kuralları olup olmadığından emin değilim - Eclipse Indigo için kesin adımlar vermek için bu cevabı düzenliyorum.

  1. Projenizin Özellikler bölümünde Web Projesi Ayarları'nı seçin .

  2. Değişim Bağlam kökü için app .

    Eclipse proje özelliklerinin ekran görüntüsü Web Project Settings

  3. Seç Pencere> Show Görünüm> Sunucular .

  4. Kırmızı kare kutusunu ("Sunucuyu durdur" araç ipucu) tıklatarak veya "Durdur" u seçmek için sunucu listesine bağlam tıklatarak sunucuyu durdurun.

  5. Kullanmak istediğiniz sunucuda, bağlamı tıklatarak "Temizle…" seçeneğini seçin.

    resim açıklamasını buraya girin

  6. Bu onay iletişim kutusunda Tamam'ı tıklayın.

    Sunucu yapılandırmasını değiştirilen bağlam köküyle eşleşecek şekilde güncellemek isteyen iletişim kutusunun ekran görüntüsü

Artık uygulamanızı aşağıdaki gibi yeni "uygulama" URL'si ile çalıştırabilirsiniz:

http://localhost:8080/app/

Üretim sunucunuzda Eclipse dışında bunu yapmak daha da kolay -> Savaş dosyasını yeniden adlandırın. Vaadin uygulamanızı WAR dosyası olarak dışa aktarın ( Dosya> Dışa Aktar> Web> WAR dosyası ). WAR dosyasını web sunucunuzun Tomcat gibi sunucu uygulaması kabına taşıyın. WAR dosyanızı, bu durumda app.war olarak yeniden adlandırın . Sunucu uygulaması kapsayıcısını başlattığınızda, Tomcat gibi çoğu, savaş dosyasını bir klasöre genişletmeyi içeren uygulamayı otomatik olarak dağıtır. Bu durumda, app adında bir klasör görmeliyiz . Gitmek için iyi olmalısın. URL'nizi test edin. * Example.com "gibi bir alan adı için:

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

Görsel eklentiler kullanılıyorsa Vaadin araç seti programcılarının widget setlerini yeniden oluşturmaları gerekebilir.


Mükemmel cevap !!! Buradaki diğer cevapların hayatımı kurtarıyorsun, aslında bunu başarmak için bir şeyler yapmanı öneririm
AndreaNobili

İşte bu cevabın dehası: Bu sayfaya doğru yolumu açtım ve etiketleri bile okumadım (Visual Studio kullanarak bir ASP.NET web sitesi oluşturuyorum). Ama çözüm yine de çalıştı!
Curt

Ben böyle ve seçenek "Web Proje Ayarları" var
IntoTheDeep

sadece workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.datbir ikili dosya olduğunu söyleyerek, neden orada bahsettiğinizi anlamıyorum, bu sorunun çözüm olduğu izlenimini veriyor
aliopi

Ama ne Eclipse .. veya herhangi bir IDE kullanmazsak .. Ben programlı olarak servlet bağlam kök yolunu yapılandırmak istiyorum. Bunu nasıl yapmalıyım? web.xml muhtemelen? ..
Giorgi Tsiklauri

32

Proje özelliklerindeki bağlam kökünü değiştirdikten sonra, web uygulamanızı Tomcat'ten kaldırmanız (sunucunun bağlam menüsünde Ekle ve Kaldır ... seçeneğini kullanarak), yeniden konuşlandırmanız ve ardından uygulamanızı yeniden eklemeniz ve yeniden konuşlandırmanız gerekir. Benim için çalıştı.

Vurulursa başka bir seçeneğiniz vardır: Sunucular görünümünde Tomcat sunucusunu seçin. Bu sunucuyu çift tıklatmak (veya bağlam menüsünde Aç'ı seçmek), Modüller sayfasının bulunduğu bir çok sayfalı düzenleyici getirir. Burada modülünüzün kök içeriğini değiştirebilirsiniz (bu sayfadaki Yol olarak adlandırılır).


Teşekkürler! Bu benim için hile yaptı. ancak, proje özelliklerindeki bağlam kökünü değiştirmeden bile çalışır. Burada bir şey mi eksik?
Chris

Bu da önceki Eclipse yapılarında benim için
çalışırdı

namasety, dhanywaada :) başlangıçta bağlamımı değiştirdiğimde, sunucu yeniden başlatıldıktan ve temizlendikten sonra bile çalışmadı. sadece yazı çalıştı, projeyi kaldırdım ve okudum.
Yogesh Sanchihar

24

Tomcat'i Eclipse'den çalıştırıyorsanız, gerçek Tomcat kurulumunuzdaki yapılandırmayı kullanmaz. "Sunucular" projesi altında oluşturduğu ve sakladığı Tomcat yapılandırmasını kullanır. Eclipse çalışma alanınızı görüntülerseniz, "Sunucular" adlı bir proje görmelisiniz. Bu "Sunucular" projesini genişletin ve server.xml ile karşılaşacaksınız. Bu dosyayı açın ve en alta kaydırın ve şöyle bir şey görmelisiniz: -

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

Burada, proje bağlam yolunuzu başka bir şeye değiştirebilirsiniz.

Bu yardımcı olur umarım.


3 değeri de değiştirmek istediğinizden emin değilim. Csaba_H çözümü benim için çalıştı ve bu sadece "yol" özniteliğini değiştirir ...
Chris

Bu benim için çalışmadı - sunucuyu yeniden başlattığınızda bu dizindeki dosyaların üzerine yazılır. Csaba_H'ın ikinci sürümü, Tomcat Server altındaki Modüller sekmesi "doğru" yaklaşım gibi görünüyor.
idarwin

17

Burada Russ Bateman tarafından önerilen çözümü denedim

http://localhost:8080/Myapp için http://localhost:8080/somepath/Myapp

Ama benim için işe yaramadı çünkü yerel makinemde sunucunun tek tek örneğini değil, config tutabilecek bir * .war dosyasına ihtiyacım vardı.

Referans

Bunu yapmak için WEB-INF içine yerleştirilmiş jboss-web.xml dosyasına ihtiyacım var

<?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>

Bu benim için çalıştı. Çevre = Eclipse + m2e + m2e-wtp + Sunucular görünümünden JBoss'a dağıtılıyor. Ana web projesini KÖK olarak dağıtmak gerekiyordu ve hiçbir Eclipse ayarı işe yaramadı. Tosha'nın dosyasını (yukarıda) kopyaladım ve "ROOT" sans tırnaklarını bağlam-kök değeri olarak yerleştirdim. Bitti ve bitti. Teşekkürler @Tosha!
Steven Francolla

Bu işe yarıyor, ama neden proje özelliklerindeki ayarı yoksayar?
Vedran

4
JBoss WildFly 8.1.0 Final ile çalışır
alexander

MyEclipse 8.6'dan Eclipse'e geçtim ve '/' kök bağlamıyla konuşlandırılamadım. Jboss-web.xml eklemek başarılı bir şekilde çalıştı. Sunucu: Jboss AS 5.1 Eclipse Luna.
Sai

9

Eclipse web modülleri düzenleme iletişim kutusunda hiçbir şeyin yolunu ayarlamak, URL'de herhangi bir yol bileşeni (yani ROOT) olmadan projeye erişebilmemi sağladı

"Sunucular" görünümünde Tomcat'i seçerseniz veya üzerine çift tıklayarak F3 tuşuna basarak web modülleri düzenleme iletişim kutusuna ulaşabilirsiniz.

Bazı ekran görüntüleri:


Üzgünüm ama bu konuda daha fazla ayrıntı verebilir misiniz?
Smonff

Ohh, teşekkürler! GNU / Linux üzerinde Eclipse Luna'da a /gereklidir.
Smonff

1
Win7'de Eclipse Mars (4.5) kullandım.
Ray Hulha

6

Apache tomcat proje bağlam yolunu server.xml yolunda tutar. Eclipse'teki her web projesi için oradan değiştirebileceğiniz bir etiket var.
Diyelim ki sunucuda iki veya üç proje dağıtılmış. Her biri için bağlam yolu saklanır. Bu etiket eclipse üzerinde oluşturulan Server içindeki server.xml dosyasında bulunur.

Sunucuda bağlam kök yolu üzerinde orada bir proje var:

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

Bu yol, web uygulamanızın bağlam yolunu temsil eder. Bu yolu değiştirdiğinizde, web uygulaması içerik yolunuz değişecektir.


6

Cevabın zaten kabul edildiğini biliyorum. Ancak, Maven kullanan herkes aynı şeyi başarmak isterse, sadece maven yapısındaki finalName'i vermek istediğiniz isme ayarlayın ve bir maven -> güncelleme projesi yapın

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

4

Proje maven ise pom.xml'deki "finalName" i değiştirin ve Project'i Maven olarak güncelleyin.Bu benim için çalıştı.


2

Glassfish'te WEB-INF / glassfish-web.xml dosyasını da değiştirmeniz gerekir.

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

"Farklı çalıştır> Sunucuda çalıştır" ı tıkladığınızda doğru şekilde açılır.


Evet, yapmalıyız. Güzel paylaşım.
Dinath

2

Sadece uygulama adınızı kök bağlamda istemiyorsanız, Eclipse -> Web Project Ayarları -> Bağlam Kök girişi

Bu, web uygulamasını yalnızca http: // localhost: 8080 /

Tabii ki, bu sunucuda çalıştırmaya çalıştığınız diğer webapps'lerde sorunlara neden olacaktır, bu yüzden buna dikkat edin.

Bu parçayı birleştirmem için sonsuza dek sürdü ... bu yazı 8 yaşında olmasına rağmen, umarım bu hala birisine yardım eder!


0

Java projesinde .settings klasörünü açın. "org.eclipse.wst.common.component" adlı dosyayı bulun. <Wb-module deploy-name = "NEW_NAME"> etiketini değiştirin.

Ayrıca proje özelliklerinde bağlam kökünü değiştirmek isteyebilirsiniz


tüm bunlar benim projemde iyi görünüyor ve tutulması içinde gayet iyi çalışıyor. maven kullanarak bir savaş dosyasına dönüştürdüğümde kök bağlamını kaybeder ve localhost / events yerine / localhost üzerinde çalışır / tüm bağlantılarımı keser
JesseBoyd

0

Uygulamanızı dağıtmak için eclipse kullanılıyorsa. Bu maven eklentisini kullanabiliriz

<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>

şimdi proje kök klasörünüze gidin ve o konumda cmd istemini açın ve şu komutu yazın:

mvn tutulması: tutulması -Dwtpversion = 2.0

Tutulmayı yeniden başlatmanız veya sunucu görünümünde sunucuyu silip etkilenmeyi görmek için agian oluşturmanız gerekebilir. Bu egzersizin gerçek hayatta mantıklı olduğunu düşünüyorum ama işe yarıyor.


0

Maven java ee 7/8 kurumsal uygulama kullanıyorsanız, EAR projesinin pom.xml dosyasını düzenlemeniz gerekir

<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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.