我有一個Java Servlet,它接受提供的URL請求的路徑並從中檢索數據庫資源。例如:Tomcat7/Apache2 URL通配符映射
www.mydomain.com/gateway/databasename/tablename
將從指定表中檢索信息,所有的美好和REST等。這在Windows和Netbeans上的本地Tomcat7服務器上工作得很好,但是我在將它部署到運行Ubuntu的Apache2 Web服務器時遇到問題。
這是我的虛擬主機文件看起來像:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/wordpress
<Directory />
Options FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Alias /manager /usr/share/tomcat7-admin/manager
<Directory "/usr/share/tomcat7-admin/manager">
Options FollowSymLinks
AllowOverride None
Allow from all
</Directory>
JkMount /gateway* ajp13_worker
JkMount /manager* ajp13_worker
JkMount /host-manager* ajp13_worker
ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我能夠瀏覽到www.mydomain.com/gateway並查看索引頁爲servlet。如果我訪問www.mydomain.com/gateway/databasename,那麼Tomcat會收到404錯誤,表示請求的資源不可用。
但是!如果我訪問www.mydomain.com/gateway/gateway,那麼我會得到我的servlet的迴應:「網關」是一個無效的數據庫名稱。
所以我認爲問題是在VirtualHost文件中的某個地方並映射URL。任何在www.mydomain.com/gateway/gateway/*的作品,但www.mydomain.com/gateway/*不會。
也爲我部署的web.xml servlet映射是正確的:
<servlet-mapping>
<servlet-name>Gateway</servlet-name>
<url-pattern>/gateway/*</url-pattern>
</servlet-mapping>
而MOD-JK的worker.properties文件如下權利:
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
我不知道我哪裏我錯了,我知道這將是明顯的。如果有人能幫助我,我將不勝感激!
謝謝!知道這是簡單的事情 – hotforfeature