Будучи несколько ленивым, я был очень рад найти, что я могу создать новый исходный код сервлета, перейдя в New -> Servlet, вместо того, чтобы идти New -> Class, а затем редактируя класс в сервлет.Почему создание сервлетов в Eclipse нарушает мой web.xml?
Однако я обнаружил, что каждый раз, когда я создаю новый сервлет в Eclipse, Eclipse изменяет мой web.xml.
В частности, он модифицирует верхний элемент: (. Переносами Mine)
<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.
Для того, чтобы что хуже, когда я использую find и replace, чтобы удалить все, чтобы «javaee:», который помещает файл, Eclipse все еще жалуется на них, даже если их больше нет. Я должен скопировать и вставить весь оставшийся файл поверх себя, чтобы эти жалобы исчезли.
Я уверен, что Eclipse пытается быть полезным, предвосхищая некоторое желание или потребность в этом пространстве имен. Как я могу сделать одну из двух вещей:
Заставить это делать?
Воспользуйтесь тем, что он пытается сделать, и заставьте его работать вместо меня вместо меня?
Это одна из веских причин избегать волшебников Eclipse. –
Можете ли вы использовать сервлет 3.0? – Bozho
@Bozho - Я новичок, когда дело доходит до сервлетов. Я, вероятно, мог бы использовать сервлет 3.0, но я даже не знаю, какую версию я использую (я думаю, последняя), или как сказать ей использовать другую версию. –