Auch Dateien, die in web.xml
Ich bin in den Prozess des Schreibens von unit tests für eine JEE5 web-service. Das Verhalten der web-Dienst ist abhängig von den Parametern eingestellt, die in der web.xml
- Datei. Ich will daher mein split web.xml
in einen Konstanten Teil und einen Teil, die geändert wird, um zwischen den Testläufen.
Um zu sehen, ob es tatsächlich möglich ist, habe ich versucht, um zu sehen, ob ich splitten kann aus der welcome-file-list
Attribut. Mit einige Anweisungen, die ich gefunden habe ich die folgenden:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>NewWebService</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>NewWebService</servlet-name>
<url-pattern>/NewWebService</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
&fragment;
</web-app>
fragment.xml
<?xml version="1.0" encoding="UTF-8"?>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Aber ich bin immer in der Validierung Fehler auf der web.xml
Datei:
Attribut "version" muss erklärt werden, für den element-Typ "web-app". [7]
Attribut "xmlns" deklariert werden muss, für den element-Typ "web-app". [7]
Attribut "xmlns:xsi" deklariert werden muss, für den element-Typ "web-app". [7]
Attribut "xsi:schemaLocation" deklariert werden muss, für den element-Typ "web-app". [7]
Habe ich das Gefühl, dass mit einer web-app v2.3 DTD-und eine web-app v2.5 schema innerhalb der gleichen Datei ist das problem, aber ich weiß nicht, wie ich werde in der Lage sein, diese zu umgehen.
(Alle anderen Ansätze, die in teilen eines web.xml Datei in kleinere Stücke wäre auch willkommen!)
Update
Wenn ich entfernen Sie die DTD-Referenz so wie...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app[
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
etc, etc, etc.
...es scheint, als ob der Prozess der Validierung ignoriert die web-app_2_5.xsd
Datei:
Element-Typ "web-app" deklariert werden müssen. [5]
Element-Typ "Zuhörer" deklariert werden müssen. [6]
Element-Typ "listener-Klasse" deklariert werden müssen. [7]
Element-Typ "servlet" deklariert werden müssen. [9]
etc, etc, etc.
InformationsquelleAutor Catchwa | 2011-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich hinzufügen ein Haken in meine web-service, der überprüft, ob die Anwesenheit eines eproperties - Datei. Wenn er eine findet, weiß er, dass es im Test-Modus und anstatt die angegebenen Werte in
web.xml
es zieht Sie aus der properties-Datei. Nicht sehr elegant, aber zumindest funktioniert es. Die properties-Datei kopiert, um denWEB-INF
Verzeichnis, indem Sie den JUnit-test während der@BeforeClass
Methode. Angesichts der Erfolg dieser Methode habe ich mich schon gefragt, obweb.xml
ist der beste Ort zum speichern von Einstellungen für die Webanwendung sowieso...InformationsquelleAutor Catchwa