我刚刚在Windows 7上使用虚拟主机解压缩并配置了Tomcat 8.0.3。我已经在默认的webapps下成功测试了它,但是,我的虚拟主机没有识别JSP文件或类中的更改。
这是我的设置:
%CATALINA_HOME%\ CONF \ server.xml中
...
<Engine name="Catalina" defaultHost="localhost">
...
<Host name="ww.virtual.com" appBase="vapps" unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
...
%SYSTEMROOT%\ System32 \ drivers下\等\主机
...
127.0.0.1 ww.virtual.com
%CATALINA_HOME%\的vApp \ ROOT \ META-INF \ context.xml中
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="true" privileged="true" reloadable="true">
<Resource name="jdbc/INVENTORY" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sqlusr" password="secret1" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://127.0.0.1:1433;instanceName=SQLSERVER;DatabaseName=INVENTORY"/>
</Context>
%CATALINA_HOME%\的vApp \ ROOT \ WEB-INF \ web.xml中
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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"
version="3.1"
metadata-complete="true">
<display-name>Test Display</display-name>
<description>Test Description</description>
<resource-ref>
<description>Test DB Connection</description>
<res-ref-name>jdbc/INVENTORY</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
然后我将JSP文件放在%CATALINA_HOME%\ vapps \ ROOT \和%CATALINA_HOME%\ vapps \ ROOT \ WEB-INF \ classes \ MainPackage \中的类中,这些文件在服务器启动时正确加载。但是,如果我对JSP或.class文件进行任何更改,则服务器无法识别更新。我做错了什么?
答案 0 :(得分:1)
这是因为您启用了反资源锁定。使用该选项启用Web应用程序不是从appBase部署,而是从工作目录中的副本部署。如果您在工作目录中编辑副本,则会看到更改。
或者,删除反资源锁定选项并修复导致您首先需要它们的任何错误。