Problem deploying GWT application on apache and tomcat using mod_jk
- by Colin
I'm trying to deploy a GWT app on Apache using mod_jk connector. I have compiled the application and tested it on tomcat on the address localhost:8080/loginapp and it works ok. However when I deploy it to apache using mod_jk I get the starter page which gives me a login form but trying to login I get this error
404 Not Found Not Found The requested URL /loginapp/loginapp/login was not found on this server
Looking at the apache log files i see this
[Thu Jan 13 13:43:17 2011] [error] [client 127.0.0.1] client denied by server configuration: /usr/local/tomcat/webapps/loginapp/WEB-INF/
[Thu Jan 13 13:43:26 2011] [error] [client 127.0.0.1] File does not exist: /usr/local/tomcat/webapps/loginapp/loginapp/login, referer: http://localhost/loginapp/LoginApp.html
The mod_jk configurations on my apache2.conf file are as follows
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
<IfModule mod_jk.c>
Alias /loginapp "/usr/local/tomcat/webapps/loginapp/"
<Directory "/usr/local/tomcat/webapps/loginapp/">
Options Indexes +FollowSymLinks
AllowOverride None
Allow from all
</Directory>
<Location /*/WEB-INF/*>
AllowOverride None
deny from all
</Location>
JkMount /loginapp/*.html loginapp
My workers.properties file is as follows
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=loginapp
worker.loginapp.type=ajp13
worker.loginapp.host=localhost
worker.loginapp.port=8009
worker.loginapp.cachesize=10
worker.loginapp.cache_timeout=600
worker.loginapp.socket_keepalive=1
worker.loginapp.recycle_timeout=300
worker.loginapp.lbfactor=1
And this is my servlet mappings for my app on the application's web.xml
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.example.loginapp.server.LoginServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginapp/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>myAppServlet</servlet-name>
<servlet-class>com.example.loginapp.server.MyAppServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myAppServlet</servlet-name>
<url-pattern>/loginapp/mapdata</url-pattern>
</servlet-mapping>
Ive tried everything and it seems to still elude me. Even tried changing the deny from all directive on the WEBINF folder to allow from all and still it doesnt work. Maybe im missing something. Any help will be highly appreciated.