• 締切済み

ActiveX化したBeanをVBで使用した時の問題

ちょっと特殊なケースだと思いますが質問させて下さい。 下記ページを見てJavaBeansをActiveX化し、VBから呼び出すことはできました。 ActiveX ブリッジ開発者ガイド http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/beans/axbridge/developerguide/ 次に、VBのフォームにWebBrowserコンポーネントを貼り付けて、Appletを含むhtmlを WebBrowserコンポーネントで読み込ませてみると、Applet表示部分が表示されず、 Java Pluginコンソールを確認すると、 登録済みのモーダリティリスナー Unable to obtain Window object とだけログが出ていました。 また、クラスローダリストをダンプしてみるとJavaBeansのパスは設定されている もののAppletのパスは設定されていませんでした。 JavaBeansのActiveXコンポーネントを使わずにWebBrowserコンポーネントのみの 場合は正常に表示されます。 クラスローダリストにもAppletのパスが設定されています。 JavaBeansのActiveXコンポーネントとAppletは共存できないのでしょうか? 何か情報をお持ちの方おられましたらご教授願います。 環境: Windows2000 SP4 VisualStudio6.0(VB6 SP6) JDK1.4.2_08

みんなの回答

回答No.1

回答ではなくて恐縮ですが。 Appletを動作させるのにSunのPluginをお使いのようですが、最悪の場合、MSのJavaVMを使用すれば動作すると思われます。まあ、これでは要件を満たさないかもしれませんが(^^; ちなみに、ActiveXもPluginもInProcessServerなので同一プロセス内で動作しますが、1個のJavaVMを両者が共有することはできないんじゃないかという気がします。セキュリティモデルも異なりますし…。MSのJavaVMを使用すればActiveXはSunVMで、AppletはMS VMで動作しますから問題(衝突)は発生しないと。私はそういうふうに理解しています。 (余談ですが、JavaアプリからWebBrowserコントロールを直接利用できるSWTというGUIツールキットでは、クラッシュが発生するため意図的にSunのPluginは使用できないようにガードがかけられているようです)

tetsu_2005
質問者

補足

回答ありがとうございます。 やはりVM共有は無理そうですか・・・。 さらに質問で恐縮なのですが、MS VMでAppletを動作させるにはどのようにすればよいのでしょうか? (Java VM Selector for IEというフリーソフトを使うと出来そうですが、できれば何もインストールせずに出来ればありがたいので・・・)

関連するQ&A