Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

java.lang.ClassNotFoundException Брошенный ClassLoader на com.ms.security Пакет

Признаки

Выполняя апплет в браузере, используя Sun Среда выполнения Java™ (JRE™), a java.lang.ClassNotFoundException бросается ClassLoader на com.ms.security пакет. Тот же самый апплет работает без любой ошибки под Microsoft Virtual Machine (VM).

Причина

Microsoft VM обеспечивает собственное com.ms.security пакет для апплетов и приложений, чтобы получить доступ к политике безопасности во время выполнения. Поскольку этот пакет не доступен на солнце JRE, a java.lang.ClassNotFoundException бросается, когда апплет работает в браузере.

Разрешение

Переместите источник апплета от com.ms.security пакет к java.security пакет при использовании подобных классов.

Например, следующее использование апплета com.ms.security.PolicyEngine утверждать сетевое разрешение ввода-вывода прежде, чем соединиться с URL:

public class AssertPermissionApplet extends java.applet.Applet
{
   public void init()
   {
       try
       {     
           // Assert permission on network I/O
           com.ms.security.PolicyEngine.assertPermission
           (com.ms.security.PermissionID.NETIO); 
           java.net.URL url = new java.net.URL("http://randomhost/randomfile");
           .....
       } catch (java.net.MalformedURLException mue) {
       }
       catch (java.io.IOException ioe) {
       }
     } // init
}

В технологии Java, java.security.AccessController обеспечивает подобную функциональность для утверждения разрешения. Следующий исходный код выводит на экран функциональность после миграции:

public class AssertPermissionApplet extends java.applet.Applet
{
   public void init()
   {
       try
       {     
           // Assert permission on network I/O
           java.security.AccessController.checkPermission(new java.net.SocketPermission("randomhost:80", "connect,accept"));
           java.net.URL url = new java.net.URL("http://randomhost/randomfile");
           .....
       } catch (java.net.MalformedURLException mue) {
       }
       catch (java.io.IOException ioe) {
       }
     } // init
}

См. Java™ SE технологическая документация API для большего количества деталей о безопасности.

Соответствующая информация

       См. Безопасность.


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами