Groovy Jersey客户端无法解组XML

约翰·C

我有一个Java Jersey客户端,可以很好地将XML从Jersey Web服务传递的数据解组到POJO,但是同等的Groovy脚本会获得Parsing和NullPointer异常。有人碰到这个吗?要使此功能与Groovy一起使用还需要做些额外的事情吗?

我们使用Groovy进行Spock测试。当我用Groovy调用POST服务时,也遇到了编组XML数据的相同问题。

这是服务器代码:

@GET
@Produces(MediaType.APPLICATION_XML)
public JAXBElement<WidgetType> getWidget() {
    return new JAXBElement<WidgetType>(new QName("widget"), WidgetType.class, widget);
}

这是运行良好的Java客户端:

    // Create widget from XSD generated class "WidgetType"
    WidgetType widget = new WidgetType();

    // Get - Fetch data from server "query"
    // Unmarshall Generic XML data to type
    GenericType<JAXBElement<WidgetType>> genericXMLWidgetType = new GenericType<JAXBElement<WidgetType>>() {};
    widget = (WidgetType) widgetService.request(MediaType.APPLICATION_XML_TYPE).get(genericXMLWidgetType).getValue();   

这是Groovy代码,在解组XML数据时,显然获得了ProcessingException和NullPointerException:

// Create widget from XSD generated class "WidgetType"
WidgetType widget = new WidgetType()

// Get - Fetch data from server "query"
// Unmarshall Generic XML data to type
GenericType<JAXBElement<WidgetType>> genericXMLWidgetType = new GenericType<JAXBElement<WidgetType>>() {}
widget = (WidgetType) widgetService.request(MediaType.APPLICATION_XML_TYPE).get(genericXMLWidgetType).getValue()

这是发送回的RAW XML数据:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<widget>
<WidgetId>1</WidgetId>
</widget>
约翰·C

我解决了 泽西岛拥有自己的JAXB API Jar文件。我从Groovy CLASSPATH中删除了它,现在一切正常。关于GRAILS失败,出现类似错误:

http://grails.1312388.n4.nabble.com/Classloading-goes-bad-tp4431718p4435106.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章