2011-11-24 31 views
5

Uygulama sunucusu olarak MyEclipse ve JBoss 5 kullanarak "web" adlı çok basit bir web projesi oluşturmaya çalışıyorum. "Sayfalar" adlı bir paket oluşturdum ve bunun içinde "UserInterface" adlı bir sunucu uygulaması var. Sorun, projeyi dağıttığım ve sunucuyu çalıştırdığımda hata raporunu aldığım zamandır: HTTP Durumu 404 - Servlet mevcut değil.JBoss hata raporu: HTTP Durumu 404 - Servlet kullanılabilir değil

Bu benim web.xml bir parçasıdır:

<servlet> 
    <servlet-name>UserInterface</servlet-name> 
    <servlet-class>pages.UserInterface</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>UserInterface</servlet-name> 
    <url-pattern>/UserInterface</url-pattern> 
    </servlet-mapping> 

ve ben tarayıcıda gezinmek ediyorum: http://localhost:8080/web/UserInterface

yanlış burada ne yapıyorum?

Teşekkür

+0

Dağıtılan web uygulamasında dosyaların bir listesi yararlı olacaktır. Onu bir kuruş olarak mı kullanıyorsun? –

+1

ayrıca bağlam yolu = web ile konuşlandırılan projedir? root localhost'a erişebilir misin: 8080/web? –

+0

Sunucu başlatıldığında veya uygulama dağıtıldığında, günlüklerde veya konsol çıkışında herhangi bir sorun görüyor musunuz? – Santosh

cevap

2

Neyin yanlış olduğunu hala bilmiyorum, ancak kullanıcı olarak adlandırılan başka bir sunucu oluşturdum ve web.xml dosyasında sınıftan önce/servlet ekledim ve tarayıcıda ona gittim (http: // localhost : 8080/web/sunucu/Kullanıcı) ve çalıştı.

<servlet> 
    <servlet-name>User</servlet-name> 
    <servlet-class>pages.User</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>User</servlet-name> 
    <url-pattern>/servlet/User</url-pattern> 
    </servlet-mapping> 

Herkese yardımlarınız için teşekkürler!

2

HTTP Durum 404 - Servlet kullanılamaz. (Servlet düzgün web.xml ilan edilmedi veya URL yanlış ise o zaman bunun yerine görmeliydin, "404 - Kaynak bulunamadı")

servlet'ten yükleme

başarısız oldu. Basitçe, <servlet-class> yanlıştır veya beton sınıf dosyası /WEB-INF/classes'da bulunmamaktadır.

+0

bir servlet istisna 500 hata neden olur mu? –

+0

@Andrei: yalnızca "service()", "doGet()" ve benzeri tarafından atıldığında. Ancak bu durumda, sunucu sadece hiç mevcut değildir. Kap, sunucu URL eşleştirmesinin farkındadır, ancak el ile geçerli bir çalışma örneğine sahip değildir, çünkü örnekleme/başlatma başarısız olmuştur. – BalusC

+0

Hm, evet, ama kendimi, örneğin, bir NPE atan bir init() overriden yöntemine sahip bir servlete sahip olursam, o sunucuya (örneğin, Jetty'de) erişmenin bir HTTP döndüreceği konusunda kendimce düzgün kodlamadan eminim 500. –

4

404 erişmeye çalıştığınız URL sunucunuzdaki varolan bir kaynağa işaret etmiyor demektir. Adresi tekrar kontrol edin, belki de "web" (http://localhost:8080/web/UserInterface) bölümü doğru olmayabilir, çünkü belki de uygulama bu isimle konuşlandırılmamıştır. Varsayılan olarak, uygulama bağlam adı, dosyanızın "myApp.war" olduğu gibi ".war" dosyasının dosya isminden derlenmiştir. Uygulamanızın http://localhost:8080/myApp

da olması gerekir. o kulak dosyası, belirli bir bağlam için uygulama dosyası eşleyebilir bir application.xml aplpication tanımlayıcısı içerecek bir .ear dosyasının içinde savaş hiçbir madde .war dosya adı ne, gibi bir şey: Sonunda

<module> 
    <web> 
     <web-uri>myApp.war</web-uri> 
     <context-root>theApp</context-root> 
    </web> 
    </module> 

Eğer Eclipse ile JBoss Eclipse bağlayıcısını otomatik olarak dönüştürüyorsanız, bazen sorun giderilir ve aslında uygulamanızı düzgün bir şekilde dağıtmaz (uygulamanın kendisi iyi olsa bile). Bu durumda, .war'ı bir uygulama sunucusuna el ile dağıtmayı denemek ve bu şekilde denetleyin.

+1

404 iletisini okuyun. URL kesinlikle yanlış değil. – BalusC

İlgili konular