有点懒,我很高兴地发现我可以通过New - > Servlet创建一个新的Servlet源代码,而不是去New - > Class,然后将该类编辑成一个servlet。为什么在Eclipse中创建Servlet会破坏我的web.xml?
但是,我发现每次在Eclipse中创建新的servlet时,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正在努力发挥作用,期待这个命名空间的某种愿望或需求。我如何做两件事之一:
让它停止这样做?
利用它试图做的任何事情,让它为我工作而不是反对我?
这是避免Eclipse向导的一个很好的理由 – 2010-10-24 13:30:25
您可以使用servlet 3.0吗? – Bozho 2010-10-24 13:34:20
@Bozho - 当谈到servlet时,我是一个新手。我可能可以使用servlet 3.0,但我甚至不知道我目前使用的是哪个版本(我认为是最新版本),或者如何告诉它使用不同的版本。 – 2010-10-24 13:47:12