Tomcat kullanarak Eclipse'de web hizmeti çalıştırırken aynı yol hatasıyla birden çok bağlam


131

Eclipse kullanarak ilk Axis2 web hizmetimi oluşturduğumda aldığım hatadır bu. Sınıfı yazdıktan sonra Apache Axis2 ile web servisini oluşturdum. Tutulma sırasında sunucuyu başlat düğmesine tıkladığımda bir hata mesajı veriyor:

Localhost'ta Tomcat v6.0 Sunucusu için sunucu yapılandırması yayınlanamadı.
Birden çok bağlamda "/ FirstApache" yolu vardır.

FirstApache, daha önce oluşturduğum dinamik web projesidir. Web servis sihirbazındaki konfigürasyon kısmından doğru web projesini seçtim.

Bunu nasıl düzeltebilirim?

Yanıtlar:


276

server.xmlDosyayı arayın ve <Context>etiketlerinizi kontrol edin , muhtemelen aynı yol için birden fazla tanım vardır. Yinelenenleri kaldırın ve sizin için çalışacaktır.

Cevabı buradan kontrol edin .

İkinci etiket aynı satırda, ancak görüntü alanının dışında ve görünür olandan gerçekten uzakta olabileceğinden xml dosyasını ( control+ shift+ f) otomatik olarak biçimlendirin <Context>.


