2012-11-19 6 views
0

GWT 응용 프로그램에서 RPC 인터페이스가 있습니다. 일부 메소드는 올바르게 작동합니다 (즉, RemoeServiceServlet 잘 구성됨). 그러나 다른 메소드를 호출하려고하면 항상 onFailure() 메소드로 실패합니다. Ajax 호출도 발생하지 않습니다 (Firebug를 사용하여 볼 수 있으며 서버 측 메소드 호출도 발생하지 않음). 그러나이 서비스의 다른 메소드도 Ajax 호출을 수행합니다.GWT RPC 메서드 호출이 오류 메시지없이 실패 함

e.getMessage()을 사용하여 오류를 기록하려고하면 이 "정의되지 않음" 메시지를받습니다. 또한 try-catch을 사용하여 RPC 호출 코드를 래핑하려고했습니다. 오류 메시지가 없습니다.

이 문제는 GWT-RPC 직렬화와 관련 될 수 있습니까?

는 편집 : 오페라 잠자리 (PRETTY 모드로 컴파일) 생성 된 JavaScript 내에서 방법을 다음에 오류를 보여 주었다 :

function $check(this$static, typeSignature){ if (isNull($get_3(this$static.methodMapNative, typeSignature))) { Unhandled Object: undefined throw new SerializationException_1(typeSignature); } }

오류 메시지와 함께

처리되지 않은 개체 : 정의되지 않은

+0

경고가 있습니까? – RAS

+0

어떤 버전을 사용하고 있습니까? –

+0

@RAS 컴파일 할 때 유형이 'Serializable'인 필드에 대해 경고를받습니다. 하지만 다른 프로젝트에서도'Serializable' 필드를 사용 했으므로 관련 문제는 없습니다. – MyTitle

답변

1

나는 당신에게 S가 있다고 생각합니다. 자바 직렬화가 GWT 직렬화와 동일하지 않다는 것을 기억하십시오.

RPC를 사용할 때 직렬화 오류에 의미있는 오류 메시지가 나타나지 않는 경우가 종종 있습니다.

  • 최종 필드는 본질적으로 일시적입니다 0 진 생성자가 있어야합니다 (예. 직렬화 의도 클래스에 최종 필드를 사용하지 마십시오) @ 주석해야
  • 컬렉션 (예 : 목록 및 세트) gwt.typeArgs. @ gwt.typeArgs 따라서 그것이의 JavaDoc 주석 예 : 자세한 내용은/** @ gwt.typeArgs */

에 싸여해야 자바 독 주석입니다 볼 : GWT Serialization

또 다른 것은 시도 : eclipse-plugin에서 GWT를 실행할 때 eclipse 프로젝트의 폴더가 만들어집니다 (gwt-unitCache라고 함). 가끔 내 자신의 GWT 프로젝트가 나 빠지고 이상한 예외를 출력하는 경우 폴더를 삭제하고 프로젝트를 다시 실행하여이를 해결할 수 있습니다.