2

jar 依存関係 (別のモジュール) 内にいくつかの Spring コンポーネントがパックされたモジュラー Web アプリケーションを構築しています。この jar には、次のような JSP リソースも含まれています。

- モジュール
     + src/main/resources/META-INF/resources/module/*.jsp

ここで、アプリケーションで次の構造を使用して特定の JSP をオーバーライドしたいと考えています。

- アプリ
     + src/main/resources/META-INF/resources/module/menu.jsp

それを使用してアプリケーションを実行するtomcat7:runと、上書きされmenu.jspたものが表示されることがありますが、その後の実行は古いものになります。

で実行することtomcat7:run-warは、より有望でした。ほとんどの実行で新しい menu.jsp が表示されます。ただし、アプリケーションを別の Tomcat 7 インスタンスにデプロイすると、古いメニューが再び表示されます。

menu.jsp はpageContext.include("/module/menu.jsp");、カスタム タグによって呼び出される include using です。

このリソースのオーバーライドの信頼性を高めるにはどうすればよいですか? ランダムに動作しているように見えるので、私はまったく無知です。誰かがここで光を当てることができることを願っています。


これが関連しているかどうかはわかりませんが、コンポーネント スキャンを使用できるようにするには、次のプラグイン構成で jar クラスを展開する必要があります。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>process-resources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <overWriteIfNewer>false</overWriteIfNewer>
                <artifactItems>
                    <artifactItem>
                        <groupId>my.company</groupId>
                        <artifactId>my-dependency</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <type>jar</type>
                        <outputDirectory>${project.build.directory}/classes</outputDirectory>
                        <includes>**/*.class</includes>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>
4

1 に答える 1

2

たくさんの髪を引っ張った後、私は非常に単純な間違いを犯したことに気付きました. 今引っ越しました

- アプリ
     + src/main/resources/META-INF/resources/module/menu.jsp

場所へ

- アプリ
     + src/main/webapp/module/menu.jsp

すべてが期待どおりに機能します。

于 2014-06-14T14:28:24.687 に答える