2013-06-17 3 views
0
@At("/notes") @Service 
public class NotebookService { 

    private Note note =new Note(); 

    public NotebookService(){ 
     ObjectifyService.register(Note.class); 
    } 

    public Note getNote() { 
     return note; 
    } 

    public void setNote(Note note) { 
     this.note = note; 
    } 

    @Post 
    public String postNote(){ 
     note.setDate(new Date()); 
     Objectify objectify=ObjectifyService.ofy(); 
     objectify.save().entities(note).now(); 
     return "/servlet"; 
    } 
} 

이 java.lang.ClassCastException가를 던졌습니다 : 나는에서 URL 문자열을 반환 할 때 java.lang.String의이 com.google.sitebricks.headless.Reply 캐스트 할 수없는 @post로 주석 된 메소드. 포스트 메서드의 반환 형식이 String이면 응답을 기대하는 이유는 무엇입니까?는 ClassCastException 동안

@Service는 아직 JSON을 응답하는 코드화 된 get 메소드에 필요합니다.

답변

1

ClassCastException을 제공하는 이유는 Sitebricks API가 어떤 시점에서 클래스의 @Service -annotation을보고 그에 따라 작동한다는 것입니다. 반환 된 객체 (귀하의 경우 java.lang.String)를 가져 와서 com.google.sitebricks.headless.replace로 캐스팅하고 시도하십시오.

원하는 것을 얻으려면 다음 :

return Reply.saying().redirect("/servlet"); 

이렇게하면 Reply API를 사용하여 리디렉션하는 방법입니다.

+0

그래, 나중에 Google 그룹스에서 작성자의 의견을 알게되었습니다. 감사. – SoulMan