KNIME SDK を使用して KNIME のノード拡張機能を作成しています (これは Eclipse を適応させただけです)。コードは完成しました。Eclipse でテストしたところ、完全に機能しました。そこで、それをエクスポートし、KNIME インストール.jar
のサブフォルダーにコピーして、KNIME を開始しました。dropins
新しいワークフローを作成し、ノードを追加して実行しようとすると、次のエラーが表示されました。
Execute failed: Support code location could not be determined. Could not convert from URL to URI location.
URL Location: file:/C:/Program Files/KNIME_2.11.2/configuration/org.eclipse.osgi/bundles/528/1/.cp/matlabcontrol-4.1.0.jar
Code Source: (file:/C:/Program Files/KNIME_2.11.2/configuration/org.eclipse.osgi/bundles/528/1/.cp/matlabcontrol-4.1.0.jar <no signer certificates>)
Protection Domain: ProtectionDomain (file:/C:/Program Files/KNIME_2.11.2/configuration/org.eclipse.osgi/bundles/528/1/.cp/matlabcontrol-4.1.0.jar <no signer certificates>)
null
<no principals>
java.security.AllPermissionCollection@6ac1c077 (
("java.security.AllPermission" "<all permissions>" "<all actions>")
)
Class Loader: org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@b836456
Class Loader Class: class org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
KNIME フォーラムのスレッドによると、同様の問題は、matlabcontrol
私が使用している同じフレームワーク (エラーで言及されているもの) に基づいて構築されているコミュニティ拡張機能「Matlab Snippet」でも発生します。
プロジェクトに をパッケージとして含めることで問題を回避しようとしましたmatlabcontrol
(これはオープン ソースなので、ソースをインポートするだけで済みます)。その後、同じエラーが表示.jar
され、OSGI システムによって作成されたパッケージ (私の場合、matlab.jar
これは) で選択した名前build.properties
なので、アルファベット順で最初の名前であり、OSGI バンドル フォルダー内のすべてのファイルがこの問題の影響を受けていると思います。
私を混乱させているのは、ノードを実行して MATLAB に接続しようとしたときにのみ問題が発生することです。残念ながら、上記のリンク先の KNIME フォーラム スレッドでは問題が解決されていないようです。明らかに、その拡張機能の古いバージョンには問題がなく、ユーザーは古いバージョンをインストールしただけです。
では、どうにかして URL を正しく URI に変換することはできますか? 保護ドメインが原因ですか?変更できますか? デフォルトのクラスローダーと何か関係がありますか?
フォルダー内の機能を介してプラグインをインストールしました(コメントを参照)。エラーは解決しませんが、パスが変更されました:
Execute failed: Support code location could not be determined. Could not convert from URL to URI location.
URL Location: file:/C:/Program Files/KNIME_2.11.2/plugins/org.knime.ext.matlab_1.0.0/matlab.jar
Code Source: (file:/C:/Program Files/KNIME_2.11.2/plugins/org.knime.ext.matlab_1.0.0/matlab.jar <no signer certificates>)
Protection Domain: ProtectionDomain (file:/C:/Program Files/KNIME_2.11.2/plugins/org.knime.ext.matlab_1.0.0/matlab.jar <no signer certificates>)
null
<no principals>
java.security.AllPermissionCollection@2da869b5 (
("java.security.AllPermission" "<all permissions>" "<all actions>")
)
Class Loader: org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@372bf03c
Class Loader Class: class org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader