2012-08-03 57 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原因是你的编组。