2009-05-05 5 views
1

나는 이것이 최적이 아니라는 것을 알고 있지만, 애플릿을 호출하는 페이지에서 작업해야합니다.애플릿 메서드를 호출하는 데 문제가 있습니다.

"캐치되지 않는 예외 : 오류 NPObject에 메소드를 호출

[플러그인 예외 : 나는 그렇게 할 때

내 문제는, 내가 다소 암호 같은 오류 메시지를받을! java.lang의를. reflect.InvocationTargetException]. "

누구든지 이것을 해독 할 수 있습니까? 심지어 여러 가지 가능성이 내가 생각해 낸 쓰레기보다 낫다. 애플릿에 대한 기본 호는 자바 스크립트 호출에서이다 : 당신이 볼 수 있듯이

document.getElementById('my_applet').passData("pass some data", someOtherData); 

는 passData 방법은 내가 사용하려고 노출 방법이다. 애플릿 자체가 페이지에서 제대로 작동하지만,이 호출을 시도 할 때 오류를 throw하는 것 외에는 아무 것도하지 않습니다.

내가 애플릿을 작업하는 사람에게 물어 보면 (내 부분이 아님) 건설적인 오류 던지기를 추가 할 수 있습니까? 아니면 아직 애플릿에 연결할 시점이 아닙니까?

답변

4

InvocationTargetException은 애플릿의 기본 메소드가 예외를 표시했음을 나타냅니다. Javascript에서 Java 로의 "경계"는 리플렉션을 사용하므로 Java 코드에 의해 던진 예외는 이와 같이 줄 바꿈됩니다. 예를 들어, 존재하지 않는 메소드를 호출하려고 시도한 경우와 같이 Java 코드에 들어가기 전에 던져진 예외와 구별 할 수 있습니다.

InvocationTargetException을 catch 한 다음 원래 예외를 얻을 수 있습니다. getTargetException() 또는 getCause() 메서드를 호출합니다 (둘 다 똑같이 수행함).

+0

감사합니다. 분명 도움이 될 것입니다. 더 많은 히트가 생길 경우에 대비하여 질문을 공개하겠습니다.하지만 내일 아침에 누군가가 더 이상 통찰력을 가지지 않을 경우를 대비하여 다시 확인하겠습니다. – Organiccat

0

나는 someOtherData이 무엇인지 살펴보기를 권합니다. someOtherData이 올바른 유형이 아닌 경우 이러한 예외가 발생할 수 있습니다. DOM 객체를 전달하려고하는 것 같습니다.

O'Reilly's JavaScript Guide에서이 페이지를 살펴보면 사용 가능한 유형을 볼 수 있습니다.

+0

전달중인 문자열이 노출 된 Java 애플릿 메소드에 의해 올바르게 수신되지 않았습니다. – Organiccat

+0

자세히 설명해 주시겠습니까? – Pool