Ik ben bezig met cocoon2, een supercool xml-based webapplication framework. Daarin heb ik alleen een probleempje met een maken van een mysql-connectie. Om te testen of m'n jdbc:mysql connectie uberhaupt wel werkt, wilde ik eventjes een simpel servletje (MySQLtest.class) bouwen zonder cocoon. Het lukt me alleen niet om die in een andere directory te deployen als $CATALINA_HOME/webapps/ROOT/WEB-INF/classes. Die is dan te vinden onder http://barrie:8080/servlet/MySQLtest (de tomcat server heet "barrie"). Volgens veel online tutorials moet het ook goed mogelijk zijn om te deployen in een subdir van $CATALINA_HOME/webapps, zo werkt m'n cocoon2 app immers ook. Ik had het volgende gedaan:
dirs aanmaken:
$CATALINA_HOME/webapps/mysqltest
$CATALINA_HOME/webapps/mysqltest/WEB-INF
$CATALINA_HOME/webapps/mysqltest/WEB-INF/classes
$CATALINA_HOME/webapps/mysqltest/WEB-INF/lib
MySQLtest.class gaat in de /classes directory
m'n appje is nu nog niet echt af, maar als ie af is moet mm.mysql-2.0.14-bin.jar in de /lib directory
filetje aanmaken:
$CATALINA_HOME/webapps/mysqltest/WEB-INF/web.xml
met daarin:
die name, value params zijn een beetje overbodig geloof ik, ik heb dit maar gewoon uit de (dus niet-werkende) tutorial gecopypaste.
war maken:
$ cd $CATALINA_HOME/webapps
$ jar cvf mysqltest.war ./mysqltest
als ik deze war-file in $CATALINA_HOME/webapps laat staan en de uitgepakte dir weghaal, zou de war bij een restart van Tomcat zichzelf uit moeten pakken. Dat gebeurt dus mooi niet (gebeurde wel toen ik cocoon2 ging installeren). Dus maar weer handmatig uitgepakt.
dan schijn je ook nog iets in je $CATALINA_HOME/conf/server.xml te moeten zetten:
in een tutorial stond er ipv docBase="mysqltest" docBase="webapps/mysqltest", maar aangezien de context voor de tomcat examples als volgt is:
heb ik maar aangenomen dat dat webapps er niet zo voor hoeft te staan (het werkt overigens toch niet in beide gevallen).
De servlet zou bereikbaar moeten zijn onder http://barrie:8080/mysqltest/servlet/MySQLtest, maar ik krijg gewoon niets anders dan een 404 error.
Kan iemand me hier bij helpen?
sys: Debian 3.0/woody , Blackdown j2sdk1.3.1-FCS, Tomcat4.0.4
dirs aanmaken:
$CATALINA_HOME/webapps/mysqltest
$CATALINA_HOME/webapps/mysqltest/WEB-INF
$CATALINA_HOME/webapps/mysqltest/WEB-INF/classes
$CATALINA_HOME/webapps/mysqltest/WEB-INF/lib
MySQLtest.class gaat in de /classes directory
m'n appje is nu nog niet echt af, maar als ie af is moet mm.mysql-2.0.14-bin.jar in de /lib directory
filetje aanmaken:
$CATALINA_HOME/webapps/mysqltest/WEB-INF/web.xml
met daarin:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <web-app>
<display-name>MySQLtest</display-name>
<session-timeout>30</session-timeout>
<servlet>
<servlet-name>mysqltest</servlet-name>
<servlet-class>MySQLtest</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
</web-app> |
die name, value params zijn een beetje overbodig geloof ik, ik heb dit maar gewoon uit de (dus niet-werkende) tutorial gecopypaste.
war maken:
$ cd $CATALINA_HOME/webapps
$ jar cvf mysqltest.war ./mysqltest
als ik deze war-file in $CATALINA_HOME/webapps laat staan en de uitgepakte dir weghaal, zou de war bij een restart van Tomcat zichzelf uit moeten pakken. Dat gebeurt dus mooi niet (gebeurde wel toen ik cocoon2 ging installeren). Dus maar weer handmatig uitgepakt.
dan schijn je ook nog iets in je $CATALINA_HOME/conf/server.xml te moeten zetten:
code:
1
2
3
4
5
6
| <!-- deze voor servlets onder http:/barrie:8080/servlet, werkt prima --> <Context path="" docBase="ROOT" debug="0"/> <!-- MySQLtest --> <Context path="/mysqltest" docBase="mysqltest" crossContext="false" debug="0" reloadable="true"/> |
in een tutorial stond er ipv docBase="mysqltest" docBase="webapps/mysqltest", maar aangezien de context voor de tomcat examples als volgt is:
code:
1
2
3
| <!-- Tomcat Examples Context --> <Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true"> |
heb ik maar aangenomen dat dat webapps er niet zo voor hoeft te staan (het werkt overigens toch niet in beide gevallen).
De servlet zou bereikbaar moeten zijn onder http://barrie:8080/mysqltest/servlet/MySQLtest, maar ik krijg gewoon niets anders dan een 404 error.
Kan iemand me hier bij helpen?
sys: Debian 3.0/woody , Blackdown j2sdk1.3.1-FCS, Tomcat4.0.4