2014-11-14 84 views
0

我有一個Java Jersey客戶端,它可以很好地將XML從Jersey Web服務傳遞到POJO,但是相同的等效Groovy腳本獲取Parsing和NullPointer異常。有沒有人遇到過這個?我需要做些額外的事情才能使它適用於Groovy?Groovy Jersey客戶端無法解析XML

我們使用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的代碼,得到一個ProcessingException和NullPointerException異常明顯,而解組XML數據:

// 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> 
+1

有關異常的任何更多的細節?消息? – toniedzwiedz 2014-11-14 16:27:47

+0

第一個異常:已捕獲: javax.ws.rs.ProcessingException:響應處理期間出現意外錯誤。 ... 引起:java.lang.NullPointerException – 2014-11-14 21:20:48

+0

我確定如果Groovy腳本調用Java方法來執行此Jersey調用,它仍會失敗!是否有某些事情正在發生上下文,線程等導致這個Groovy-> Java失敗?以下是我的版本:Groovy版本:2.2.0 JVM:1.7.0_17供應商:Oracle Corporation操作系統:Windows 7 – 2014-11-15 02:03:19

回答

相關問題