【问题标题】:Xwiki convert Demo sampleXwiki 转换 Demo 示例
【发布时间】:2015-07-14 16:24:55
【问题描述】:

试图在 java 独立类中从 xwiki 工作这个演示,但不工作。我正在使用 xwiki 7.0 版本。有人试过这个吗?

http://rendering.xwiki.org/xwiki/bin/view/Main/Demo?inputsyntax=xhtml%2F1.0&outputsyntax=xwiki%2F2.1&input=%3Ch3+id%3D%22Hhelo%22%3E%3Cspan%3Ehelo%3C%2Fspan%3E%3C%2Fh3%3E#HDemo

public class HtmlToXwikiTest
{
    private Converter converter;
private WikiPrinter printer;

@Test
public void testHtmlToMarkdown() throws ComponentLookupException, ConversionException, ParseException, ComponentRepositoryException
{
    WikiPrinter printer = new DefaultWikiPrinter();
    converter.convert(new StringReader("<h3 id=\"HHeader3\"><span>Header 3</span></h3>"), Syntax.XHTML_1_0, Syntax.XWIKI_2_1,  printer);

    System.out.println(printer.toString());
    assertThat(printer.toString(), containsString("==="));
}

@Before
public void setUp() throws ComponentLookupException, ConversionException
{
    EmbeddableComponentManager componentManager = new EmbeddableComponentManager();
    componentManager.initialize(this.getClass().getClassLoader());

    converter = componentManager.getInstance(Converter.class);
    printer = new DefaultWikiPrinter();
}

}

得到, java.lang.NoSuchFieldError: fRecognizedFeatures 在 org.apache.xerces.parsers.XML11NonValidatingConfiguration.(未知来源) 在 org.apache.xerces.parsers.XML11NonValidatingConfiguration.(未知来源) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 java.lang.Class.newInstance(Class.java:379) 在 org.xwiki.xml.internal.DefaultXMLReaderFactory.createXMLReader(DefaultXMLReaderFactory.java:74) 在 org.xwiki.rendering.internal.parser.xhtml.wikimodel.XWikiXMLReaderFactory.createXMLReader(XWikiXMLReaderFactory.java:73) 在 org.xwiki.rendering.internal.parser.xhtml.XHTMLParser.createWikiModelParser(XHTMLParser.java:151) 在 org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:128)

【问题讨论】:

    标签: java rendering markdown xwiki


    【解决方案1】:

    您的示例看起来不错(即使您定义了打印机对象两次,但这对测试来说不是问题)。

    在 DefaultXMLReaderFactory.java:74 处,代码为:

    // See http://xerces.apache.org/xerces2-j/faq-grammars.html#faq-1
    Object xercesConfiguration = Class.forName("org.apache.xerces.parsers.XML11NonValidatingConfiguration").newInstance();
    

    从您的堆栈跟踪可以加载 XML11NonValidatingConfiguration 类,但它是构造函数调用以某种方式失败。看到关于 fRecognizedFeatures 的错误,我不明白这是怎么可能的......

    如果我是你,我会尝试使用不同版本的 Xerces 看看是否有帮助。

    【讨论】:

      猜你喜欢
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2014-05-13
      相关资源
      最近更新 更多