SORU
30 HAZİRAN 2011, PERŞEMBE


@Tomcat 7 ile açıklama WebServlet

Ben benim uygulama bu şekilde tanımlanmış bir sunucu uygulaması vardıweb.xml:

<servlet>
    <display-name>Notification Servlet</display-name>
    <servlet-name>NotificationServlet</servlet-name>
    <servlet-class>com.XXX.servlet.NotificationServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>NotificationServlet</servlet-name>
    <url-pattern>/notification/*</url-pattern>
</servlet-mapping>

Kullanmak için taşındıktan sonra 7 iş yapacak @WebServlet ek açıklama kullanmak istiyorum Tomcat.
Burada yaptığım gibi:

@WebServlet( name="NotificationServlet", displayName="Notification Servlet", urlPatterns = {"/notification"}, loadOnStartup=1)
public class NotificationServlet extends HttpServlet {

Ve çalışmıyor. Biri nerede hata yaptığımı bana söyleyebilir misiniz?

CEVAP
2 Temmuz 2011, CUMARTESİ


web.xml Web uygulaması Tomcat tarama ve açıklamaları işlemek için 3.0 spec Sunucu uygulaması uygun ilan edilmelidir.

Yani, web.xml kök bildirisi şöyle olmalıdır.

<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

Ayrıca, URL desen küçük bir fark var. URL desen /notifications sunucu uygulaması sadece dinle tam olarak bu yolda istekler için izin verir. İstekleri /notifications/list falan gibi ekstra bir yol ile tekme değildir. 12* *URL desen uygulamasında ek yol bilgisi ile taleplerini dinlemek için izin.

@WebServlet minimum açıklama böylece bu gibi görünmelidir

@WebServlet("/notifications/*")

Öznitelikleri geri kalanı uygulamasında eşit olarak çalışması için isteğe bağlı ve böylece zorunlu değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008