创建的异常:java.lang.NoClassDefFoundError:org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage(初始化失败)
我在linux服务器上遇到以下错误。在我本地的机器上,它工作得很好 创建的异常:java.lang.NoClassDefFoundError: org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage 在以下位置初始化失败: java.lang.J9VMInternals.initializeJ9VMInternals.java:140 at com.common.cmd.htmltodoc.newImagehtmltodoc.java:3932创建的异常:java.lang.NoClassDefFoundError:org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage(初始化失败),java,noclassdeffounderror,docx4j,Java,Noclassdeffounderror,Docx4j,我在linux服务器上遇到以下错误。在我本地的机器上,它工作得很好 创建的异常:java.lang.NoClassDefFoundError: org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage 在以下位置初始化失败: java.lang.J9VMInternals.initializeJ9VMInternals.java:140 at com.common.cmd.htmltodoc.newImageh
这是我使用docx4j将图像绘制到word的代码。在Linux服务器上运行时,该消息是程序的全部输出吗?对我来说,该消息表明已经发生了错误,即在抛出异常之前,JVM已经尝试加载BinaryPartAbstractImage类,但失败。您的应用程序在Linux服务器上有日志吗?如果是这样,请查看这些日志,看看是否可以找到以前的错误。您是否可以提供所使用的命令行,以及您的本地计算机操作系统是什么?若您是本地计算机,那个么它就是Windows,并且您使用的是java-classpath jar1.jar;jar2.jar,那么您需要更改分号;to:Linux服务器上的冒号我的本地计算机是Windows OS…我将我的docx4j jar本地和Linux服务器配置为清单文件中的其他jar,空间为jar1.jar jar2.jarLuke,我在Linux服务器上没有任何关于BinaryPartAbstractImage类的特殊异常,但在此之前又发生了一个异常,因为jaxb jar丢失了。。。请参阅下面的日志。INFO org.docx4j.jaxb.Context-加载的com.ibm.xml.xlxp2.jaxb.JAXBContextImpl。。加载其他。。错误org.docx4j.jaxb.Context-无法初始化上下文javax.xml.bind.JAXBException:org.plutext.jaxb.xmldsig不包含ObjectFactory.class或jaxb.index问题位似乎在这里:com.common.cmd.htmltodoc.newImage。不知道这是怎么回事,但是docx4j中的映像类需要注意两件事:1在类路径上需要ApacheXMLGraphics包,2我记得在linux和JavaAWT类中需要做一些调整。我看看能不能记得更多。。。
public static P newImage( WordprocessingMLPackage wordMLPackage, byte[] bytes,
String filenameHint, String altText, int id1, int id2) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline(filenameHint, altText, id1, id2, false);
ObjectFactory factory = new ObjectFactory();
P p = factory.createP();
R run = factory.createR();
p.getParagraphContent().add(run);
Drawing drawing = factory.createDrawing();
run.getRunContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}