작년에 웹 애플리케이션에서 로컬 실행중인 java 서버로의 소켓 연결을 위해 Java 애플릿을 만들었습니다. 괜찮 았어.Javascript로 Java 애플릿 메소드를 호출하려면 어떻게해야합니까?
지난 자바 업데이트 (7 r21 내가 추측) 이후 자바 스크립트에서 더 이상 메소드에 액세스 할 수 없습니다. 지금 당장은 애플릿을 테스트 애플릿 (doPriviligedAction 메소드 제외)으로 축소했지만 더 이상 작동하지 않습니다.
document.socketApplet.testApplet();
애플릿은 자체 서명 및 애플릿 내장 :
현재 코드는 내가 같이 자바 스크립트 testApplet()와 같은 메소드에 액세스 할 수있는 업데이트하기 전에
import java.applet.*;
public class socketApplet extends Applet {
public void init() {
System.out.println("Applet initialisiert.");
}
public void start() {
System.out.println("Applet gestartet.");
}
public void paint() {
System.out.println("Applet aktualisiert.");
}
public void stop() {
System.out.println("Applet angehalten.");
}
public void destroy() {
System.out.println("Applet beendet.");
}
public String testApplet() {
System.out.println("Applet getestet.");
return "Yep, I'm the Applet.";
}
}
같다 HTML 태그. 그것은 시작 (Java 콘솔 열기 및 초기화, 시작 및 페인트 메서드에서 정의 된 디버그 메시지를 인쇄하는) 있지만 testApplet() 메서드를 액세스 할 수 없습니다. 애플릿이있는 동안 Javascript의 응답은 "정의되지 않음"입니다.
에 대해 (... 몇 일 현재) 새로운 보안 변경 사항을 잠시 읽은 후, 나는 다음과 같은 내용으로 manifest.txt가 추가되었습니다 :
Main-Class: socketApplet
Permissions: all-permissions
Codebase: *
Trusted-Library: true
또는 신뢰할 수없는 운 -Library 속성.
다시 자바 스크립트를 사용하려면 어떻게해야합니까?
편집 : 구현 : 나는 최신 맥 OS X 머신까지 온 파이어 폭스와 사파리의 최신 버전으로 테스트입니다
<applet id="socketApplet" width="100" height="100" archive="../../socketApplet.jar" name="socketApplet" code="socketApplet" scriptable="true">
.
Edit2가 : 내가 만들고이
EDIT3 같은 항아리에 서명하고있다 : 자, 이제 내 병은 몇 번 일 (하지 연속), 내가
를 가지고와 콘솔에서
하지만 대부분의 경우 작동하지 않습니다. 브라우저 다시 시작, 캐시 지우기, 아무 것도 작동하지 않습니다. 이걸 다른 PC에서 다시 테스트 할 겁니다.
Edit4 : 좋아, Windows XP 및 Java 32 비트 7u25가 설치된 가상 머신에서 실행됩니다. 제 64 비트 Mac에서는 30 개 중 1 개만 시도합니다.
? 애플릿을 실행하는 데 사용되는 HTML은 무엇입니까? –
ty 빠른 응답을 위해 메인 포스트를 업데이트했습니다. (끝에있는 편집 섹션 참조) –
권장 사항 : 1) 애플릿을 0이 아닌 너비와 높이로 만듭니다. 웹 페이지의 0x0 요소는 자동으로 의심 스럽기 때문에 브라우저에서 더 높은 수준의 보안을 유발하거나 의심스러운 활동을 찾기 위해 브라우저가 설치 한 도구를 트리거 할 수 있습니다. 2) Javascript에서 애플릿을 호출 할 수 있음을 나타 내기 위해'scriptable = "true"'속성을 추가하십시오. –