tuckey urlrewrite不与maven合作

tuckey urlrewrite不与maven合作,maven,tuckey-urlrewrite-filter,Maven,Tuckey Urlrewrite Filter,我的项目是在ant上进行的,运行良好。考虑将它迁移到maven,甚至将tomcat作为依赖项,这样我就不必单独安装tomcat了 当我执行mvn tomcat时:run;它能够构建应用程序,并在tomcat启动时出现以下错误 10 Jan, 2013 8:49:02 PM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter UrlRewriteFilter java.lang

我的项目是在ant上进行的,运行良好。考虑将它迁移到maven,甚至将tomcat作为依赖项,这样我就不必单独安装tomcat了

当我执行mvn tomcat时:run;它能够构建应用程序,并在tomcat启动时出现以下错误

10 Jan, 2013 8:49:02 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter UrlRewriteFilter
java.lang.ClassCastException: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter cannot be cast to javax.servlet.Filter
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
        at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
        at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
        at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
10 Jan, 2013 8:49:02 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
10 Jan, 2013 8:49:02 PM org.apache.catalina.core.StandardContext start
2013年1月10日8:49:02 PM org.apache.catalina.core.StandardContext filterStart
严重:启动筛选器UrlRewriteFilter时出现异常
java.lang.ClassCastException:org.tuckey.web.filters.urlrewrite.UrlRewriteFilter不能强制转换为javax.servlet.Filter
位于org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
位于org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
位于org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:115)
位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
位于org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
位于org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
位于org.apache.catalina.startup.Embedded.start(Embedded.java:825)
位于org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
位于org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
位于org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
位于org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
位于org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)上
位于org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
位于org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
位于org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.codehaus.plexus.classworlds.launcher.launcher.launchEnhanced(launcher.java:290)
位于org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:230)
位于org.codehaus.plexus.classworlds.launcher.launcher.mainWithExitCode(launcher.java:409)
位于org.codehaus.plexus.classworlds.launcher.launcher.main(launcher.java:352)
2013年1月10日晚上8:49:02 org.apache.catalina.core.StandardContext开始
严重:错误筛选器开始
2013年1月10日晚上8:49:02 org.apache.catalina.core.StandardContext开始
My pom.xml具有以下依赖项:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>servlet-api</artifactId>
    <version>6.0.35</version>
</dependency>
<dependency>
    <groupId>org.tuckey</groupId>
    <artifactId>urlrewritefilter</artifactId>
    <version>4.0.4</version>
</dependency>

org.apache.tomcat
servlet api
6.0.35
org.tuckey
URL重写过滤器
4.0.4

我甚至尝试过改变tuckey的版本。

你肯定会遇到依赖冲突。我的建议是:

  • 依赖于标准的
    ServletAPI
    工件,而不是Tomcat的
  • 使用提供的
    ,这样
    servlet api
    jar就不会捆绑到您的webapp中。Tomcat不希望您包含它,如果您包含它,将发出警告
  • 那么您的POM应该有以下代码段:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.tuckey</groupId>
        <artifactId>urlrewritefilter</artifactId>
        <version>4.0.4</version>
    </dependency>
    
    
    javax.servlet
    javax.servlet-api
    3.0.1
    假如
    org.tuckey
    URL重写过滤器
    4.0.4
    
    打开.m2并找到URLRewiteFilter-3.1.0.pom。只需复制Javaservlet依赖性并将其添加到pom中即可。举例来说,如果您使用的是3.0.1版,则必须添加以下内容

    <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.3</version>
                <scope>provided</scope>
            </dependency>
    
    
    javax.servlet
    servlet api
    2.3
    假如
    
    希望这有帮助