Будучи несколько ленивым, я был довольно счастлив, обнаружив, что могу создать новый исходный код сервлета, перейдя в New -> Servlet вместо перехода в New -> Class и затем отредактировав класс в сервлет.
Однако я обнаружил, что каждый раз, когда я создаю новый сервлет в Eclipse, Eclipse изменяет мой web.xml.
В частности, он изменяет верхний элемент на:
<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">
(перевод строкимой.)
Это не обязательно плохо, но затем он изменяет различные подэлементы, помещая «javaee:» перед их именем, чтобы указать, что эти элементы принадлежат этому пространству имен.
Например, он меняет
<display-name>ShowLifecycles</display-name>
на
<javaee:display-name>ShowLifecycles</javaee:display-name>
После чего затем затмение жалуется на все элементы, которые он изменил, давая мне такие пометки, как:
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.
Что еще хуже, когда я использую поиск и замену, чтобы удалить все в "javaee:", который засоряет файл, Eclipse по-прежнему жалуется на них, даже если их больше нет.Я должен скопировать и вставить весь оставшийся файл поверх себя, чтобы эти жалобы исчезли.
Я уверен, что Eclipse пытается быть полезной, ожидая некоторого желания или потребности в этом пространстве имен.Как я могу сделать одно из двух:
Сделать так, чтобы оно перестало это делать?
Воспользуйтесь преимуществами всего, что он пытается сделать,и заставить его работать на меня, а не против меня?