如何使用 WikiToXhtmlMigrator 使用 Confluence SDK 进行转换

How to Use WikiToXhtmlMigrator to Convert using Confluence SDK

我正在尝试将 WikiMarkup 数据转换为 Confluence 的基于 XHTML 的格式。我看到有两种不同的方法可以做到这一点。

1) 使用基于 rest/XML Rpc API convertWikiToStorageFormat(String token, String markup) 来做同样的事情。 2) 其他方法是使用 WikiToXhtmlMigrator 来完成相同的任务。因为我使用的是 Confluence SDK,所以我选择第二种方法来做同样的事情。

public String getXHTMLConvertedTextFromWiki(String markupData){
    String content = null;
    try {

        RenderContext renderContext = new RenderContext();
        DefaultConversionContext defaultConversionContext = new DefaultConversionContext(renderContext);
        ExceptionTolerantMigrator wikiToXhtmlMigrator = (ExceptionTolerantMigrator) ContainerManager.getComponent("wikiToXhtmlMigrator");
        content = wikiToXhtmlMigrator.migrate(markupData, defaultConversionContext).getContent();

    }catch(Exception e){
        e.printStackTrace();
    }
    return content;
}

但我总是遇到异常:

[INFO] [talledLocalContainer] java.lang.NullPointerException
[INFO] [talledLocalContainer]   at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:57)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:69)

我试图通过在 render Context 中设置 All 来推送渲染模式,但遇到了同样的异常。

renderContext.pushRenderMode(RenderMode.ALL);

请告诉我这个例子中的问题是什么,并展示正确的方法。

能够通过以下代码将标记转换为 Xhtml。

public String getXHTMLConvertedTextFromWiki(String wikiText){
    String content = null;
    try {

        List<RuntimeException> exceptions = newArrayList();
        XhtmlContent xhtmlContent = (XhtmlContent)ContainerManager.getComponent("xhtmlContent");
        content = xhtmlContent.convertWikiToStorage(wikiText, new DefaultConversionContext(new PageContext()),exceptions);
         for(RuntimeException e : exceptions){
             log.error(e.getMessage());
         }
    }catch(Exception e){
        e.printStackTrace();
    }
    return content;
}

请确保,如果从外部源读取页面标记数据,则在读取页面标记数据时不应丢失换行符。