2012-08-03 56 views
0

我已經看到了解決此問題存在職位,但因爲我是新來的JAXB我有一個有點麻煩,我有一個根元素成立,並宣佈我的XML元素以及。我在這裏做錯了什麼?JAXB無法馬歇爾說,失蹤rootElement的,但是有一個

我收到此錯誤

org.springframework.oxm.MarshallingFailureException: JAXB marshalling exception; nested exception is javax.xml.bind.MarshalException 
- with linked exception: 
[com.sun.istack.internal.SAXException2: unable to marshal type "au.test.Search.ws.model.SearchRequest" as an element because it is missing an @XmlRootElement annotation] 

但是這是我SearchRequest類

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
     "searchControls", 
     "searchCriteria", 
     "searchFilters" 
}) 
@XmlRootElement(name = "searchRequest") 
public class SearchRequest { 

    @XmlElement(required = true) 
    protected SearchControls searchControls; 
    @XmlElement(required = true) 
    protected NameSearchCriteria searchCriteria; 
    @XmlElement 
    protected NameSearchFilters searchFilters; 

    public SearchControls getSearchControls() { 
     return searchControls; 
    } 

    public void setSearchControls(SearchControls value) { 
     this.searchControls = value; 
    } 

    public NameSearchCriteria getSearchCriteria() { 
     return searchCriteria; 
    } 

    public void setSearchCriteria(NameSearchCriteria value) { 
     this.searchCriteria = value; 
    } 

    public NameSearchFilters getSearchFilters() { 
     return searchFilters; 
    } 

    public void setSearchFilters(NameSearchFilters value) { 
     this.searchFilters = value; 
    } 
} 

如何searchControls,標準和過濾器設置

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "NameSearchFilters", propOrder = { 

}) 
public class NameSearchFilters { 

    protected FilterOperator operator; 

    public FilterOperator getOperator() { 
     return operator; 
    } 

    public void setOperator(FilterOperator value) { 
     this.operator = value; 
    } 
} 

我有多解組爲請求使用org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive

public SearchResponse performSearch(SearchRequest searchRequest) { 
    searchResponse = (SearchResponse) getWebServiceTemplate() 
      .marshalSendAndReceive(searchRequest);    
+0

我沒有看到類的任何問題。你可以發佈你的代碼解組嗎? – 2012-08-03 04:57:24

+0

IM使用org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive框架調用它是這樣的:searchResponse =(SearchResponse)getWebServiceTemplate().marshalSendAndReceive(searchRequest); – 2012-08-03 05:18:03

+0

東西我都僅僅指剛的想法是,我需要我的recomile螞蟻構建,因爲該項目已經改變,是週五下午,我會回來的這個週一早上扶養hirachy的。但我很確定這是我的構建中的一個問題。 – 2012-08-03 07:01:43

回答

0

這裏的問題是,Ant構建創建依賴jar是一箇舊版本,需要重做ant構建,並修復所有錯誤。 我正在將Castor轉換爲Jaxb,因此元素的設置是正確的,因此可以用作參考點。

對於有這個問題,它不會是一個問題,扶養人,這個問題的最likly原因是你的編組。