1

仮想ホストを使用して、Windows 7 で Tomcat 8.0.3 を解凍して構成しました。デフォルトの Web アプリケーションで正常にテストしましたが、仮想ホストが 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\etc\hosts

...
127.0.0.1 ww.virtual.com

%CATALINA_HOME%\vapps\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%\vapps\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 ファイルに変更を加えると、サーバーは更新を認識しません。私は何を間違っていますか?

4

1 に答える 1

1

これは、アンチリソース ロックを有効にしたために発生しています。このオプションを有効にすると、Web アプリケーションは appBase からではなく、作業ディレクトリのコピーからデプロイされます。作業ディレクトリでコピーを編集すると、変更が表示されます。

または、アンチリソース ロック オプションを削除し、そもそもそれらが必要になった原因となったバグを修正します。

于 2014-03-14T20:02:31.297 に答える