4

我正在使用 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.


我还尝试在命令行上使用“构建战争”,这产生了相同的结果。

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

问候,托尼

4

3 回答 3

4

com.sun.image.jpeg.codec已从 JDK 7 中删除了已弃用的专有软件包(请参阅此官方 JDK7 兼容性说明)。因此你的编译问题。

由于在您的情况下可能无法选择修补 Cocoon 源代码,因此最短的路径可能是使用 JDK 6(或更早版本,Cocoon 2.1 系列需要“Java 1.3 或更高版本”)进行编译。

(但如果是这样,因为您似乎需要特定的 Cocoon 和 JDK 版本,您可能需要查看关于如何用调用标准 Java Image替换 com.sun.image.codec.jpeg.JPEGImageEncoder 的 SO Q&A输入/输出接口)


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

于 2012-10-12T08:48:05.167 回答
1

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

于 2012-12-21T14:58:08.227 回答
0

我知道这是旧的,但如果有人感兴趣,我最近能够构建 cocoon 2.1 而没有错误

我必须从他们当前的开发分支(2_1_X)获取最新的源代码,因为我发现他们已经修复了这个错误,但它仍然不在他们的最新版本(2.1.12)中

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

于 2014-10-31T22:36:41.197 回答