- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用了XWiki Schema Definition使用 Eclipse XJC Binding Compiler 创建对象类模型。在 package-info.java 中创建以下命名空间
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xwiki.org", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.xwiki.rest.model.jaxb;
当我读到 Example from an HttpResponse 时
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<page xmlns="http://www.xwiki.org">
<link rel="http://www.xwiki.org/rel/space" href="http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main" />
...
</page>
使用 JAXB
try {
JAXBContext context = JAXBContext.newInstance(org.xwiki.rest.model.jaxb.Page.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
InputStream is = new FileInputStream(new File("request_result.xml"));
Page page = (Page) unmarshaller.unmarshal(is);
} catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
异常
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.xwiki.org", local:"page"). Expected elements are <{http://www.xwiki.org}attachments>,<{http://www.xwiki.org}classes>,<{http://www.xwiki.org}comments>,<{http://www.xwiki.org}history>,<{http://www.xwiki.org}objects>,<{http://www.xwiki.org}pages>,<{http://www.xwiki.org}properties>,<{http://www.xwiki.org}searchResults>,<{http://www.xwiki.org}spaces>,<{http://www.xwiki.org}tags>,<{http://www.xwiki.org}wikis>
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:648)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:236)
...
被抛出。
我不明白出了什么问题,因为命名空间似乎是正确的。我必须更改什么才能获得有效的 XWiki RESTful API?
最佳答案
page
元素的映射可能位于生成的 ObjectFactory
类上的 @XmlElementDecl
注释上。您可以将 JAXBContext
创建更改为以下内容来选择它:
JAXBContext context = JAXBContext.newInstance(org.xwiki.rest.model.jaxb.ObjectFactory.class);
或者您可以在生成的模型的包名称上创建 JAXBContext
:
JAXBContext context = JAXBContext.newInstance("org.xwiki.rest.model.jaxb");
<小时/>
Thanks, that helped a little. Now i get Exception in thread "main" java.lang.ClassCastException: javax.xml.bind.JAXBElement cannot be cast to org.xwiki.rest.model.jaxb.Page.
当使用 @XmlElementDecl
而不是 @XmlRootElement
对根进行注释时,您得到的结果是包含域类实例的 JAXBElement
实例。
您可以执行以下操作:
JAXBElement<Page> jaxbElement = (JAXBElement<Page>) unmarshaller.unmarshal(is);
Page page = jaxbElement.getValue();
或者:
Page page = (Page) JAXBIntrospector.getValue(unmarshaller.unmarshal(is));
了解更多信息
我在我的博客上写了有关此特定用例的更多信息:
关于java - 如何正确解码基于模式的请求结果(即 xwiki)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23936870/
本文整理了Java中com.xpn.xwiki.api.XWiki.getClass()方法的一些代码示例,展示了XWiki.getClass()的具体用法。这些代码示例主要来源于Github/Sta
本文整理了Java中com.xpn.xwiki.api.XWiki.exists()方法的一些代码示例,展示了XWiki.exists()的具体用法。这些代码示例主要来源于Github/Stackov
本文整理了Java中com.xpn.xwiki.api.XWiki.getClassList()方法的一些代码示例,展示了XWiki.getClassList()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中com.xpn.xwiki.api.XWiki.getDocument()方法的一些代码示例,展示了XWiki.getDocument()的具体用法。这些代码示例主要来源于Gith
本文整理了Java中com.xpn.xwiki.api.XWiki.hasAdminRights()方法的一些代码示例,展示了XWiki.hasAdminRights()的具体用法。这些代码示例主要来
本文整理了Java中com.xpn.xwiki.api.XWiki.()方法的一些代码示例,展示了XWiki.()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
本文整理了Java中com.xpn.xwiki.api.XWiki.hasAccessLevel()方法的一些代码示例,展示了XWiki.hasAccessLevel()的具体用法。这些代码示例主要来
大家好,我在本地主机上有一个 xwiki,出于测试目的,我想通过编写一些简单的 jquery 脚本来测试 RESTful api: var username = "Admin"; var passw
有人有 xwiki 渲染框架的定制渲染器示例吗?我想要从 JSPWiki 转换为 XHTML,但 xwiki 生成的默认结果还不够。我需要应用一些逻辑来检查中间树中的 sibling / child
我想使用 XWiki 来记录一些过程,所以我下载了 xwiki-enterprise-installer-generic-5.0.1-standard.jar 并安装成功。当我运行 ./start_x
当 XWiki 搜索结果返回时,没有任何关于匹配上下文的指示。只有一个标题和一些元素返回的时间和人员。有没有办法改进结果以包含突出显示找到的匹配项的内容摘要? 最佳答案 是的,当然对于基于标准关键字的
我正在编写一个 Java 组件,用于构建维基中的所有页面。分配可以从 Java 服务组件中查看页面或空间的用户权限或组的最佳方法是什么?真的很难在 API 中找到这方面的详细信息。 最佳答案 您在AP
根据guide ,向 XWiki 添加新组件涉及将 jar 文件放入 XE_WAR_HOME/WEB-INF/lib。但是,我似乎需要在使用新组件之前重新启动 tomcat。有没有办法解决这个重启?组
我使用了XWiki Schema Definition使用 Eclipse XJC Binding Compiler 创建对象类模型。在 package-info.java 中创建以下命名空间 @ja
本文整理了Java中org.xwiki.rendering.listener.WrappingListener类的一些代码示例,展示了WrappingListener类的具体用法。这些代码示例主要来源
本文整理了Java中com.xpn.xwiki.api.XWiki类的一些代码示例,展示了XWiki类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从
本文整理了Java中com.xpn.xwiki.web.XWikiURLFactoryService类的一些代码示例,展示了XWikiURLFactoryService类的具体用法。这些代码示例主要来
本文整理了Java中org.xwiki.test.ui.XWikiWebDriver类的一些代码示例,展示了XWikiWebDriver类的具体用法。这些代码示例主要来源于Github/Stackov
本文整理了Java中org.xwiki.bridge.event.WikiDeletedEvent类的一些代码示例,展示了WikiDeletedEvent类的具体用法。这些代码示例主要来源于Githu
本文整理了Java中com.xpn.xwiki.plugin.XWikiDefaultPlugin类的一些代码示例,展示了XWikiDefaultPlugin类的具体用法。这些代码示例主要来源于Git
我是一名优秀的程序员,十分优秀!