Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用gwtwiki创建MediaWiki页面_Java_Mediawiki Api - Fatal编程技术网

Java 使用gwtwiki创建MediaWiki页面

Java 使用gwtwiki创建MediaWiki页面,java,mediawiki-api,Java,Mediawiki Api,我试图使用Java库与私有wiki(MintLinux上的MediaWiki 1.19.5)交互,但创建新的wiki页面时遇到了困难 wiki运行正常,我可以连接和编辑现有页面,但创建失败,出现以下错误: info.bliki.api.UnexpectedAnswerException: The specified page was not found 我的代码: Connector connection = new Connector(); User user = new User("us

我试图使用Java库与私有wiki(MintLinux上的MediaWiki 1.19.5)交互,但创建新的wiki页面时遇到了困难

wiki运行正常,我可以连接和编辑现有页面,但创建失败,出现以下错误:

info.bliki.api.UnexpectedAnswerException: The specified page was not found
我的代码:

Connector connection = new Connector();

User user = new User("username", "password", "http://xxxx/mediawiki/api.php");

connection.login(user);

StringBuilder page = new StringBuilder();

page.append("== Test page ==\r\n");
page.append("Some page text");

String title = Encoder.encodeTitleToUrl("Test page",  true);

Edit newPage = Edit.create()
                   .title(title)
                   .text(page.toString());

try {
    connection.edit(user, newPage);
} catch (UnexpectedAnswerException e) {
    e.printStackTrace();
}
问题似乎出在库中,因为它执行了
查询
(在发出
编辑
命令之前,该查询返回空的
pageid
。该行位于中的
编辑(..)
方法中:

使用调试器强制它通过null pageid检查,可以成功创建页面


那么,我做错了什么?gwtwiki支持页面创建吗?如果是,我该怎么做?

作为一种解决方法,而不是一个完整的答案,我对
连接器
类进行了子类化,以允许我重写编辑方法以删除导致问题的pageId空检查

我还没有完全测试过它,所以可能会有其他影响,但这已经解决了我目前所需要的问题。如果我发现一个更好、更通用的方法,将会更新

if (pages != null && pages.size() == 1 && pages.get(0).getPageid() != null) {
...