【发布时间】:2020-01-23 10:06:38
【问题描述】:
我有一个域test.mydomain.com。我把它放到浏览器地址栏,然后我进入Tomcat控制面板。
应用程序部署在 tomcat 上,并在地址 localhost/test/ 处启动。应用部署在本地文件夹webapps/test
现在我希望在访问主机时,test.mydomain.com 被重定向到我的应用程序。我在<Engine> 部分中添加了server.xml
<Host name="test.mydomain.com" appBase="webapps/test"
unpackWARs="true" autoDeploy="true">
<Alias>www.test.mydomain.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="${catalina.base}/webapps/test"
debug="0" reloadable="true"/>
</Host>
我可以访问我的应用程序,但两个 servlet 除外
@WebServlet(name = "Options", urlPatterns = "/js/options.js")
public class Options extends HttpServlet {
@WebServlet(name = "AggregateIconController", urlPatterns = "/images/points/agg.svg")
public class AggregateIconController extends HttpServlet {
在web.xml文件中,我已经定义了这样的规则
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
metadata-complete="false">
<display-name>Test Web Application</display-name>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/css/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/*</url-pattern>
</servlet-mapping>
</web-app>
这些连接点是 web.xml 中定义的掩码的子集。
访问地址test.mydomain.com/js/options.js 时出现错误404。但访问localhost/test/js/options.js 时页面返回。
向web.xml添加规则时
<servlet-mapping>
<servlet-name>Options</servlet-name>
<url-pattern>/js/options.js</url-pattern>
</servlet-mapping>
没有任何变化
【问题讨论】:
标签: java tomcat servlets virtualhost