Java applet của tôi ngừng hoạt động khi JRE đã được cập nhật lên 7u21.Java applet ngừng hoạt động sau khi cập nhật lên JRE 7u21
tóm tắt ngắn:
Các Exceptions tôi nhận được là: netscape.javascript.JSException và
java.lang.NoClassDefFoundError. các applet làm việc tốt cho đến khi JRE 7u21.Ứng dụng này được nhúng vào một trang web bằng cách sử dụng DeployJava.js của Oracle.
Applet được ký, nó sử dụng LiveConnect để kích hoạt sự kiện, nó truy cập USB và cổng nối tiếp thông qua JNI, nó sử dụng mã từ nhiều tệp JAR.
Lỗi xảy ra trên tất cả các trình duyệt trên máy tính để bàn được thử nghiệm (Firefox, chrome, IE8/9 và Safari trên Mac).
chi tiết:
Tôi có một applet java cho phép trang web của tôi để giao tiếp với một thiết bị USB.
Ứng dụng này đã hoạt động tốt trong năm qua.
Sau khi bản cập nhật JRE7 21 được phát hành - applet ngừng hoạt động.
Ứng dụng này được lưu trữ trong một trang web (ASP.NET) bằng thư viện DeployJava.js của Oracle.
Nó sử dụng LiveConnect để tăng sự kiện trở lại mã javascript của tôi.
Vấn đề đầu tiên tôi đã có trên JRE 7u21 là một ngoại lệ trên nỗ lực đầu tiên để nâng cao một sự kiện thông qua LiveConnect:
netscape.javascript.JSException: JavaScript error while calling "_notify"
at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source)
at <myapplet>.fireJavascriptEvent(Unknown Source)
at <myapplet>$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.asec.easypark.applets.HomeloadingApplet.start(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
để giảm thiểu vấn đề này tôi đã thêm dòng sau vào 'manifest 'phần trong kịch bản kiến cho applet:
attribute name="Trusted-Library" value="true"
tôi đã xây dựng applet sử dụng JDK 7u21 và nó dường như giúp:
sau đó tôi bắt đầu nhận được một lỗi khác - vì vậy tôi tin rằng điều này đã được giải quyết, nhưng nó có thể đã gây ra vấn đề tiếp theo.
vấn đề thứ hai là: applet đang gọi mã từ một số tệp JAR. trên cuộc gọi đầu tiên để mã trong một tập tin JAR (không phải là các applet) không thành công với những ngoại lệ sau đây:
**java.lang.NoClassDefFoundError**: com/codeminders/hidapi/HIDManager
at <PackageInSecondJar>.communication.HIDTransmitter.open(Unknown Source)
at <PackageInSecondJar>.communication.HIDTransmitterSearcher.find(Unknown Source)
at <PackageInSecondJar>.communication.CompositeTransmitterSearcher.find(Unknown Source)
at <PackageInAppletJar>.communication.AppletCommunicationBroker.setupDeviceProxy(Unknown Source)
at <PackageInAppletJar>.communication.AppletCommunicationBroker.setup(Unknown Source)
at <PackageInAppletJar>.<TheApplet>$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at <PackageInAppletJar>.<TheApplet>.start(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Tôi đã thử các biện pháp sau đây - nhưng không thành công:
thêm HTTP tiêu đề 'Cache-Control' = 'no-cache'
add HTTP tiêu đề 'Cache-Control' = 'no-cache, không có cửa hàng,-phải xác nhận lại'
sử dụng DeployJava.js mới nhất từ http://java.com/js/deployJava.txt (sau khi đổi tên để .js)
Các applet đã có các tính năng:
dấu an ninh 'tất cả-quyền' trong jnlp
JAR chính được ký với chứng chỉ từ một CA bên ngoài
mã applet đang chạy bên trong một
AccessController.doPrivileged
khối.
Tôi là một newbie java vì vậy xin đừng bỏ qua các giải pháp rõ ràng ...
Cảm ơn trước sự giúp đỡ của bạn,
Guy.
bản sao có thể có của [Không thể khởi chạy ứng dụng bằng Java 7u21] (http://stackoverflow.com/questions/16083405/cannot-launch-applet-using-java-7u21) –
Tôi đã tìm thấy [điều này thảo luận] (https://forums.oracle.com/forums/thread.jspa?threadID=2525898&tstart=0), cũng nhìn thấy một liên kết từ đó, trong đó có một giải pháp có thể, và xem nếu điều đó áp dụng cho bạn và giúp đỡ? – jkovacs
Thx. Tôi đã nhìn thấy nó và nó thực sự là nguồn gốc của những sửa chữa đầu tiên tôi đã làm. nhưng bây giờ tôi có vấn đề thứ hai được mô tả ở trên (ngoại lệ java.lang.NoClassDefFoundError) hoặc là không liên quan hoặc gây ra bởi sửa chữa đó. – user1127788