Tomcat 5.5 deploy probléma Debian Linuxon
Sziasztok!
Próbálkozom a servletekkel Debian Linuxon (Etch). Feltettem deb csomagból a Tomcatet, a példa alkalmazások futnak is szépen. Egy könyvből kiszedtem egy nagyon szimpla szervlet kódot (Hello World), sikerült is lefordítani, de futtatni már nem :( A szervlet számára létrehoztam a megfelelő könyvtárszerkezetet (szervletnév/WEB-INF/classes/HelloVilag.class) és próbáltam elhelyezni először a /var/lib/tomcat5.5/webapps, majd a /usr/share/tomcat5.5-webapps/ helyeken (mindkét helyen van olyan példa amelyik fut), de sikertelenül. A manager szervletet futtatva sem értem el eredményt.
Hol keressem a megoldást?
■ Próbálkozom a servletekkel Debian Linuxon (Etch). Feltettem deb csomagból a Tomcatet, a példa alkalmazások futnak is szépen. Egy könyvből kiszedtem egy nagyon szimpla szervlet kódot (Hello World), sikerült is lefordítani, de futtatni már nem :( A szervlet számára létrehoztam a megfelelő könyvtárszerkezetet (szervletnév/WEB-INF/classes/HelloVilag.class) és próbáltam elhelyezni először a /var/lib/tomcat5.5/webapps, majd a /usr/share/tomcat5.5-webapps/ helyeken (mindkét helyen van olyan példa amelyik fut), de sikertelenül. A manager szervletet futtatva sem értem el eredményt.
Hol keressem a megoldást?
web.xml
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Helló Világ</display-name>
<description>
Próbálkozás.
</description>
<servlet>
<servlet-name>HelloVilag</servlet-name>
<servlet-class>HelloVilag</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloVilag</servlet-name>
<url-pattern>/hellovilag</url-pattern>
</servlet-mapping>
</web-app>
A Tomcat grafikus managerével próbálkozom. Már próbáltam az XML Configuration file URL és a WAR or Directory URL legkülönbözőbb variációival (A Context Path értéke /hellovilag) de mindig a FAIL - Failed to deploy application at context path /hellovilag üzenetet kapom. Az XML Configuration file neve hellovilag.xml, tartalma:
<Context path="/hellovilag" docBase="/ut/a/forrashoz/hellovilag"
debug="0" privileged="true" allowLinking="true">
</Context>
A docBase értéke persze attól függ, hol van épp a telepíteni kívánt szervlet könyvtára a megfelelő szerkezettel (hellovilag/WEB-INF/classes/HelloVilag.class és hellovilag/WEB-INF/web.xml).
Tulajdonképpen mi a deploying művelet célja (mert ugye a fenti, kötelező könyvtárszerkezetet már előzőleg ki kell alakítani (lehetne egy war file is))? Milyen konfig fájlok változtatásán keresztül történik az új szervlet telepítése (deploy), ill. lehetne-e "kézzel" (ezen konfig fájlok szerkesztésével) is telepíteni?
Megoldás
Találtam egy 2006 február 20. keltezésű leírást a http://prasadblog.blogspot.com/ oldalon és ennek alapján készítettem egy hellovilag.xml fájlt, majd elhelyeztem a Tomcat_telepítési_könyvtár/conf/Catalina/localhost könyvtárban (a Tomcat telepítési könyvtára Debianon -.deb csomagból telepítve- /usr/share/tomcat5.5). Mintaként ugyanezen mappa más fájljait használtam. Úgy tűnik, a Tomcat manager ugyanezt a műveletet hajtja végre "deploying" néven (ezt abból gondolom, hogy a manager HTML felületén kiadott "Undeploy" törli a <szervletnév>.xml fájlt a fenti könyvtárból). A managerben meg is jelent az alkalmazások között a hellovilag szervlet, de nem volt indítható. A logok böngészése (/var/log/tomcat5.5) nyomán kiszedtem a hellovilag szervlet WEB-INF/web.xml fájljából az ékezetes betűket (display-name és description elemek), pontosabban lecseréltem nem-ékezetesekre, az xml fejléc encoding paraméteréül pedig "ISO-8859-1"-et adtam meg, ugyanis az ékezetes betűk okozták a hibát. Most már futtatható a szervlet, de nem értem mi volt a nyűgje az ékezetekkel ui. az xml fejlécben eredetileg "UTF-8" szerepelt és szerintem az xml valid volt (mellesleg a managerből azóta sem sikerült "deployolni" a szervletet).
Ez a /var/log/tomcat5.5/catalina.2007-11-16.log fájlban található bejegyzés utal (szerintem) a fent leírt hibára:
...
2007.11.16. 16:00:04 org.apache.catalina.startup.ContextConfig applicationWebConfig
SEVERE: Parse error in application web.xml file at jndi:/localhost/hellovilag/WEB-INF/web.xml
org.xml.sax.SAXParseException: Invalid byte 2 of 4-byte UTF-8 sequence.
...
Csak azért másoltam ide, hátha valaki meg tudná mondani, hogy hogyan vehetném rá mégis a Tomcat-et, hogy ékezetes betűket használhassak. Vagy az alkalmazás működése szempontjából úgyis mindegy, hogy a web.xml milyen leírást tartalmaz a szervletről (a felhasználó úgysem találkozik ezzel a fájllal.)? Mellesleg mire való a web.xml?