在webapps目录下,部署了一个web 工程 :ttest
ttest的目录结构如下图:
ttest
WEB-INF
classes
lib
struts-config.xml
struts-html.tld
struts-bean.tld
struts-html.tld
struts-logic.tld
web.xml
xhtmlmp
login.jsp
*****.jsp
login.jsp
*****.jsp
问题描述:
工程采用jsp+struts 来实现。 在ttest 的目录下有一部分jsp文件,同时在其子目录xhtmlmp目录下也有一部分jsp文件。
把ttest部署到tomcat 的webapps目录下以后,
如果以ip地址的形式 来访问这两部分jsp文件,请求的action ,可以进行处理
例如:
192.168.22.228:8080/ttest/login.jsp 请求loginAction ,可以请求action 没问题。
192.168.22.228:8080/ttest/xhtmlmp/login.jsp 请求mobileLoginAction ,也没问题。
现在的问题是 通过配置虚拟站点,来进行访问这两部分jsp 就有问题了。
ttest下的jsp文件可以 请求对应的action,但是子目录里的xhtmlmp中的jsp 文件 就无法请求到 action,页面会报出404错误!
例如:
http://mmvd.ttest.com/ttest/login.jsp 这个地址可以请求到action
[color=red] http://mmvd.ttest.com/xhtmlmp/login.jsp 这个地址就 无法请求action ! [/color]
我在tomcat的 conf目录中的server.xml 中 配置了 一个Host 元素:
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
另外 在ttest工程下的WEB-INF目录里,strtuts-config.xml的部分信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<!-- ****************************** ttest *********************************** -->
[color=blue]-----------------------------------------------------------------[/color]
在补充一下:
现在的问题是 这四个 链接 请求action的状况:
Ip形式访问
192.168.22.228:8080/ttest/login.jsp 请求loginAction ,可以请求action 没问题。
192.168.22.228:8080/ttest/xhtmlmp/login.jsp 请求mobileLoginAction ,也没问题。
通过配置host,以虚拟站点形式访问:
http://mmvd.ttest.com/ttest/login.jsp 这个地址可以请求到action
[color=red]http://mmvd.ttest.com/xhtmlmp/login.jsp 这个地址就 无法请求action ! [/color]
host的配置就是这个样子,而且要求不能改变:
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">