класс не найден исключение и исключение ввода-вывода при запуске апплета в Интернете - PullRequest
1 голос
/ 02 декабря 2010

Это мой тег тела файла jsp.

<body>
   <jsp:plugin type="applet" code="SApplet.class" 
        codebase="C:\Program Files\apache-tomcat-6.0.18\webapps\testweb\WEB-INF\classes" 
        width="400" 
        height="300" jreversion="1.6"></jsp:plugin>


  </body>

Я хочу запустить свой апплет в веб-приложении, но я получил следующую ошибку, которая будет загружена в одно маленькое окно. Я не могу получить ошибкуна консоли.

Java Plug-in 1.6.0_20
Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Sandy
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
load: class SApplet.class not found.
java.lang.ClassNotFoundException: SApplet.class
 at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/testweb/SApplet/class.class
 at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 ... 7 more
Exception: java.lang.ClassNotFoundException: SApplet.class
load: class SApplet.class not found.
java.lang.ClassNotFoundException: SApplet.class
 at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/testweb/SApplet/class.class
 at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
 at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 ... 7 more
Exception: java.lang.ClassNotFoundException: SApplet.class

1 Ответ

1 голос
/ 02 декабря 2010

Ваша кодовая база написана неправильно. Это должен быть относительный веб-путь.

В вашем случае это должно быть что-то вроде testweb / applet-classes. Но поместите все классы апплетов там, а не в WEB-INF. WEB-INF - это место, где вы должны хранить классы, которые выполняются на стороне сервера. Эта папка может быть недоступна из Интернета. Классы апплета загружаются JVM, который работает в браузере, поэтому WEB-INF может быть невидим для него.

Лучший способ - даже упаковать классы апплета в файл jar и поместить его даже в корень вашего приложения. В этом случае ваша кодовая база будет выглядеть как codebase='myapplet.jar'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...