- - PR -
JSPでAppletを使用する際のAppletクラスファイルの配置場所、及びcodebaseの指定について。
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-09-18 12:05
―――――――――――――――――――――――――――――――――――
【開発環境】 統合開発環境:Eclipse2.0.2 JDK: j2sdk1.4.1_03 フレームワーク: Struts1.1rc1(MVC形式) Webサーバ: Apache1.3.28 サーブレットコンテナ: Tomcat4.0.6 DBサーバ: MiracleLinux2.1 DB: Oracle9i 接続プール:javax.sql.DataSourceを利用 ――――――――――――――――――――――――――――――――――― 現在上記のような環境で開発を行っています。 表題の件で質問なのですが、JSP上でAppletを使用するために <jsp:plugin type="applet" codebase="/kensakusystem/WEB-INF/classes/kensakusystem/" code="DrawLine.class"> </jsp:plugin> といった感じでタグアクションを記述し実行させるとアプレットは実行されず、 JAVAコンソールを見ると下記のような例外が発生していました。 *********************************************************************** java.lang.ClassNotFoundException: DrawLine.class at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:153) at sun.plugin.security.PluginClassLoader.findClass (PluginClassLoader.java:168) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:506) at sun.applet.AppletPanel.createApplet(AppletPanel.java:567) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778) at sun.applet.AppletPanel.runLoader(AppletPanel.java:496) at sun.applet.AppletPanel.run(AppletPanel.java:293) at java.lang.Thread.run(Thread.java:536) Caused by: java.io.IOException: open HTTP connection failed. at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:252) at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:42) at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:143) at java.security.AccessController.doPrivileged(Native Method) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:140) ... 10 more *********************************************************************** ようするにアプレットのクラスファイルが見つからなかったことが 原因だと思うのですが、ちゃんとcodebaseに指定したディレクトリに 指定したクラスファイルがあることを確認できています。 どなたか原因がお分かりの方いらしましたら、アドバイス頂きたいのですが どうぞ宜しくお願いします。m(_ _)mペコリンコ | ||||
|
投稿日時: 2003-09-18 13:12
”kensakusystem/WEB-INF/classes/kensakusystem/”は、 クライアントからは見えませんよ・・・。(^^; これが直接見えちゃったらやばいですよ。 Appletを置く場所はJSPやHTMLと同じレベルです。 当然ですがcodebaseもWEB-INF以下は指定できません。 | ||||
|
投稿日時: 2003-09-18 14:08
ご返事ありがとうございます。 takuさんのおっしゃった通り、JSPと同レベルにクラスファイルを置いたら アプレットを読み込ませることができました。ありがとうございます。 しかし、ここで新たな疑問が湧いてくるのですが、 通常私の開発環境(Eclipse)に限らず、Webアプリケーションのソースを ビルドするとWEB-INF/classes/ にclassファイルが格納されますよね? その場合、ビルドした後にわざわざJSPのファイルと同等の場所まで もって行かなければいけないのでしょうか? 他の方はどのようにしてアプレットのclassファイルを配置しているのか、 また参考までに、使用している統合開発環境も宜しければ教えてください。 宜しくお願いします。 | ||||
|
投稿日時: 2003-09-18 14:37
なんで、J2SEとJ2EEを同一視するんですか? | ||||
|
投稿日時: 2003-09-18 15:58
こんにちはニシトミです。
eclipseをお使いなら、jsp配下にappletを配置するディレクトリを作成して、 プロジェクトのプロパティの Javaのビルドパス設定で 作成したappletのフォルダーを追加してみてはどうでしょう 多分これでいけるはずです。 | ||||
|
投稿日時: 2003-09-18 16:18
サーバから見たらアプレットはHTMLファイルと同じくコンテンツの一つだからです。 | ||||
|
投稿日時: 2003-09-18 18:43
こういったビルドや配置、jarやwarの作成などの細々とした仕事は antでまとめてやってしまうのが一番だと思いますよ。 | ||||
|
投稿日時: 2003-09-19 09:23
わたしの業界経験が浅いためか、takuさんのおっしゃってくださっている アドバイスの意味を理解できません。。。 もう少し、こうだからこうなるみたい的な説明頂けると、私みたいな 若輩ものには助かるんですが・・・・(・_・; ) 同一視とは、、、!? うーむ・・・なんでって言われましても・・・。 | ||||
