创建的异常:java.lang.NoClassDefFoundError:org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage(初始化失败)

创建的异常: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

我在linux服务器上遇到以下错误。在我本地的机器上,它工作得很好

创建的异常:java.lang.NoClassDefFoundError: org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage 在以下位置初始化失败: java.lang.J9VMInternals.initializeJ9VMInternals.java:140 at com.common.cmd.htmltodoc.newImagehtmltodoc.java:3932


这是我使用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;
    }