2012-05-01 26 views
1

ジャスパーの依存関係を追加しようとしていますが、このエラーが発生しています
ジャスパーとlog4jの異なるバージョンで既に試してみましたが、動作しません:
私は最新バージョンスプリングとOracle weblogic 11gの
これはジャスパー依存関係を追加した場合にのみ発生します。
誰でも同じ問題がありましたか?Spring - Maven |ジャスパーの依存関係

<1/Mai/2012 16H10m BST> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.ExceptionInInitializerError. 
java.lang.ExceptionInInitializerError 
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272) 
    Truncated. see log file for complete stacktrace 
Caused By: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory 
    at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source) 
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:849) 
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:773) 
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483) 
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:127) 
    Truncated. see log file for complete stacktrace 
> 


<1/Mai/2012 16H10m BST> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager. 
java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager 
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272) 
    Truncated. see log file for complete stacktrace 
> 

これが私のpom.xmlです:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company</groupId> 
    <artifactId>myproject</artifactId> 
    <name>myProject</name> 
    <packaging>war</packaging> 
    <version>1.0.0-BUILD-SNAPSHOT</version> 
    <properties> 
    <java-version>1.6</java-version> 
    <org.springframework-version>3.1.0.RELEASE</org.springframework-version> 
    <org.aspectj-version>1.6.9</org.aspectj-version> 
    <org.slf4j-version>1.6.1</org.slf4j-version> 
    <jackson.version>1.9.3</jackson.version> 
    <validation-api-version>1.0.0.GA</validation-api-version> 
    <hibernate-validator-version>4.2.0.Final</hibernate-validator-version> 
    <jasper.version>4.5.0</jasper.version> 
    <commons.digester.version>2.1</commons.digester.version> 
    <commons.collections.version>3.2.1</commons.collections.version> 
    </properties> 
    <dependencies> 

    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
     <!-- Exclude Commons Logging in favor of SLF4j --> 
     <exclusion> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- mysql --> 
    <dependency> 
     <groupId>com.mysql</groupId> 
     <artifactId>mysqljdbc6</artifactId> 
     <version>3.1.10</version> 
    </dependency> 

    <!-- Spring Data JPA --> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.0.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>${org.springframework-version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <!-- validation --> 
    <dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>${validation-api-version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>${hibernate-validator-version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <!-- Data Mapper package is a high-performance data binding package built on Jackson JSON processor --> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>${jackson.version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <!-- Jackson is a high-performance JSON processor (parser, generator) --> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>${jackson.version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 
    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.jasperreports</groupId> 
     <artifactId>jasperreports</artifactId> 
     <version>4.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
     <exclusions> 
     <exclusion> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>javax.jms</groupId> 
      <artifactId>jms</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.sun.jdmk</groupId> 
      <artifactId>jmxtools</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.sun.jmx</groupId> 
      <artifactId>jmxri</artifactId> 
     </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 

    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 
    <!-- Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- Tiles --> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-extras</artifactId> 
     <version>2.2.2</version> 
     <exclusions> 
     <exclusion> 
      <artifactId>tiles-freemarker</artifactId> 
      <groupId>org.apache.tiles</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>tiles-velocity</artifactId> 
      <groupId>org.apache.tiles</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>tiles-ognl</artifactId> 
      <groupId>org.apache.tiles</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>tiles-mvel</artifactId> 
      <groupId>org.apache.tiles</groupId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <version>2.9</version> 
     <configuration> 
      <additionalProjectnatures> 
      <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
      </additionalProjectnatures> 
      <additionalBuildcommands> 
      <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
      </additionalBuildcommands> 
      <downloadSources>true</downloadSources> 
      <downloadJavadocs>true</downloadJavadocs> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <compilerArgument>-Xlint:all</compilerArgument> 
      <showWarnings>true</showWarnings> 
      <showDeprecation>true</showDeprecation> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <configuration> 
      <mainClass>org.test.int1.Main</mainClass> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

私はのpom.xmlに依存関係の階層をチェックし、私は奇妙な何かを見つけ、私は に下記これを出してあげるの問題かもしれません?しかし、ジャスパーの依存関係を追加するたびに発生するので、それは変です。私は他のものを開発し、紛争を起こさなかった。

http://imageshack.us/photo/my-images/151/capturar1b.jpg/
http://imageshack.us/photo/my-images/696/capturar2f.jpg/

答えて

0


SECOND答えは最初のエラーは、互換性のないXMLパーサ実装が慣れていることを示します。 Weblogicは独自の実装を提供する可能性が最も高く、それはあなたの依存関係の1つによって持ち込まれるXMLパーサーの実装と競合しています。何がXMLパーサを持ってくるのか把握し、そのパーサを除外する必要があります。多くのIDE(m2eclipseを使用しているEclipseのような)は、POMの視覚的なグラフを提供して、依存関係を把握するのに役立ちます。あるいは、私はあなたが 'mvn dependency:tree'を使うことができると思います。

は、がクラスパス上にないことを示すと思われます。あなたが正しく戦争(または爆発した戦争)を構築していて、mavenによって生成されたすべての依存関係jarが/ WEB-INF/libフォルダにあると仮定すると、log4jの実装が2つあり、矛盾しています。 (おそらく、weblogicにはlog4j実装が含まれており、デフォルトでWebアプリケーションで使用できるようになっています)。これをテストするには、log4j依存スコープを "提供済み"に設定してみてください。引き続きlog4jに問題がある場合は、slf4j独自のログ実装(logback)を使用することを検討してください。碧玉からコモンズ・ロギングを除く、すなわち

<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <scope>runtime</scope> 
    <version>1.0.0</version> 
    </dependency> 

FIRST ANSWER(おそらく便利が、主な問題に対処しません。)


してみてください。

また、私はあなたがジャクソンを直接使用していることに気付きました。ジャスパーはジャクソンにも依存しています。私の場合はジャスパーからジャクソンを除外する必要があるので、もっと新しいバージョンを参照することもできます。

<dependency> 
    <groupId>net.sf.jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>4.5.0</version> 
    <exclusions> 
     <exclusion> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     </exclusion> 
     <exclusion> 
     <artifactId>jackson-mapper-lgpl</artifactId> 
     <groupId>org.codehaus.jackson</groupId> 
     </exclusion> 
     <exclusion> 
     <artifactId>jackson-core-lgpl</artifactId> 
     <groupId>org.codehaus.jackson</groupId> 
     </exclusion>   
    </exclusions> 
    </dependency> 

他の多くの依存関係からcommons-loggingを正しく削除しています。最終的な推移的な依存関係をチェックすると、commons-logging.jarは表示されません。

(また、私はあなたのXMLの改善フォーマットを少し試してみました。以前に読み取ることが非常に困難でした。それでもその読みやすいが、良いとは限りません。)

+0

私はあなたの暗示を試みたが、動作しません。私はcommons-loggingからlog4jを除外してどういう意味ですか?申し訳ありませんが、私はただMavenと春から始めています – John

+0

私の間違い。私はもともと、あなたが何らかの形でlog4jをコモンズロギングから除外しようとしていると思っていましたが、今はあなたがそうではないことがわかります。私は私の答えを編集して、2つのエラーメッセージに関するアイディアを具体的に提供しました。 – kaliatech