Servlet, "HTTP Durumu 404 İstenen kaynak (/ servlet) mevcut değil" döndürüyor


99

WebContent/jspsKlasörümdeki bir JSP dosyasında bir HTML formum var . Klasördeki servlet.javavarsayılan paketimde bir sunucu uygulaması sınıfım var src. Benim web.xmliçinde olarak eşlenir /servlet.

actionHTML formunun özniteliğinde birkaç URL denedim :

<form action="/servlet">
<form action="/servlet.java">
<form action="/src/servlet.java">
<form action="../servlet.java">

Ama bunların hiçbiri çalışmıyor. Hepsi Tomcat 6/7 / 8'de aşağıdaki gibi bir HTTP 404 hatası döndürmeye devam ediyor:

HTTP Durumu 404 - / servlet

Açıklama : İstenen kaynak (/ servlet) mevcut değil.

Veya Tomcat 8.5 / 9'da aşağıdaki gibi:

HTTP Durumu 404 - Bulunamadı

Mesaj : / servlet

Açıklama : Kaynak sunucu, hedef kaynak için geçerli bir temsil bulamadı veya var olduğunu açıklamaya istekli değil

Neden çalışmıyor?

Yanıtlar:


131

Servlet sınıfını bir package

Öncelikle, servlet sınıfını bir Java'ya koyun package. Sen gerektiğini hep aksi halde böyle sunucusunun kendisi gibi bir paket içinde olan sınıfların, görünmezdir, bir paket içinde kamuya reuseable Java sınıflarını koydu. Bu şekilde potansiyel çevreye özgü sorunları ortadan kaldırırsınız. Paketsiz sunucu uygulamaları yalnızca belirli Tomcat + JDK kombinasyonlarında çalışır ve buna asla güvenilmemelidir.

"Düz" bir IDE projesi olması durumunda, sınıfın paket yapısında "Java Kaynakları" klasörüne yerleştirilmesi gerekir ve bu nedenle "WebContent" değil , bu JSP gibi web dosyaları içindir. Aşağıda, Navigator görünümünde görüldüğü gibi varsayılan bir Eclipse Dinamik Web Projesinin klasör yapısının bir örneği bulunmaktadır :

EclipseProjectName
 |-- src
 |    `-- com
 |         `-- example
 |              `-- YourServlet.java
 |-- WebContent
 |    |-- WEB-INF
 |    |    `-- web.xml
 |    `-- jsps
 |         `-- page.jsp
 :

Bir Maven projesinin durumda sınıfın, paket yapısı içine yerleştirilmesi gerekir main/java ve bu nedenle değil mesela main/resources, bu sigara sınıf dosyaları içindir . Aşağıda, Eclipse'in Navigator görünümünde görüldüğü gibi varsayılan bir Maven web uygulaması projesinin klasör yapısının bir örneği bulunmaktadır :

MavenProjectName
 |-- src
 |    `-- main
 |         |-- java
 |         |    `-- com
 |         |         `-- example
 |         |              `-- YourServlet.java
 |         |-- resources
 |         `-- webapp
 |              |-- WEB-INF
 |              |    `-- web.xml
 |              `-- jsps
 |                   `-- page.jsp
 :

/jspsAlt klasörün kesinlikle gerekli olmadığını unutmayın . Hatta onsuz yapabilir ve JSP dosyasını doğrudan webcontent / webapp köküne koyabilirsiniz, ancak bunu sadece sorunuzdan devralıyorum.

Servlet URL'sini şuraya ayarla: url-pattern

Sunucu uygulaması URL'si, sunucu uygulaması eşlemesinin "URL modeli" olarak belirtilir. Sunucu uygulaması sınıfının tanım gereği kesinlikle sınıf adı / dosya adı değildir. URL kalıbı @WebServletek açıklamanın değeri olarak belirtilmelidir .

package com.example; // Use a package!

@WebServlet("/servlet") // This is the URL of the servlet.
public class YourServlet extends HttpServlet { // Must be public and extend HttpServlet.
    // ...
}