13
Server.xml dosyasını çalışma alanı \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf içinde bulabilirsiniz (bu sizin tutulma varsayılan sunucunuz değilse tmp0'ı değiştirin)
Repoker

Eclipse java ee'de dinamik bir web projesinin bir kopyasını oluşturduktan ve bunun yerine kopyada JSP'leri çalıştırmayı denedikten sonra bu sorunu yaşadım. Bu sorunu nasıl çözerim?
Erran Morad

Diğer gereksiz "teşekkürler" lerden kaçınmak için korunmalıdır. Cevaba olumlu bir oylama, teşekkür yorumundan daha iyidir.
Dwhitz

Teşekkürler, işe yarıyor, ancak bu yinelemenin neden oluştuğunu karıştırıyorum?
Sandip S.

Bu çözüm hala çalışıyor, Eclipse V2018-12'de Tomcat 8.5 kullanıyorum
Raymund Arthur

70

STS / Eclipse'de "proje gezgini" veya "paket gezgini" ne gidin ve "sunucu" adında bir klasör var. Açın ve server.xmldosyayı bulacaksınız . Bu dosyanın içinde aşağıdaki gibi bir tanım bulursunuz

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

Kaldırmanız gereken aynı tanımın kopyalarını bulabilirsiniz.


1
Eklenen sunucuların silinmesi eklendi, bu satır bir kez daha otomatik olarak
Vinayak Shedgeri

Uygulama bundan sonra bile başlamazsa, Konsol'un yanındaki "Sunucular" sekmesine gidin ve sunucu adı açılır menüsünde bulunan tüm modülleri kaldırın. Bundan sonra projeyi yeniden çalıştır
Sameer Sinha

41

Eclipse'de, Sunucular projesine gidin . Kullandığınız Tomcat sürümünün ağacını açın. Server.xml dosyasını açın ve Bağlam etiketlerinizi doğrulayın.


28

Proje gezgini üzerindeki tutulma IDE'nizde server.xml'ye aşağıdaki gibi erişin:

görüntü açıklamasını buraya girin

Ve projeniz için yinelenen referanslara sahip bağlam etiketlerini kaldırın:

görüntü açıklamasını buraya girin


16

Bir özellik adına sahip etikete gidin server.xmlve arayın ."Context""docBase"

Yinelenen satırları buradan kaldırın. Ardından sunucuyu yeniden başlatmayı deneyin.


12

Tutulmadaki Sunucular projesine, çalışma zamanı sunucu yapılandırmanızın altında gidin (benim durumumda, localhost-config'deki Tomcat v7.0 Sunucusu) server.xml'e gidin dosyasına ardından <context> etiketini arayın, normalde birden fazla bağlam etiketi bulacaksınız , bunları silin ve uygulamanızı şimdi çalışacak uygun sunucuda çalıştırın.

benim durumumda yinelenen Bağlam etiketi buldum:

<Context docBase="my-project" path="/my-project" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/&gt;&lt;Context docBase="my-project" path="/smartphone-selfcare" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/></Host>

10

Tomcat kullanarak tutulmada, sadece bu server.xml dosyasını açıp Bağlam etiketini bulursunuz ve burada bağlam adınızın birden fazla olduğunu görürsünüz, sadece gereksiz bağlamları silip sunucunuzu yeniden başlatırsınız, çalışır ...

görüntü açıklamasını buraya girin


5
  1. Projenizin Özellikleri'nde "Web Projesi Ayarları" nı seçin.
  2. "Bağlam kökü" nü değiştirin.
  3. Sunucunuzu temizleyin
  4. şimdi sunucunuzu yeniden başlatabilirsiniz

İş istasyonlarında farklı konumlarda aynı uygulamanın birden fazla örneğini kullanan geliştiriciler için mükemmel çözüm. Eclipse / Tomcat'in tüm kurulumlarının server.xml dosyasında bir <Context> etiketi olmadığını buldum.
Mindsect Ekibi

5

Eclipse >> proje gezgini >> sunucular >> server.xml >> etiket >> projenizin yinelenen etiketini kaldırın


3

Sunucuyu Eclipse'de kaldırın ve tomcat sunucusunu tekrar ekleyin. tomcat / bin / shutdown.bat dosyasındaki tomcat'i kapatmaktan ve sunucuyu tutulmada başlatmaktan daha iyidir.


2

Sunucu konsolundaki mevcut tomcat sunucusunu silmeyi deneyin. Konsolunuz yoksa, "Görünümü göster -> sunucu" seçeneğine gidebilir, üzerine sağ tıklayarak sunucuyu silebilir ve ardından yeni bir sunucu ekleyebilirsiniz.


2

Tomcat 7 ve Eclipse kullanıyorsanız, Tomcat sunucusuna tıklayın ve ardından modüller sekmesine gidin. Orada yinelenen girişi bulacaksınız. Hem girişi kaldırın ve uygulamayı yeniden konuşlandırın. Şimdi gitmekte iyisin.


2

İlgili bir notta, bir projeyi kopyaladıysanız veya herhangi bir durumda, 2 'etkin' proje için aynı bağlam yoluna sahipseniz, bunlardan birinin bağlam yolunu değiştirmeniz, ardından tomcat sunucu ayarlarını temizlemeniz ve ardından sunucuları yeniden yayınlamanız gerekir.

bkz bunda-daha ayrıntılı cevap


1

Bu sorunu daha önce yaşadım. Ben sadece tomcat ağacını genişleterek ve çatışmaya neden olan klasörü silerek çözdüm. senin durumunda /FirstApache. sildikten sonra. sonra onu yeniden çalıştırırsanız, koşabilmeniz gerekir. Tekrar olursa silin ve tekrar deneyin.


0

Kodunuzun başındaki server.xml veya context.xml'deki boşluğu veya boş satırı kaldırın


0

Benim durumumda, localhost-config / server.xml adresindeki Servers / Tomcat5.5'te etiketinin altında yinelenen yollar buldum. Kopyaları kaldırmak sorunu çözdü.


0

Wrokspace'in .metadata / .plugins dosyasından org.eclipse.wst.server.core ve org.eclipse.wst.server.ui'yi silin

sunucuyu tutulmadan silin ve ardından sunucuyu tutulmada yeniden yapılandırın.


0

Bu hata, bir projeyi kopyalamak yerine kopyaladığınızda ve ardından o projenin adını değiştirdiğinizde oluşur.

böyle bir durumda aşağıdaki adımları izleyin.

Adım 1: web.xml dosyanızı düzenlemeniz gerekir. önceki projelerin servlet ve servlet eşlemesini kaldırın.

Adım-2: SUNUCU'ya git -> server.xml -> bağlamı bul

Örnek: - Context docBase = "JSPandServletDemo" path = "/ JSPandServletDemo" = "true" source = "org.eclipse.jst.jee.server: JSPandServletDemo" />

şimdi sadece yol adını mevcut proje adınıza değiştirmeniz gerekiyor.

İyi Şanslar Mutlu Kodlama :)


-1

STS kullanıyorsanız ve sunucunuz Pivotal ise Sunucuya çift tıklayın ve> Modüller sekmesine gidin> Bu sunucuda Web Modüllerini Yapılandır öğesini görüntüleyin.> Yalnızca modülleri kaldırabilir ve bir kez daha çalıştırabilirsiniz.


-1
 //Trying to do more than one thing to the object in the same context, 
//the solution is to work on single context objects

public class SingletonContext<TContext>
    where TContext: DbContext,new()
{
    private static TContext _context;

    private SingletonContext()
    {

    }
    public static TContext GetInstance()
    {
        if (_context == null)
        {
            _context = new TContext();
        }
        return _context;
    }

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