Tag: moxy

JAXB用于为JSON或XML自然返回的列表

我正在使用MOXy和Jersey实现一个RESTful API,并希望自然地为JSON和XML返回列表,我的意思是XML包含整个集合的元素标记以及集合项,而JSON包含仅用于集合的标记。 例如,我想返回一个“组织”资源,其中包含设施和位置的嵌套列表。 作为XML: 1 XYZ 1 Telephone 3 Whiteboard 1 REGION London 2 REGION Manchester 而作为JSON: { “id”: 1, “name”: “XYZ”, “facilities”: [ { “id”: 1, “text”: “Telephone” }, { “id”: 3, “text”: “Whiteboard” } ], “locations”: [ { “id”: 1, “kind”: “REGION”, “name”: “London” }, { “id”: 2, “kind”: “REGION”, “name”: “Manchester” } […]

MOXY中的JAXBinheritance

我有两节课: package a; class A { private fieldOfClassA; // getters, and setters } package b; class B extends A{ private fieldOfClassB; // getters, and setters } 我想将类B编组为xml元素,并从类A添加属性fieldOfClassB和fieldOfClassA,但它在编组期间打印以下警告消息: Ignoring attribute [fieldOfClassA] on class [bB] as no Property was generated for it. 请注意,这两个类来自两个不同的包,我无法更改此对象模型。 先感谢您! 编辑: 我正在使用外部绑定文件。

使用eclipselink.media-type值设置Marshaller属性时的PropertyException:application / json

我试图按照这里的示例,但得到一个javax.xml.bind.PropertyException。 由于以下代码行,我收到此exception: marshaller.setProperty(“eclipselink.media-type”, “application/json”); 我已经完全复制/粘贴了上面列出的示例,因此我的代码正是您在那里看到的。 搜索SO和谷歌对此没什么帮助,并且认为我会把这些带给SO的天才以获得一些帮助。 任何帮助都会受到最高的赞赏,(de)使用JSON和XML与json.org,Jackson和JAXB进行序列化已经变成了一个消耗了近一个月生命的黑色和无底洞。 我的第一印象是我没有正确指定eclipselink运行时(如此处所述),但没有产生解决方案。 堆栈跟踪: Exception in thread “main” javax.xml.bind.PropertyException: name: eclipselink.media-type value: application/json at org.eclipse.persistence.jaxb.JAXBMarshaller.setProperty(JAXBMarshaller.java:528) at com.dualoutput.DualOutput.main(DualOutput.java:20) SSCCE

如何将xml元素绑定到对象成员变量中?

我正在尝试使用moxy将xml解组为对象.Below是xml的示例。 value value of address 以下是我想要映射的课程。 import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.eclipse.persistence.oxm.annotations.XmlPath; @XmlRootElement(name=”root”) @XmlAccessorType(XmlAccessType.FIELD) public class Response { @XmlPath(“name/firstname/text()”) String name; Address address; } class Address { String addressline; } 现在,我如何获取XML中的地址标记的值并将其绑定到类Address的地址行变量。

在xml jaxb中将空值表示为空元素

我需要在jaxb中将空值显示为空元素。 我正在使用jxyb的moxy实现。 我找到了这个选项 @XmlNullPolicy(emptyNodeRepresentsNull = true, nullRepresentationForXml = XmlMarshalNullRepresentation.EMPTY_NODE) 是否有类似的扩展可以在类级别应用(对于其中定义的所有元素)

如何在Web服务中使用Moxy XPath带注释的bean?

我有一个豆子 @XmlRootElement(name = “alpha”) public class MyBean { private String thetaValue; @XmlPath(“beta/theta/text()”) public String getThetaValue() { return this.thetaValue; } public void setThetaValue(String thetaValue) { this.thetaValue = thetaValue; } } 这是使用eclipselink moxy jaxb注释的。 我想使用相同的bean和Xpath来托管Web服务。 我该怎么做呢? Web服务将托管在tomcat 6或7上

使用Spring配置CXF以使用MOXY进行XML编组/解组

我有一个Java服务器应用程序,它使用CXF提供SOAP和REST Web服务。 目前它使用JAX-B的参考实现进行XML编组/解组,但我已经将它配置为用jackson代替Jettison进行JSON编组/解组。 我使用Spring进行DI和应用程序上下文配置。 REST Web服务配置代码段如下所示: web.xml中 Myapp REST Services MyappWebServices org.apache.cxf.transport.servlet.CXFServlet 1 MyappWebServices /services/* applicationContext.xml中 此配置有效,将返回XML或JSON,具体取决于HTTP Accept标头。 我喜欢这个配置的是它基于Spring,并且创建和使用备用JSON编码器非常容易。 有关配置CXF的详细信息,请参见此处 。 我的问题是,现在我有一个新的(额外的)REST Web服务提供,我想为这个新的Web服务使用不同的JAX-B XML绑定。 我知道MOXy可以做到这一点,但我无法弄清楚如何配置CXF端点,以便它将使用MOXy进行编组/解组(以及如何告诉Moxy我的自定义XML映射文件)。 我还希望这个新的Web服务返回XML或JSON,具体取决于Accept标头。 我也读过MOXy 2.4+也可以处理它! 理想情况下,我可以在不影响其他现有servlet的情况下将MOXy用于此新端点。

MOXy反序列化exception:在项目中找不到具有默认根元素的描述符

这是我的课程: @XmlRootElement(name=”Zoo”) class Zoo { //@XmlElementRef public Collection animals; } @XmlAccessorType(XmlAccessType.FIELD) @XmlSeeAlso({Bird.class, Cat.class, Dog.class}) @XmlDiscriminatorNode(“@type”) abstract class Animal { @XmlElement public String name; } @XmlDiscriminatorValue(“Bird”) @XmlRootElement(name=”Bird”) class Bird extends Animal { @XmlElement public String wingSpan; @XmlElement public String preferredFood; } @XmlDiscriminatorValue(“Cat”) @XmlRootElement(name=”Cat”) class Cat extends Animal { @XmlElement public String favoriteToy; } @XmlDiscriminatorValue(“Dog”) @XmlRootElement(name=”Dog”) class […]

EclipseLink MOXy JSON序列化

我有一个示例课程: class Zoo { public Collection animals; } 当使用MOXy序列化时,我得到: { “bird”: [ { “name”: “bird-1”, “wingSpan”: “6 feets”, “preferredFood”: “food-1” } ], “cat”: [ { “name”: “cat-1”, “favoriteToy”: “toy-1” } ], “dog”: [ { “name”: “dog-1”, “breed”: “bread-1”, “leashColor”: “black” } ] } 为什么它使用数组指示符“[]”,而鸟,猫和狗不是数组? 第二,有没有办法摆脱“鸟”,“猫”和“狗”? 换句话说,我试图去: { { “name”: “bird-1”, “wingSpan”: “6 feets”, “preferredFood”: “food-1” […]

如何使用Moxy和Jersey从HashMap返回JSON对象

我使用Jersey 2.17和Moxy,我有以下function: @Produces(APPLICATION_JSON) @Restricted public List getFriends( @PathParam(“user”) String user ) { return userDAO.getFriends(user); } User.preferences是一个HashMap 。 它适用于几乎所有对象,除了HashMap ,它被翻译成: “偏好”:{ “条目”:[{ “键”:{ “类型”: “串”, “值”: “语言”}, “值”:{ “类型”: “串”, “值”: “恩”}},{ “关键”:{ “类型”: “串”, “值”: “国”}, “值”:{ “类型”: “串”, “值”: “US”} }]} 但我真的想要返回的只是一个javascript对象,如: 喜好:{ “语言”: “恩”, “国”: “US”} 我怎样才能做到这一点?