# web.xml: Attribute 'version' must appear



## Generic1 (12. Jul 2010)

Hallo,

ich habe gerade ein Servlet angelegt und gleich danach habe ich i, web.xml folgenden Fehler bekommen:

cvc-complex-type.4: Attribute 'version' must appear on element 'web-app' für den XML- Code:


```
<web-app  xmlns:xsi=..
```

Kann sich das jemand erklären?
Besten Dank,
lg


----------



## SlaterB (12. Jul 2010)

[#OSIMS-5] Eclipse checkout complains about web.xml missing version attribute on web-app node - Kenai.com JIRA

was spricht denn dagegen, eine Version anzuzeigen?

wenn ich bei google nach beliebigen Beispielen schaue, dann finde ich schon im ersten Link eine entsprechende Angabe
Google
->
https://wiki.imise.uni-leipzig.de/Themen/WebApp/WebXml


----------



## Generic1 (12. Jul 2010)

Ich bin ein bisschen Verunsichert, ich wollte nur ein Servlet anlegen und danach hab ich ein paar Errors in der web.xml gehabt, mir ist nicht ganz klar, wo die herkommen, vorher hat ja alles geklappt?


----------



## SlaterB (12. Jul 2010)

oh, dazu kann ich wenig sagen,

wann wo irgendwer aufeinmal was kontrollieren will, gerade bei XML-Dateien, kann von überall herkommen,
in Eclipse ist z.B. der Menü-Punkt Validate recht in der Nähe und ähnlich zu Refresh für mich immer gefährlich, was da dann an langweiligen Meldungen wie 'kein DTD gefunden' usw. kommt..

bei Web-Anwendungen sind auch noch diverse Frameworks betroffen, selbst Eclipse als IDE macht in einem Web-Projekt vielleicht noch mehr im Hintergrund,
kommt die Fehlermeldung eigentlich bei der Ausführung oder normal im Editor wie Java-Fehler?

genaues kann ich dazu nicht sagen, nur solltest du jetzt wo der Fehler da ist vielleicht einfach die Version ranschreiben


----------



## Generic1 (12. Jul 2010)

Jetzt hab ich es hinbekommen, dass im web.xml keine Fehler mehr angezeigt werden, aber jetzt bekomme ich beim Ausführen:


```
15:09:34,708 ERROR [MainDeployer] Could not initialise deployment: file:/opt/apps/jboss-4.2.3.GA/server/default/deploy/SCM 
TestGUI.war
org.jboss.deployment.DeploymentException: Failed to parse WEB-INF/web.xml; - nested throwable: 
(org.jboss.deployment.DeploymentException: expected one param-name tag)
	at org.jboss.web.AbstractWebContainer.parseMetaData(AbstractWebContainer.java:755)
	
at org.jboss.web.AbstractWebContainer.init(AbstractWebContainer.java:356)
	
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	
at java.lang.reflect.Method.invoke(Method.java:597)
```

Weiß ja noch jemand was dazu?

Besten Dank,
lg


----------



## Generic1 (12. Jul 2010)

Jetzt bekomme ich auf einmal 

"expected one param-name tag" -> keine Ahnung wo das herkommen soll?
Weiß da jemand was?
lg


----------



## Generic1 (12. Jul 2010)

Vielleicht findet da jemand einen Fehler, bei dne javaee: werden Fehler angezeigt und wenn ich auf diese Fehler mit der Maus drüber fahre, wird folgendes angezeigt:


```
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.
```

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<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: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>SCM</javaee:display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>InitServlet</servlet-name>
    <servlet-class>com.firma.scm.testgui.InitServlet</servlet-class>
    <init-param>
      <javaeearam-name>datasource.name</javaeearam-name>
      <javaeearam-value>java:scm</javaeearam-value>
    </init-param>
    <init-param>
      <javaeearam-name>depot.url</javaeearam-name>
      <javaeearam-value>http://127.0.0.1/scm</javaeearam-value>
    </init-param>
    <init-param>
      <javaeearam-name>depot.username</javaeearam-name>
      <javaeearam-value>firma</javaeearam-value>
    </init-param>
    <init-param>
      <javaeearam-name>depot.password</javaeearam-name>
      <javaeearam-value>firma</javaeearam-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <filter>
    <filter-name>AuthenticationFilter</filter-name>
    <filter-class>com.firma.scm.testgui.AuthenticationFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>AuthenticationFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  <context-param>
    <javaeearam-name>useradmin.loginpage</javaeearam-name>
    <javaeearam-value>/login.jsp</javaeearam-value>
  </context-param>
  <session-config>
    <session-timeout>15</session-timeout>
  </session-config>
  <servlet>
    <javaee:display-name>FirmaIndexHandler</javaee:display-name>
    <servlet-name>FirmaIndexHandler</servlet-name>
    <servlet-class>com.firma.scm.FirmaIndexHandler</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FirmaIndexHandler</servlet-name>
    <url-pattern>/FirmaIndexHandler</url-pattern>
  </servlet-mapping>
</web-app>

[/XML]


----------



## SlaterB (12. Jul 2010)

```
<init-param>
      <javaee:param-name>
```
wie kommt man auf so eine Konfiguration, hast du Beispiele von denen du abschaust?

man kann doch ungefähr erahnen, dass Dinge zusammenpassen müssen,
sicher bin ich mir nicht, aber bei google habe ich 

```
<javaee:init-param>
            <javaee:param-name>
```
gesehen
5 Creating an Application

wenn ohne Tag, dann doch gewiss

```
<init-param>
      <param-name>
```

eine Mischung sieht aber ungesund aus..


----------



## Generic1 (12. Jul 2010)

vor allem ich versteh nicht, warum "javaee:" nicht erkannt wird, ich bezieh doch xmlns="http://java.sun.com/xml/ns/j2ee" mit ein. 
Übrigens: der Code ist nicht von mir, er hat funktioniert bis ich eben ein Servlet mit dem Wizard hinzufügen wollte. Das ist mir ehrlich gesagt unerklärlich, auch der Editor erkennt javaee nicht (d.h. es gibt keine Vorschläge)
Wäre dankbar für weitere Hilfe.
lg


----------

