Webcat'lerle ilgili Tomcat 7 sondaki eğik çizgi sorunu


13

Son zamanlarda tomcat sunucumu 6.x sürümünden en son 7.x sürümüne yükselttim.

Yardım almayı umarak küçük bir sorunla karşılaştım.

Uygulamamı çağıran bir uygulamam var

Tomcat6'da http://www.example.com/MyApp/page/ adresine gittiğimde normalde istenen sonucu alırdım.

Şimdi, tomcat7'de, aynı tam URL'yi (sondaki eğik çizgi ile) ziyaret ederek hatayı alıyorum: Tomcat, / Uygulamam / sayfa / istek adları yerine tam bir web uygulaması adı olduğunu düşündüğü için "Kaynak kullanılamıyor" Uygulamam web uygulamasının altına yerleştirin.

Aksi takdirde hata alıyorum çünkü benim url sonunda eğik çizgi gerekir: "HTTP Durum 405 - istek yöntemi 'GET' desteklenmiyor" Tamam çünkü ben gerçekten "sayfa" isteğine GET yöntemi izin vermedi .

Birisi, mevcut webapp yolundan sonra son eğik çizgi yeni webapp tüm "dize" çağırır ve sadece tomcat6 gibi isteği işlemek yönlendirmek gerektiğini varsayalım tomcat söylemek nasıl bilir, harika olurdu!


web.xmlEşlenen varsayılan sunucu uygulaması var /*mı? Aksi takdirde tomcat bir karşılama dosyası listesi kullanır. Normalde yalnızca ilk yol parçası bir bağlam kökü olarak yorumlanır. Yani webapp bulmak değil sorun gibi görünüyor.
mana

ilk yol segmenti bir bağlam köküdür ve gerçekten çalışır, bulur, ancak ilk yolun bir parçası olmak yerine aşağıdaki yolları, tüm yol ile webapp için tomcat arama .. Bunu yapılandırmak bir şey yok varsayılan değil ..

Söylediklerini gerçekten anlamıyorum. Afedersiniz. Adıyla yapılandırılmış bir MyAppweb uygulamanız varsa, tomcat bu web uygulaması içeriğini kalan yolu kullanarak kullanır page/. Değilse, ROOTbir arama için tam yolu kullanarak bağlamı arayacaktır .
mana

Uygulamamı çağıran bir web uygulamam var ve example.com/MyApp çalışıyor, ancak Uygulamamın içinde foo içeriği aramak yerine example.com/MyApp/foo adresini ziyaret ederken , bir webapp'ı "Uygulamam / foo /" olarak adlandırıyor ve aramıyor Uygulamam altındaki içerik foo çağırıyor ..

Yanıtlar:


1

Eski soru, ancak Tomcat 8'deki son eğik çizgi ile savaştığımdan beri, eğik çizgi ile ilgili sorunların Tomcat kullanıcı dünyasını rahatsız etmeye devam ettiğini biliyorum. :-)

Karşılaşabileceğiniz şey, kök bağlamı yüklerken Tomcat'in yönlendirmeleri işleme biçimindeki değişikliklerdir. Hata 58660'a göz atın ve geliştirici tartışmasının bazılarını orada okuyun. İçindeki öğenin mapperContextRootRedirectEnabledniteliğini değiştirerek varsayılan eşleştiriciyi kapatmanız gerekebilir .Contextconf/context.xml


0

Karşılama dosya listenizi kontrol edin .. aşağıdaki spekülasyon ...

Ben sorunun özü Tomcat a / - sunulduğunda olduğunu düşünüyorum Birkaç seçenek vardır - Karşılama dosya listesi üzerinde yineleme - Orada hiçbir şey - dizin listesini göster (etkinleştirilmişse)

İşte eğlence burada başlıyor ... Pek çok kişi paçavra gibi şeyler için * .do kullanmak istiyor. Bu yüzden index.do'nun ana sayfa olmasını istiyorlar. Veya yaygın olarak index.jsp burada * .jsp JspServlet ile eşlenir.

İşte işlerin eğlenceli olduğu yer. Diyelim ki hoş geldiniz dosyalarınız index.jsp, index.do.

Tomcat (IIRC) 'nin yaptığı şey, ilk önce bu ismin kaynaklarını aramak için hoş geldiniz dosya listesini tekrarlamaktır.

Ardından, eşleşen eşlemeleri aramak için ikinci bir geçiş yapar. Bu nedenle, hoş geldiniz listesinde index.jsp belirtilirse ve * .jsp eşlenirse. Sonra tomcat index.jsp'ye yönlendirmeye çalışacak ve 404 alacaksınız.

Bu yüzden bir sunucu uygulaması eşleştirme ve karşılama dosyası çakışması olduğunu tahmin edeceğim. Ve bu sunucu uygulamasının davranışı GET'i desteklemez. (Dolayısıyla 405)


0

Projeniz v2.2'nin dinamik web modülünü kullanıyorsa, WebContent'inizde web.xml'de (örneğin: index.html) bulunan en az bir dosya (boş html dosyası olabilir) açıkça oluşturmanız gerekir.


1
bu yorum; cevap değil; lütfen daha fazla puan aldığınızda gelecekte yorum yapmayı düşünün. teşekkürler
Hrvoje Špoljar
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.