2010-12-02 14 views
1

これは私のjspファイルのボディタグです。クラスが見つかりませんでした例外とWeb上のアプレットを実行中のIO例外

<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> 

は、私は、Webアプリケーションの私のアプレットを実行したいが、私は、コンソール上の任意のエラーを取得することはできません一つの小さなwindow.Iにフェッチするエラー以下ました。

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

コードベースが正しく書かれていません。相対的なWebパスである必要があります。

あなたの場合は、testweb/applet-classesのようなものにする必要があります。しかし、WEB-INFではなく、すべてのアプレットクラスをそこに配置します。 WEB-INFは、サーバー側で実行されるクラスを格納する場所です。このフォルダはWebからアクセスできない可能性があります。アプレットクラスは、ブラウザに実行されているJVMによってダウンロードされるため、WEB-INFが表示されないことがあります。

さらに良い方法は、アプレットのクラスをjarファイルにパックし、アプリケーションのルート下に配置することです。この場合、コードベースはcodebase='myapplet.jar'のようになります

+0

私はアプレットのクラスパスをC:\ Program Files \ apache-tomcat-6.0.18 \ webapps \ testweb – chetan

+0

とC:\ Program Files \ apache-tomcat-6.0に置きます。 18 \ webapps \ testweb \ WEB-INFと私のコードベース=/testweb – chetan

関連する問題