使用JDK 7构建Cocoon 2.1.0失败:compile-build.xml:68

时间:2012-10-11 18:21:09

标签: windows apache-cocoon

我正在使用java JDK 7尝试在Windows 2008 R2上构建cocoon 2.1.10,以便在Tomcat 7中进行最终部署。我已经下载了cocoon源文件,解压缩它们,设置我的JAVA_HOME变量然后尝试运行提供build.bat文件。我得到了11个不同的编译错误。



    D:\cocoon-2.1.10-src\cocoon-2.1.10>build.bat
    Buildfile: build.xml

    prepare:
    ====================================================================
                     Apache Cocoon 2.1.10 [1999-2006]
    ====================================================================
     Building with Apache Ant version 1.6.5 compiled on June 2 2005
    --------------------------------------------------------------------
     Using build file D:\cocoon-2.1.10-src\cocoon-2.1.10\build.xml
    --------------------------------------------------------------------
     Compiler options:
       - debug ......... [on]
       - optimize ...... [on]
       - deprecation ... [off]
    ====================================================================

    compile-core:
    Compiling 594 source files to D:\cocoon-2.1.10-src\cocoon-2.1.10\build\cocoon\classes
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:39: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.ImageFormatException;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:40: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGCodec;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:41: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGEncodeParam;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:42: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:326: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                        ^
      symbol:   class JPEGImageEncoder
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:326: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                                                   ^
      symbol:   variable JPEGCodec
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:327: error: cannot find
     symbol
                        JPEGEncodeParam p = encoder.getDefaultJPEGEncodeParam(currentImage);
                        ^
      symbol:   class JPEGEncodeParam
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:333: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bstream);
                        ^
      symbol:   class JPEGImageEncoder
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:333: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bstream);
                                                   ^
      symbol:   variable JPEGCodec
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:334: error: cannot find
     symbol
                        JPEGEncodeParam p = encoder.getDefaultJPEGEncodeParam(currentImage);
                        ^
      symbol:   class JPEGEncodeParam
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:342: error: cannot find
     symbol
                } catch (ImageFormatException e) {
                         ^
      symbol:   class ImageFormatException
      location: class ImageReader
    11 errors

    BUILD FAILED
    D:\cocoon-2.1.10-src\cocoon-2.1.10\tools\targets\compile-build.xml:68: The following error occurred while exec
    uting this line:
    D:\cocoon-2.1.10-src\cocoon-2.1.10\tools\targets\compile-build.xml:51: Compile failed; see the compiler error
    output for details.


我也尝试在命令行中使用“build war”,这产生了相同的结果。

这是我正在使用的JDK的问题还是还有其他我需要关注的问题?这是我第一次尝试构建和部署茧,我可能会遗漏一些明显的东西。

问候,托尼

3 个答案:

答案 0 :(得分:4)

已弃用的专有com.sun.image.jpeg.codec包已从JDK 7中删除(请参阅此官方official JDK7 compatibility note)。因此你的编译问题。

由于在您的情况下修补Cocoon源可能不是一个选项,因此最短的路径可能是使用JDK 6编译(或更早,the Cocoon 2.1 series require "Java 1.3 or later")。

(但如果是,因为您似乎需要特定的Cocoon和JDK版本,您可能希望通过调用标准Java Image I / O API来查看How to replace com.sun.image.codec.jpeg.JPEGImageEncoder上的SO Q& A )


另一种选择可能是查看com.sun.image.jpeg.codec包的单独分发,以包含在构建(以及可能的运行时)类路径中。我不确定此选项的可用性(以及易用性)。无论如何,除非所有其他路径都证明是死路,否则我不建议深入研究它......

答案 1 :(得分:1)

在我的情况下,此错误的解决方案是:搜索文件夹已签名,它应该在路径中:cocoon-2.1.11-src \ cocoon-2.1.11 \ lib \ endorsed 在您当前的JAVA_HOME / jre / lib中复制此文件夹 并尝试再次建立。 我希望比这解决你的问题

答案 2 :(得分:0)

我知道这已经老了但是如果有人感兴趣我最近能够建立cocoon 2.1而没有错误

我必须从他们当前的开发分支获得最新的来源(2_1_X),因为我发现他们已经修复了这个错误,但它仍然没有在他们的最新版本(2.1.12)中< / p>

我实际上能够使用JDK 8构建它,并且还可以使用Tomcat 8运行它。必须做一些调整才能使其正常工作