2011-01-17 1 views
2

gibt es die Ausnahme vermarshallten wird bei dem Versuch, Rest ws im Frühjahr Mvc 3.0 mit jaxbjava: spring Rest WS - Kann nicht das Objekt finden, in einem Modell

javax.servlet.ServletException auszuführen: Kann nicht das Objekt lokalisieren vermarshallten in Modell werden: {org.springframework.validation.BindingResult.employees = org.springframework.validation.BeanPropertyBindingResult: 0 Fehler, [email protected]}

Mein Rest- Die Datei servlet.xml hat den folgenden jaxb-Eintrag:

<bean id="employees" class="org.springframework.web.servlet.view.xml.MarshallingView"> 
<constructor-arg ref="jaxbMarshaller" /> 
</bean> 

und

<bean id="employeeController" class="spring3.rest.controller.EmployeeController"> 
    <property name="employeeDS" ref="employeeDS" /> 
    <property name="jaxb2Mashaller" ref="jaxbMarshaller" /> 
</bean> 

EmployeeController ist:

@Controller 
public class EmployeeController { 

private EmployeeDS employeeDS; 

public void setEmployeeDS(EmployeeDS ds) { 
    this.employeeDS = ds; 
} 

private Jaxb2Marshaller jaxb2Mashaller; 

public void setJaxb2Mashaller(Jaxb2Marshaller jaxb2Mashaller) { 
    this.jaxb2Mashaller = jaxb2Mashaller; 
} 

@RequestMapping(method=RequestMethod.GET, value="/employee/{id}") 
public ModelAndView getEmployee(@PathVariable String id) { 
    Employee e = employeeDS.get(Long.parseLong(id)); 
    return new ModelAndView("employees", "object", e); 
} 

In Rest-servlet.xml

spring3.rest.bean.EmployeeList spring3.rest.bean. Mitarbeiter

und beide diese Bohnen sind annoted mit @XmlRootElement

+0

@Controller public class EmployeeController zu Modell { – JavaDev

+1

Und wir werden die Bohne Definition für 'jaxbMarshaller' sehen müssen auch – skaffman

Antwort

3

Encountered ähnliches Problem, dass ich Liste zurückkehrte in meinem Fall stellt sich heraus (A), während Typ ‚A‘ selbst als @XmlRootElement erklärt wird, war ich Ich übersehe die Tatsache, dass ich eine Liste des Typs A zurücksende, habe ein Wrapper-Objekt definiert, das die Liste enthält, und es wurde als @XMLRoolElement deklariert, das sich vorwärts bewegen kann.

dachte der Beitrag ist alt, könnte hilfreich sein zu wissen.

0

Sie benötigen eine Antwortobjekt setzen

@RequestMapping(value = "/myPath", method = RequestMethod.GET) 
public @ResponseBody 
MyObjct getMyObject(ModelMap model) { 
    MyObjct t = new MyObjct(); 
    model.addAttribute(t); // put into model 
    return t; 
}