2011-05-26 145 views
1

我的應用程序生成一些報告給它的客戶端。但有一個錯誤的時候,這裏生成報告的除外: -JBOSS |賈斯珀報告錯誤

java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.<init>(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V 
    net.sf.jasperreports.engine.design.JRJdtCompiler$1.findType(JRJdtCompiler.java:235) 
    net.sf.jasperreports.engine.design.JRJdtCompiler$1.findType(JRJdtCompiler.java:204) 
    org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:119) 
    org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:126) 
    org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:1355) 
    org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2472) 
    org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2194) 
    org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:39) 
    org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:141) 
    org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType(TypeReference.java:104) 
    org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype(ClassScope.java:1107) 
    org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass(ClassScope.java:767) 
    org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:947) 
    org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:266) 
    org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:195) 
    org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:301) 
    org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:315) 
    net.sf.jasperreports.engine.design.JRJdtCompiler.compileClass(JRJdtCompiler.java:392) 
    net.sf.jasperreports.engine.design.JRJdtCompiler.compileReport(JRJdtCompiler.java:109) 
    net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:106) 
    net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:128) 
    net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:110) 

最近我搬到這個應用程序JBOSS 4.0.5.GA。此應用運行良好,沒有錯誤生成報告Tomcat 5

謝謝。

+0

您可能還會發現報告集成框架非常有用。 http://www.whitemagicsoftware.com/software/java/rif/ – 2011-05-26 23:12:06

回答

0

我相信是有衝突的JAR文件:

jdt-compiler-3.1.1.jar 

我創建了一個腳本來設置CLASSPATH Tomcat的運行前:

#!/bin/bash 

IREPORT_HOME=$HOME/bin/ireport 
CLASSPATH=$IREPORT_HOME/platform9/modules/org-netbeans-core.jar: 

for j in \ 
    $IREPORT_HOME/ireport/modules/ext/*.jar \ 
    $IREPORT_HOME/ide10/modules/ext/*.jar; do 
    BASENAME=$(basename $j) 

    # Append file names to the CLASSPATH, except those with Tomcat conflicts. 
    if [ "$BASENAME" != "jdt-compiler-3.1.1.jar" ]; then 
    CLASSPATH=$j:$CLASSPATH 
    fi 
done 

export CLASSPATH=$CLASSPATH. 

保存爲setenv.sh並將其放置在$CATALINA_HOME/bin。您必須相應地更改IREPORT_HOME變量。