Gibi yol parametrelerini desteklemek istiyorsanız /servlet/foo/bar, /servlet/*bunun yerine bir URL kalıbı kullanın. Ayrıca / xyz / {değer} / test gibi Servlet ve yol parametrelerine de bakın , web.xml'de nasıl eşlenir?

@WebServlet yalnızca Servlet 3.0 veya daha yenisinde çalışır

Kullanmak için , eğer varsa dosyanızın (Servlet 3.0'dan beri isteğe bağlıdır) Servlet 3.0+ sürümüne uygun olarak beyan edildiğinden ve bu nedenle örneğin 2.5 sürümüne veya daha düşük sürüme uygun olmadığından@WebServlet emin olmanız yeterlidir . Aşağıda bir Servlet 4.0 uyumlu (Tomcat 9+, WildFly 11+, Payara 5+ vb. İle eşleşen) bulunmaktadır.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0"
>
    <!-- Config here. -->
</web-app>

Veya henüz Servlet 3.0+ üzerinde değilseniz (örn. Tomcat 6 veya daha eski), @WebServletnotu kaldırın .

package com.example;

public class YourServlet extends HttpServlet {
    // ...
}

Ve bunun yerine sunucu uygulamasını şu şekilde kaydedin web.xml:

<servlet>
    <servlet-name>yourServlet</servlet-name>
    <servlet-class>com.example.YourServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>yourServlet</servlet-name>
    <url-pattern>/servlet</url-pattern>  <!-- This is the URL of the servlet. -->
</servlet-mapping>

Bu nedenle, her iki yolu da kullanmamanız gerektiğini unutmayın. Açıklama tabanlı yapılandırma veya XML tabanlı yapılandırma kullanın. İkisine de sahip olduğunuzda, XML tabanlı yapılandırma, açıklama tabanlı yapılandırmayı geçersiz kılacaktır.

Derlemeyi / dağıtımı doğrulama

Eclipse ve / veya Maven gibi bir derleme aracı kullanıyorsanız, derlenen sunucu uygulaması sınıfı dosyasının /WEB-INF/classes, üretilen WAR dosyasının klasöründeki paket yapısında bulunduğundan kesinlikle emin olmanız gerekir . Olması durumunda package com.example; public class YourServlet, içinde bulunmalıdır /WEB-INF/classes/com/example/YourServlet.class. Aksi takdirde, @WebServletayrıca bir 404 hatası durumunda veya <servlet>aşağıdaki gibi bir HTTP 500 hatası durumunda karşılaşacaksınız :

HTTP Durumu 500

Servlet sınıfı com.example.YourServlet başlatılırken hata oluştu

Ve bir log sunucusuna bulmak java.lang.ClassNotFoundException: com.example.YourServletbir takip java.lang.NoClassDefFoundError: com.example.YourServletdönüş izledi içinde, javax.servlet.ServletException: Error instantiating servlet class com.example.YourServlet.

Sunucu uygulamasının doğru bir şekilde derlenip sınıf yoluna yerleştirilip yerleştirilmediğini doğrulamanın kolay bir yolu, oluşturma aracının bir WAR dosyası oluşturmasına (örneğin , Eclipse'de sağ tıklama projesi, Dışa Aktar> WAR dosyası ) ve ardından içeriğini bir ZIP aracıyla incelemesine izin vermektir . Sunucu uygulamacığı sınıfı eksikse /WEB-INF/classesveya dışa aktarma bir hataya neden oluyorsa, proje kötü bir şekilde yapılandırılmıştır veya bazı IDE / proje yapılandırma varsayılanları yanlışlıkla geri alınmıştır (örneğin , Eclipse'de Proje> Otomatik Olarak Oluştur devre dışı bırakılmıştır).

Ayrıca, proje simgesinin bir yapı hatasını gösteren kırmızı çarpı işareti olmadığından da emin olmanız gerekir. Hatayı Sorunlar görünümünde ( Pencere> Görünümü Göster> Diğer ... ) bulabilirsiniz. Genellikle hata mesajı Google'da incelenebilir. Hiçbir fikriniz yoksa, en iyisi sıfırdan yeniden başlatmak ve herhangi bir IDE / proje yapılandırma varsayılanına dokunmamaktır. Eclipse kullanıyorsanız, Eclipse projemde javax.servlet API'sini nasıl içe aktarırım? Bölümünde talimatları bulabilirsiniz.

Sunucu uygulamasının tek tek test edilmesi

Sunucunun üzerinde çalışması localhost:8080ve WAR'ın bağlam yolunda başarıyla dağıtılması /contextname(varsayılan olarak IDE proje adına, büyük / küçük harfe duyarlıdır!) Ve sunucu uygulamasının başlatılmasında başarısız olmadıysa (herhangi bir dağıtım / sunucu uygulaması başarılı / başarısız mesajları ve gerçek bağlam yolu ve sunucu uygulaması eşlemesi), URL modeline sahip bir sunucu uygulaması /servletadresinde mevcuttur http://localhost:8080/contextname/servlet.

Tek başına test etmek için doğrudan tarayıcının adres çubuğuna girebilirsiniz. Uygun doGet()şekilde geçersiz kılınır ve uygulanırsa, çıktısını tarayıcıda görürsünüz. Ya da hiç doGet()yoksa veya yanlış bir şekilde çağırırsanız super.doGet(), bir " HTTP 405: HTTP yöntemi GET bu URL tarafından desteklenmiyor " hatası gösterilecektir (bu, bir 405, sunucu uygulamasının kanıtı olarak 404'ten daha iyidir) kendisi aslında bulunur).

service()Bir MVC çerçevesini yeniden icat etmediğiniz sürece geçersiz kılma kötü bir uygulamadır - bu, servletlerle yeni başlıyorsanız ve mevcut soruda açıklanan soruna dair hiçbir fikriniz yoksa çok düşük bir ihtimaldir;) Ayrıca bkz. Tasarım Modelleri web tabanlı uygulamalar .

Her şeye rağmen, sunucu uygulaması tek tek test edildiğinde zaten 404 döndürüyorsa, bunun yerine bir HTML formuyla denemek tamamen anlamsızdır. Bu nedenle mantıksal olarak, bir sunucu uygulamasından 404 hatasıyla ilgili sorulara herhangi bir HTML formunu dahil etmek de tamamen anlamsızdır.

Sunucu uygulamacığı URL'sine HTML'den başvurma

Tek tek çağrıldığında sunucu uygulamasının iyi çalıştığını doğruladıktan sonra, HTML'ye geçebilirsiniz. HTML formuyla ilgili somut sorununuzla ilgili olarak, <form action>değerin geçerli bir URL olması gerekir. Aynısı için de geçerlidir <a href>. Mutlak / göreceli URL'lerin nasıl çalıştığını anlamanız gerekir. Biliyorsunuz, bir URL, web tarayıcısının adres çubuğuna girebileceğiniz / görebileceğiniz gibi bir web adresidir. Form eylemi olarak göreli bir URL belirtirseniz, yani http://şema olmadan, web tarayıcınızın adres çubuğunda gördüğünüz gibi geçerli URL ile göreli hale gelir . Bu nedenle, birçok yeni başlayanların düşündüğü gibi, sunucunun WAR klasör yapısındaki JSP / HTML dosya konumuna kesinlikle bağlı değildir.

Yani, HTML formu ile JSP sayfası tarafından açık olduğunu varsayarak http://localhost:8080/contextname/jsps/page.jspve bulunan bir sunucu uygulaması başvuruda bulunmaları gerekmektedir http://localhost:8080/contextname/servlet, burada birkaç vaka (güvenle yerini tutabilir notu olan <form action>ile <a href>burada):

  • Form eylemi, başında eğik çizgiyle bir URL'ye gönderir.

      <form action="/servlet">
    

    Baştaki eğik çizgi /URL'yi etki alanına göre yapar, bu nedenle form şu adrese gönderilir:

      http://localhost:8080/servlet
    

    Ancak bu, yanlış bağlamda olduğu için muhtemelen 404 ile sonuçlanacaktır.


  • Form eylemi, başında eğik çizgi olmadan bir URL'ye gönderir.

      <form action="servlet">
    

    Bu, URL'yi mevcut URL'nin geçerli klasörüne göre yapar, böylece form şu adrese gönderilecektir:

      http://localhost:8080/contextname/jsps/servlet
    

    Ancak bu, yanlış klasörde olduğu için muhtemelen 404 ile sonuçlanacaktır.


  • Form eylemi, bir klasör yukarı çıkan bir URL'ye gönderir.

      <form action="../servlet">
    

    Bu bir klasör yukarı gidecek (tıpkı yerel disk dosya sistemi yollarında olduğu gibi!), Böylece form şu adrese gönderilecek:

      http://localhost:8080/contextname/servlet
    

    Bu çalışmalı!


  • Bununla birlikte, kanonik yaklaşım, URL'yi etki alanına göre yapmaktır, böylece JSP dosyalarını başka bir klasöre taşıdığınızda URL'leri bir kez daha düzeltmenize gerek kalmaz.

      <form action="${pageContext.request.contextPath}/servlet">
    

    Bu üretecek

      <form action="/contextname/servlet">
    

    Böylece her zaman doğru URL'ye gönderilir.


HTML'de düz tırnak kullanın

HTML gibi nitelikleri de emin misin düz tırnak kullanıyorsanız kesinlikle yapmak gerekir action="..."veya action='...'bu şekilde ve olmayan kıvırcık gibi tırnak action=”...”veya action=’...’. Kıvırcık alıntılar HTML'de desteklenmez ve değerin bir parçası haline gelirler. Bloglardan kod parçalarını kopyalayıp yapıştırırken dikkatli olun! Bazı blog motorlarının, özellikle de Wordpress'in, varsayılan olarak "akıllı alıntılar" olarak adlandırılan ve dolayısıyla kod parçacıklarındaki alıntıları bu şekilde bozduğu bilinmektedir. Öte yandan, kodu kopyalayıp yapıştırmak yerine, kodun üzerine kendiniz yazmayı deneyin. Kodu beyninizden ve parmaklarınızdan almanın bir diğer avantajı, kodu uzun vadede çok daha iyi hatırlamanızı ve anlamanızı sağlayacak ve aynı zamanda sizi daha iyi bir geliştirici yapacaktır.

Ayrıca bakınız:

Diğer HTTP Durumu 404 hatası durumları:


1
web-app version = "3.1", cam balığı kullanarak, web.xml'de bir eşleme VE ek açıklamaya sahip olduğumda, sunucu uygulamamı ayrı ayrı test edebilirdim. En son sürüme sahip olduğum için eşlemeyi kaldırdım ve açıklamayı bıraktım ancak sonra 404 hatası alacağım?
SallyRothroat

1
Sunucu uygulamacığı kitaplıklarını tek başına sağlamak için hedef çalışma zamanına güvenmek yerine, sunucu uygulaması 2.5 veya daha eski kitaplıkları web uygulamasının kendisine dahil ederseniz bu gerçekleşebilir.
BalusC

@xdola: Bu gerçekten kırılgandır çünkü istek URI'sine bağlıdır. Sorununuzla ilgili açıklama ve doğru yaklaşımın ne olduğu için cevabı okuyun.
BalusC

4

Senaryo 1: Sen kazayla yeniden dağıtılabilir erkek kedi ise komut satırından zaten çalışıyor .

Kısa Cevap: Tomcat'i durdurun, hedef klasörü , mvn paketini silin ve ardından yeniden dağıtın


Senaryo 2: request.getRequestDispatcher (" MIS_SPELLED_FILE_NAME .jsp")

Kısa Cevap: Dosya adı yazımını kontrol edin , büyük / küçük harflerin doğru olduğundan emin olun .


Senaryo 3: Sınıf Bulunamadı İstisnaları (Yanıtın nedeni: Soru # 17982240) (tutulmalı tomcat'teki sunucu uygulaması için java.lang.ClassNotFoundException ) (yinelenen olarak işaretlendi ve beni buraya yönlendirdi)

Kısa Cevap 3.1: web.xml'de sunucu uygulaması sınıfı etiketinde yanlış paket yolu var.

Kısa Cevap 3.2: Java dosyasında yanlış import ifadesi var.


1. Senaryo için daha fazla ayrıntı aşağıda verilmiştir:


1: Tomcat'i durdur

  • Seçenek 1: Terminalde CTRL + C ile.
  • Seçenek 2: (tomcat hala çalışırken terminal kapalıdır)
  • ------------ 2.1: basın: Windows + R -> şunu yazın: " services.msc "
  • ------------ 2.2: Listenin Ad sütununda "Apache Tomcat #. # Tomcat #" öğesini bulun.
  • ------------ 2.3: Sağ Tık -> " durdur "

2: "Hedef" klasörü silin. (mvn clean burada size yardımcı olmayacak)

3: mvn paketi

4: YOUR_DEPLOYMENT_COMMAND_HERE

(Benimki: java -jar hedef / bağımlılık / webapp-runner.jar --port 5190 hedef / *. Savaş)

Tam Arka Hikaye:


Yanlışlıkla yeni bir git-bash penceresi açtı ve heroku projem için bir .war dosyasını şu yolla dağıtmaya çalıştı:

java -jar hedef / bağımlılık / webapp-runner.jar --port 5190 hedef / *.

Konuşlandırmadaki bir başarısızlıktan sonra, iki git-bash penceremin açık olduğunu ve önceki dağıtımı durdurmak için CTLR + C kullanmadığımı fark ettim .

İle tanıştım:

HTTP Durumu 404 - Bulunamadı Tür Durum Raporu

Mesaj /if-student-test.jsp

Açıklama Kaynak sunucu, hedef kaynak için geçerli bir temsil bulamadı veya var olduğunu açıklamaya istekli değil.

Apache Tomcat / 8.5.31

Aşağıda Senaryo 3 için daha fazla ayrıntı yer almaktadır:


SENARYO 3.1: Web.xml dosyanızdaki sunucu uygulaması sınıfı paket yolu yanlış.

Java servlet sınıfınızın üstündeki paket ifadesiyle eşleşmelidir.

Dosya: my_stuff / MyClass.java :

   package my_stuff;

Dosya: PRJ_ROOT / src / main / webapp / WEB-INF / web.xml

   <servlet-class>
   my_stuff.MyClass
   </servlet-class>

SENARYO 3.2:

MyClass.java dosyanızın üstüne yanlış " paket " ifadesini koydunuz.

Örneğin:

Dosya " / my_stuff " klasöründe

Yanlış yazıyorsun:

package com.my_stuff

Bu aldatıcı çünkü:

1: Maven derlemesi (mvn paketi) burada herhangi bir hata bildirmez.

2: web.xml'deki sunucu uygulaması sınıfı satırında DOĞRU paket yolu olabilir. Örneğin:

<servlet-class>
my_stuff.MyClass
</servlet-class>

Stack Kullanılan: Notepad ++ + GitBash + Maven + Heroku Web Uygulaması Runner + Tomcat9 + Windows 10 :


AppName.war'ınız ve dolayısıyla patlatılan klasör adı, beklenen adınızla eşleşmiyor, örneğin savaş dosyanız AppName-1.0-SNAPSHOT.war gibi sürümlendiğinde ve / AppName / deniyorsunuz.
jla

1

Web.xml'de belirtildiği gibi doğru URL Eşlemesini girip girmediğinizi kontrol edin.

Örneğin:

Web.xml'de, sunucu uygulaması bildiriminiz belki:

<servlet>
        <servlet-name>ControllerA</servlet-name>
        <servlet-class>PackageName.ControllerA</servlet-class>
</servlet>

<servlet-mapping>
        <servlet-name>ControllerA</servlet-name>
        <url-pattern>/theController</url-pattern>
</servlet-mapping>

Bu kod parçacığının yaptığı şey <url-pattern>/theController</url-pattern>, sunucu uygulamasını ön uçtan (örneğin: form) URL aracılığıyla çağırmak için kullanılacak adı belirlemektir. Bu nedenle, ön uçtaki sunucu uygulamasına başvurduğunuzda, isteğin "DenetleyiciA" sunucu uygulamasına gitmesini sağlamak için, formdan belirtilen URL Modeli "Denetleyici" ye başvurması gerekir.

Örneğin:

<form action="theController" method="POST">
</form>

0

HTTP Status 404NetBeans IDE için çözüm : Projenize sağ tıklayın ve proje özelliklerinize gidin, ardından çalıştır'a tıklayın, ardından projenize göre URL'nizi girin index.jsp.

  1. Proje-> Özellikler
  2. Çalıştır'a tıklayın
  3. Göreli URL: /index.jsp (Proje kök URL'nizi seçin)

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


0

Sorunum, yöntemimde @RequestBody ek açıklamasının eksik olmasıydı. Ek açıklamayı ekledikten sonra artık 404 istisnasını almadım.


0

Aşağıdaki iki adımı uygulayın. Umarım java servlet uygulamasının geliştirilmesi sırasında tomcat sunucusundaki "404 bulunamadı" sorununu çözecektir.

Aşama 1: Right click on the server(in the server explorer tab)->Properties->Switch Location from workspace metadata to tomcat server

Adım 2: Double Click on the server(in the server explorer tab)->Select Use tomcat installation option inside server location menu


0

Spring framework kitaplıkları gibi eski web kitaplığını kaldırdım. Ve kütüphaneler için yeni bir yol oluşturun. Sonra işe yarıyor.


0

Eski bir ileti dizisi, ancak başka yerde bulamadığım için işte bir olasılık daha:

Eğer kullanıyorsanız 3.0+ servlet-api , sonra web.xml gerekir DEĞİL dahil metadata-complete="true"niteliği

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

Bu, tomcat'e web.xml, @WebServletaçıklamayı kullanmak yerine verilen verileri kullanarak sunucu uygulamalarını eşlemesini söyler .


0

Öncelikle IDE'nizi Yönetici olarak çalıştırın. Bundan sonra, proje klasörüne -> Project Facets'e sağ tıklayın ve Java Sürümünün doğru ayarlandığından emin olun. Bilgisayarımda. (Örnek 1.8 için) Şimdi çalışmalıdır.

Sunucunuzu, örneğin Wildfly, cmd'yi kullanarak başlatmayın. IDE içinde başlatılmalı ve şimdi yerel ana bilgisayar URL'nizi ziyaret etmelidir. Örnek: http: // localhost: 8080 / HelloWorldServlet / HelloWorld


0

Benim için işe yarayan düzeltme (Maven kullanıyorsanız): Projenize sağ tıklayın, Maven -> Projeyi güncelle. Bu size JDK ve diğer Kitaplıklar (benim durumumda MySQL bağlayıcısı) ile ilgili başka bir hata verebilir, ancak bunları bir kez düzelttiğinizde, orijinal sorununuz çözülmelidir!


0

'Form' ve 'gönder' butonunu kullanmadan javascript ile bir sunucu uygulaması açmak isterseniz, işte aşağıdaki kod:

var button = document.getElementById("<<button-id>>");
button.addEventListener("click", function() {
  window.location.href= "<<full-servlet-path>>" (eg. http://localhost:8086/xyz/servlet)
});

Anahtar:

1) button-id: html / jsp dosyanızdaki düğmenize verdiğiniz 'id' etiketi.

2) tam sunucu uygulaması yolu: Sunucu uygulamasını tek başına çalıştırdığınızda tarayıcıda gösterilen yol


0

Yaptığım şey web.xml'de eşleme: -

  1. Yeni program için yapılmış başka bir paket varsa şunu belirtmeliyiz: -

xml dosyasında sunucu uygulaması sınıfı etiketinin açılması ve kapanması arasında packagename.filename.

  1. Dosyalarınızı xml'de eşliyorsanız ve çalışmıyorsa veya hata göstermiyorsa, ilgili dosyalardaki ek açıklama satırına yorum yapın.

Her iki yöntem de birbiriyle çalışmıyor, bu nedenle ya servlet oluşturduğumuzda bahsedilen dosyaların açıklama yöntemini ya da eşleme yöntemini kullanıyorum, sonra açıklama satırını siliyorum ya da yorum yapıyorum. Örneğin:

 <servlet>
   <servlet-name>s1</servlet-name>
   <servlet-class>performance.FirstServ</servlet-class>
   </servlet>    
   
   <servlet-mapping>
   <servlet-name>s1</servlet-name>
   <url-pattern>/FirstServ</url-pattern>
   </servlet-mapping>
   
   <servlet>
   <servlet-name>s2</servlet-name>
   <servlet-class>performance.SecondServ</servlet-class>
   </servlet>
   
   <servlet-mapping>
   <servlet-name>s2</servlet-name>
   <url-pattern>/SecondServ</url-pattern>
   </servlet-mapping>

Xml'de eşleme yapılırsa, ilgili dosyadaki kodun açıklama satırının yorumlanması.

//@WebServlet("/FirstServ")
//@WebServlet("/SecondServ")

0

MySQL kullanan ve kodun önceki gün çalıştığını hisseden ve şimdi çalışmayan biri varsa, o zaman MySQL CLI veya MySQL Workbench'i açmanız ve veritabanına bir kez bağlantı kurmanız gerekir. Bağlandıktan sonra, veritabanı Java Uygulamasına da bağlanır. Com.mysql.jdbc.Driver'da bir sorun olduğunu belirten Hazırda Bekletme Dialect hatası alıyordum. Bazı bilgisayarlarda MySQL'in bir başlatma sorunu olduğunu düşünüyorum. Bu benim için çözüldü.


0

Öğrenciyseniz ve Java'da yeniyseniz, web.xml dosyanızla ilgili bazı sorunlar olabilir.

  1. Web.xml dosyasını kaldırmayı deneyin.
  2. İkinci olarak, yol değişkenlerinizin doğru şekilde ayarlanıp ayarlanmadığını kontrol edin.
  3. Tomcat sunucusunu veya bilgisayarınızı yeniden başlatın.

Senin sorunun kesinlikle çözülecek.


-1

Lütfen bağlam kökü boş olamaz .

Eclipse kullanıyorsanız:
sağ tıklayın , özellikleri seçin , ardından web projesi ayarlarını seçin . Bağlam kökünün boş olamayacağını kontrol edin

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.