Warum ist das erstellen von Servlets in Eclipse breaking my web.xml?

Etwas faul, ich war ziemlich glücklich, dass ich könnte, erstellen Sie ein neues servlet-Quellcode durch gehen Neuen -> Servlet, anstatt Neues -> Klasse und dann Bearbeiten Sie die Klasse in ein servlet.

Allerdings habe ich entdeckt, dass jedes mal, wenn ich ein neues servlet in Eclipse, Eclipse ändert meine web.xml.

Speziell, es ändert die top-element:

<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
    xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    id="WebApp_ID" version="2.4">

(Zeilenumbrüche mine.)

Scheint dies nicht unbedingt schlecht sein, aber dann ändert es verschiedene sub-Elemente, indem Sie "Java ee:" vor Ihren Namen, um anzuzeigen, dass diese Elemente gehören in diesem namespace.

Zum Beispiel, es ändert sich

<display-name>ShowLifecycles</display-name>

zu

<javaee:display-name>ShowLifecycles</javaee:display-name>

Nachdem, welche eclipse meckert dann über alle Elemente modifiziert, dass Sie mir Bezeichnungen wie:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'javaee:display-name'. One of '{"http://
 java.sun.com/xml/ns/j2ee":description, "http://java.sun.com/xml/ns/j2ee":display-name, "http://java.sun.com/xml/ns/
 j2ee":icon, "http://java.sun.com/xml/ns/j2ee":distributable, "http://java.sun.com/xml/ns/j2ee":context-param, "http://
 java.sun.com/xml/ns/j2ee":filter, "http://java.sun.com/xml/ns/j2ee":filter-mapping, "http://java.sun.com/xml/ns/
 j2ee":listener, "http://java.sun.com/xml/ns/j2ee":servlet, "http://java.sun.com/xml/ns/j2ee":servlet-mapping, "http://
 java.sun.com/xml/ns/j2ee":session-config, "http://java.sun.com/xml/ns/j2ee":mime-mapping, "http://java.sun.com/xml/ns/
 j2ee":welcome-file-list, "http://java.sun.com/xml/ns/j2ee":error-page, "http://java.sun.com/xml/ns/j2ee":jsp-config, "http://
 java.sun.com/xml/ns/j2ee":security-constraint, "http://java.sun.com/xml/ns/j2ee":login-config, "http://java.sun.com/xml/ns/
 j2ee":security-role, "http://java.sun.com/xml/ns/j2ee":env-entry, "http://java.sun.com/xml/ns/j2ee":ejb-ref, "http://
 java.sun.com/xml/ns/j2ee":ejb-local-ref, "http://java.sun.com/xml/ns/j2ee":service-ref, "http://java.sun.com/xml/ns/
 j2ee":resource-ref, "http://java.sun.com/xml/ns/j2ee":resource-env-ref, "http://java.sun.com/xml/ns/j2ee":message-
 destination-ref, "http://java.sun.com/xml/ns/j2ee":message-destination, "http://java.sun.com/xml/ns/j2ee":locale-
 encoding-mapping-list}' is expected.

Noch schlimmer zu machen, wenn ich mit suchen und ersetzen zu löschen, alle zu "Java ee:" welche Würfe die Datei, Eclipse beschwert sich trotzdem über diese, obwohl Sie nicht mehr da sind. Muss ich kopieren und einfügen die gesamte restliche Datei auf sich selbst um diese Beschwerden gehen Weg.

Ich bin sicher, dass Eclipse versucht, nützlich zu sein, erwarten manche wollen oder brauchen für diesen namespace. Wie kann ich das tun, entweder eines von zwei Dingen:

  1. Machen Sie es zu stoppen, dies zu tun?

  2. Nutzen was auch immer es ist Sie versuchen zu tun, und es funktioniert für mich, anstatt gegen mich?

  • dies ist ein guter Grund, um zu vermeiden, Eclipse wizards
  • Können Sie verwenden, servlet 3.0?
  • Ich bin ein Neuling, wenn es um servlets. Ich könnte wahrscheinlich verwenden, servlet 3.0, aber ich weiß gar nicht, welche version ich derzeit mit (ich glaube die neuste) oder wie man es sagen, eine andere version verwenden.
  • b - Das wäre die einfachste Lösung, aber anstatt es zu vermeiden, würde ich es vorziehen, es zu verstehen. 🙂
  • Schnappen Sie Tomcat 7.0 und Verwendung der servlet 3.0. WTP unterstützt es auch, also versuchen Sie es.
  • Ich bin bereits mit Tomcat 7.0 ... etwas spezifischer sollte ich tun, um es verwenden servlet 3.0?
  • Überprüfen Sie Ihre Projekt-Facetten in Eclipse. Die version von Dynamische Web-Modul 3.0
  • Cheers für die info. Für besser oder schlechter, das ist genau die version die ich habe, so das dieses Problem nicht behoben.
  • Ihre web.xml Ansprüche, die Sie verwenden 2.4 statt 3.0. Es gibt einige mismatch 😉 Kannst du reinigen?
  • Das kann entweder aus dem tutorial habe ich gerade arbeite, über oder vor. Ich werde versuchen, es zu verändern 3.0, um zu sehen, ob es hilft (oder schadet).
  • Scheint nicht, etwas zu ändern. Eclipse verhält.

Schreibe einen Kommentar