我的转换实现并生成 PNG 在我的 jboss 7.1.1 中完美运行,但是当我在 Linux 机器上尝试 java.lang.NoClassDefFoundError 时,我收到错误:无法初始化类 org.apache.batik.css.engine .SVGCSSEngine。他们知道为什么吗? 感谢您的合作。
我的Pom
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.7</version>
</dependency>
我的Javascript,从primefaces我的Bean的remoteCommand调用
function objToString() {
var a = document.getElementById("dientesvg");
var svgDoc = a.contentDocument;
var cadena = new XMLSerializer().serializeToString(svgDoc);
document.getElementById("form1:cadenaOdontograma").value = cadena;
obtenerDibujo();}
我的Java
public void obtenerDibujo() throws TranscoderException, IOException,
AppBaseException {
imagenOdontograma = new ByteArrayInputStream(
cadenaOdontograma.getBytes(Charset.forName("UTF-8")));
TranscoderInput inputSvgImage = new TranscoderInput(imagenOdontograma);
Parametro param = parametroFacade
.consultarParametroPorClave("URL_ARCHIVOS_TEMP");
carpetaArchivos = param.getValor();
OutputStream pngOstream = new FileOutputStream(carpetaArchivos + "_"
+ historiaGeneral.getConsecutivo() + ".png");
TranscoderOutput outputPngImage = new TranscoderOutput(pngOstream);
PNGTranscoder myConverter = new PNGTranscoder();
myConverter.transcode(inputSvgImage, outputPngImage);
pngOstream.flush();
pngOstream.close();
imagen = ImageIO.read(new File(carpetaArchivos + "_"
+ historiaGeneral.getConsecutivo() + ".png"));
}
最佳答案
Daniel,当编译时满足依赖项但在运行时类加载器无法找到该类时,会引发 NoClassDefFoundError,我鼓励您检查部署文件/目录或环境中是否存在或可用包含 org.apache.batik.css.engine.SVGCSSEngine 类的相应依赖项。
关于java.lang.NoClassDefFoundError : Could not initialize class org. apache.batik.css.engine.SVGCSSEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259575/