我正在使用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的问题还是还有其他我需要关注的问题?这是我第一次尝试构建和部署茧,我可能会遗漏一些明显的东西。
问候,托尼
答案 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运行它。必须做一些调整才能使其正常工作