ご清聴ありがとうございました。私がこのサイトに書いているのは初めてです(かなり初心者です:))私は以前に同じ問題を尋ねているユーザーの質問を読みました。私はたくさん読んだのですが、解決策を見つけることができませんでした。
問題:MatlabControl jar(http://code.google.com/p/matlabcontrol/)を使用して、Javaコード内でmatlabを「呼び出す」ことを試みています。通常のJavaアプリケーション(ビルドパスのmatlabcontrol.jarを含む)内でこのAPIを試してみると、すべてが完全に機能します。
私の問題は、jboss 5 ASを使用してejbモジュールで動作させることです。ejbモジュールをデプロイでき、matlabcontrol.jarのクラス(server / default / libフォルダーに配置)を表示できますが、動作しません。次の例外が返されます。
Caused by: java.lang.NullPointerException
at java.io.File.<init>(File.java:251)
at matlabcontrol.Configuration.getSupportCodeLocation(Configuration.java:227)
at matlabcontrol.RemoteMatlabProxyFactory.createProcess(RemoteMatlabProxyFactory.java:278)
at matlabcontrol.RemoteMatlabProxyFactory.requestProxy(RemoteMatlabProxyFactory.java:116)
at matlabcontrol.RemoteMatlabProxyFactory.getProxy(RemoteMatlabProxyFactory.java:134)
at matlabcontrol.MatlabProxyFactory.getProxy(MatlabProxyFactory.java:81)
それは私を次の行に導きます:
URL url = Configuration.class.getProtectionDomain().getCodeSource().getLocation();
File file = new File(url.toURI().getPath()).getCanonicalFile();
非常に奇妙なことは、非常にまれに、jbossを再起動してejbモジュールを再デプロイした後、システムが機能することです。
これらの最後の2行のソースコードを変更する必要があるのか(jarコードの場所を正しく取得できない問題であるかのように)、クラスパスを別の方法で設定するためにjBossのいくつかの設定ファイルを設定する必要があるのか本当にわかりません。
よろしくお願いします。どんな助けでも大歓迎です。