私は現在、ビルドを手動プロセス(MyEclipse/export as war)から自動Mavenビルドに変更しようとしています。Tomcat 7.0.29 servlet-apiクラスローダーの問題
MyEclipseによって構築された戦争アプリケーションは、Tomcat 7.0.29のインストール(Windows 7)で展開して正常に動作します。 MyEclipseビルド・パスでは、すべてのjarファイルが$CATALINA_HOME/lib
からなるユーザー・ライブラリー(tomcat)を構成しました。
javax.servlet.http。*クラス(HttpSessionEventなど)を使用するサーブレットリスナーとフィルタがあります。それらはパッケージ化されていますWEB-INF\classes\com\mycompany\filters
Mavenで構築された戦争を展開すると、HttpSessionEvent
クラスにNoClassDefFoundError
が得られます。 -verbose:class JVMオプションでトレースを行い、ロードされた最後のクラスが c:\apache\webapps\myapp\WEB-INF\classes\com\mycompany\filters
ディレクトリのフィルタであることがわかりました。私はその後、HttpSessionEventをロード/検索しようとしますが、これを行うことはできません。
servlet-api.jar
はもちろん私の$CATALINA_HOME\lib
ディレクトリにあります。私のpom.xmlで
私はこの依存関係
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.29</version>
<scope>provided</scope>
</dependency>
を持って、私はどこでも私のパス/クラスパスに他のサーブレット-api.jarのファイルを持っていませんが(LIB/extに、私のJDKおよびJREの承認ディレクトリをdoublechecked同様)
私のMavenの依存関係:ツリーは次のようになります。
[INFO] +- log4j:log4j:jar:1.2.15:compile
[INFO] | \- javax.mail:mail:jar:1.4:compile
[INFO] +- jstl:jstl:jar:1.2:compile
[INFO] +- org.jdom:jdom:jar:1.1:provided
[INFO] +- com.sun.xml.rpc:jaxrpc-impl:jar:1.1.3_01:provided
[INFO] | +- javax.xml:jaxrpc-api:jar:1.1:provided
[INFO] | +- com.sun.xml.messaging.saaj:saaj-impl:jar:1.3:provided
[INFO] | | \- javax.xml.soap:saaj-api:jar:1.3:provided
[INFO] | +- com.sun.xml.rpc:jaxrpc-spi:jar:1.1.3_01:provided
[INFO] | \- com.sun.xml.fastinfoset:FastInfoset:jar:1.0.2:provided
[INFO] +- org.apache.lucene:lucene-core:jar:3.6.0:compile
[INFO] +- org.springframework:spring-context:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:3.1.0.RELEASE:compile
[INFO] | | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] | +- org.springframework:spring-expression:jar:3.1.0.RELEASE:compile
[INFO] | \- org.springframework:spring-asm:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:3.1.0.RELEASE:compile
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-orm:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework:spring-jdbc:jar:3.1.0.RELEASE:compile
[INFO] | \- org.springframework:spring-tx:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-aop:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-test:jar:3.1.0.RELEASE:test
[INFO] +- org.aspectj:aspectjrt:jar:1.7.1:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.7.1:compile
[INFO] +- javax.faces:javax.faces-api:jar:2.1:compile
[INFO] +- com.sun.faces:jsf-impl:jar:2.1.15:compile
[INFO] +- org.primefaces:primefaces:jar:3.4.2:compile
[INFO] +- org.richfaces.core:richfaces-core-api:jar:4.2.3.Final:compile
[INFO] | \- com.google.guava:guava:jar:11.0.2:compile
[INFO] | \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] +- org.richfaces.ui:richfaces-components-ui:jar:4.2.3.Final:compile
[INFO] | \- org.richfaces.ui:richfaces-components-api:jar:4.2.3.Final:compile
[INFO] +- org.apache.tomcat:tomcat-servlet-api:jar:7.0.29:provided
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.2:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.2:compile
[INFO] +- org.hibernate:hibernate-core:jar:3.6.2.Final:compile
[INFO] | +- antlr:antlr:jar:2.7.6:compile
[INFO] | +- commons-collections:commons-collections:jar:3.1:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | +- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
[INFO] | \- javax.transaction:jta:jar:1.1:compile
[INFO] +- org.hibernate:hibernate-entitymanager:jar:3.6.2.Final:compile
[INFO] | +- cglib:cglib:jar:2.2:compile
[INFO] | | \- asm:asm:jar:3.1:compile
[INFO] | \- javassist:javassist:jar:3.12.0.GA:compile
[INFO] +- org.hibernate:hibernate-validator:jar:4.1.0.Final:compile
[INFO] | \- javax.validation:validation-api:jar:1.0.0.GA:compile
[INFO] +- org.apache.commons:commons-email:jar:1.2:compile
[INFO] | \- javax.activation:activation:jar:1.1:compile
[INFO] +- junit:junit:jar:4.11:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- com.h2database:h2:jar:1.3.170:test
私は、インターネット上でしばらくの間、この上で検索してきた、と私はこれを読んだから、いくつかを持っている必要がありますtomcatクラスローダーと関係がある。私の戦争の梱包にはおそらく間違いがあります。しかし、私はまだ解決策を見つけていません。
すべてのポインタは非常に高く評価されます!
私はおそらく、プロジェクトをクローンし、サーブレットまたはフィルタを除いてすべてを削除して、それが動作すれば試してみます。そして/または別のエンジン、例えばJettyにそれを配備しようとします。 – biziclop