3

jetty maven を使用して web アプリケーションを実行するように jetty を構成しました。Jetty は開発用の軽量な代替手段であると想定されているため、web.xml にあるすべてのものは必要ありません。具体的には、web.xml のフィルターを削除したいと考えています。

overrideDescriptor 構成プロパティを使用しようとしましたが、これは web.xml をオーバーライドすることしかできず、置き換えることはできません。したがって、フィルターはまだそこにあります。

元の web.xml ファイルを変更せずにフィルターを削除する方法はありますか?

4

3 に答える 3

1

override-web.xml で filter-class を PassThroughFilter に置き換えることができます。

public class PassThroughFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {}
}

<filter>
    <filter-name>OriginalFilter</filter-name>
    <filter-class>mypackage.PassThroughFilter</filter-class>        
</filter>
于 2016-03-28T20:42:33.510 に答える
1

答えがないので、完璧ではない私の解決策を投稿します。

<!-- Jetty configuration -->
<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.5.v20120716</version>
    <configuration>
        <webApp>
            <descriptor>src/main/webapp/mock-web.xml</descriptor>
            [...]
        </webApp>
        [...]
    </configuration>
</plugin>

このアプローチの欠点は、2 つのほぼ同一の web.xml ファイルを維持する必要があることです。元の web.xml ファイルをオーバーライドしてリスナーを削除できるソリューションが見つかりませんでした。

于 2012-10-19T09:42:31.150 に答える
0

強力な解決策は、次の場所で2つのXMLエンティティを使用することweb.xmlです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity1 SYSTEM 'webEntity1.xml'>
<!ENTITY webEntity2 SYSTEM 'webEntity2.xml'>
]>
<web-app>
    &webEntity1;
    &webEntity2;
</web-app>

そして、custom-web.xmlファイル内のそれらの1つだけ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity1 SYSTEM 'webEntity1.xml'>
]>
<web-app>
    &webEntity1;
</web-app>

そうwebEntity1.xmlすれば、共有サーブレット、フィルター、マッピングを宣言しwebEntity2.xml、Jettyで使用したくないフィルターのみを宣言します。

次に、次のようにjettyプラグインを構成します。

    <configuration>
        ...
        <webApp>
            ...
            <descriptor>${project.basedir}/src/main/webapp/WEB-INF/custom-web.xml</descriptor>
        </webApp>
        ...
    </configuration>

jettyプラグインのwikiページにセクションを追加しました。

于 2013-03-12T18:10:24.850 に答える