升级到Jasper 5.5.0后出错

时间:2014-01-02 06:31:47

标签: jasper-reports

将Jasper版本升级到5.5.0后,我在从服务器/ Jenkins编译报告时遇到错误。在我的本地机器上工作正常。任何想法可能是什么原因。以下是日志:

[WARNING] POM for 'commons-logging:commons-logging:pom:99.0-does-not-exist:runtime' is invalid.

Its dependencies (if any) will NOT be available to the current build.
[INFO] [jasperreports:compile-reports {execution: default}]
[INFO] Compiling 29 report design files.
[INFO] Compiling report file: interfaceConfiguration\processConf.jrxml
[FATAL ERROR] org.codehaus.mojo.jasperreports.JasperReportsMojo#execute() caused a linkage error (java.lang.NoClassDefFoundError) and may be out-of-date. Check the realms:
[FATAL ERROR] Plugin realm = app0.child-container[org.codehaus.mojo:jasperreports-maven-plugin:1.0-beta-2]
urls[0] = file:/d:/maven/maven-2.0.9/org/codehaus/mojo/jasperreports-maven-plugin/1.0-beta-2/jasperreports-maven-plugin-1.0-beta-2.jar
urls[1] = file:/d:/maven/maven-2.0.9/net/sf/jasperreports/jasperreports/5.5.0/jasperreports-5.5.0.jar
urls[2] = file:/d:/maven/maven-2.0.9/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar
urls[3] = file:/d:/maven/maven-2.0.9/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
urls[4] = file:/d:/maven/maven-2.0.9/commons-collections/commons-collections/2.1/commons-collections-2.1.jar
urls[5] = file:/d:/maven/maven-2.0.9/commons-digester/commons-digester/2.1/commons-digester-2.1.jar
urls[6] = file:/d:/maven/maven-2.0.9/com/lowagie/itext/2.1.7.js2/itext-2.1.7.js2.jar
urls[7] = file:/d:/maven/maven-2.0.9/jfree/jcommon/1.0.15/jcommon-1.0.15.jar
urls[8] = file:/d:/maven/maven-2.0.9/jfree/jfreechart/1.0.12/jfreechart-1.0.12.jar
urls[9] = file:/d:/maven/maven-2.0.9/xml-apis/xml-apis/1.3.02/xml-apis-1.3.02.jar
urls[10] = file:/d:/maven/maven-2.0.9/eclipse/jdtcore/3.1.0/jdtcore-3.1.0.jar
urls[11] = file:/d:/maven/maven-2.0.9/org/codehaus/castor/castor/1.2/castor-1.2.jar
urls[12] = file:/d:/maven/maven-2.0.9/com/fasterxml/jackson/core/jackson-core/2.1.4/jackson-core-2.1.4.jar
urls[13] = file:/d:/maven/maven-2.0.9/com/fasterxml/jackson/core/jackson-databind/2.1.4/jackson-databind-2.1.4.jar
urls[14] = file:/d:/maven/maven-2.0.9/com/fasterxml/jackson/core/jackson-annotations/2.1.4/jackson-annotations-2.1.4.jar
urls[15] = file:/d:/maven/maven-2.0.9/jasperreports/jasperreports/1.2.0/jasperreports-1.2.0.jar
urls[16] = file:/d:/maven/maven-2.0.9/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
urls[17] = file:/d:/maven/maven-2.0.9/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.jar
[FATAL ERROR] Container realm = plexus.core
urls[0] = file:/C:/APPS/DCSCM/tool/Maven2.2.1/lib/maven-2.2.1-uber.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] javax/servlet/ServletOutputStream
javax.servlet.ServletOutputStream
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
    at net.sf.jasperreports.web.util.WebResourceHandlersExtensionRegistryFactory.<clinit>(WebResourceHandlersExtensionRegistryFactory.java:47)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
    at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
    at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:53)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:237)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:214)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:162)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:133)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:105)
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.getExtensions(DefaultJasperReportsContext.java:246)
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:119)
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.getCachedBundles(ComponentsEnvironment.java:109)
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.getBundles(ComponentsEnvironment.java:97)
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.getComponentBundles(ComponentsEnvironment.java:179)
    at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:84)
    at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:131)
    at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:94)
    at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1439)
    at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1415)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:254)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:210)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176)
    at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:137)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:438)
    at org.codehaus.mojo.jasperreports.JasperReportsMojo.compile(JasperReportsMojo.java:249)
    at org.codehaus.mojo.jasperreports.JasperReportsMojo.execute(JasperReportsMojo.java:187)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
    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.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletOutputStream
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
    at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 48 more

1 个答案:

答案 0 :(得分:2)

尝试将servlet API添加为插件依赖项。例如:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jasperreports-maven-plugin</artifactId>
    <version>1.0-beta-2</version>
    <executions>
      <execution>
        <goals>
          <goal>compile-reports</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <!--note this must be repeated here to pick up correct xml validation -->
      <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>5.5.0</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
      </dependency>
    </dependencies>
  </plugin>