JBOSS |贾斯珀报告错误

时间:2011-05-26 09:00:48

标签: jboss jasper-reports

我的应用程序会向其客户生成一些报告。但是生成报告时出现错误,例外: -

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

中生成报告时没有错误

感谢。

1 个答案:

答案 0 :(得分:0)

我认为存在冲突的JAR文件:

jdt-compiler-3.1.1.jar

我在Tomcat运行之前创建了一个脚本来设置CLASSPATH:

#!/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变量。