私はOSGi
Web サービスを使用して Android で開始することを計画しています。これにより、Android ブラウザーで Java Server Pages (jsp) と Java サーブレットを実行できるようになります。
私の最初のステップはKnopflerfish
、Android へのインストールでした。knopflerfish のこのチュートリアルに従いました: http://www.knopflerfish.org/releases/5.0.0/docs/android_dalvik_tutorial.html
Knopflerfish はうまくいきました。Android フォンのブラウザで localhost:8080 を確認しました。
2 番目のステップはPax Web
、Android にもインストールされている Knopflerfish にインストールすることでした。ここからのチュートリアルもフォローしました:http://www.knopflerfish.org/kf_pax_web_tutorial.html
チュートリアルでは、次のように述べています。
KF HTTP バンドルをアンインストールする
最初のステップは、HTTP ルート バンドルを停止し、JSDK および HTTP サーバー バンドルをアンインストールすることです。これは、PaxWeb がこの機能を引き継ぐためです。通常、HTTP-root-bundle もアンインストールする可能性が高いですが、このチュートリアルではインストールしたままにします。次のステップに進む前に、必ずパッケージを更新してください。
それで:
PaxWeb をインストールする
2 番目のステップは、PaxWeb から次のバンドルをインストールして開始することです。
- pax-web-jsp-1.0.2.jar (インストール)
- pax-web-jetty-bundle-1.0.2.jar (インストール & 開始)
- pax-web-extender-war-0.8.0.jar (インストール & 開始)
Pax Web
バンドルが正常にインストールされました。
問題
Pax Web
バンドルを開始できません。
HTTP-root-IMP
Knopflerfish バンドルを起動しようとすると、コンソールにこのエラー メッセージが表示されます。
[stderr] ## DEBUG: errors - FrameworkErrorEvent bundle #20
[stderr] ## DEBUG: errors - FrameworkErrorEvent throwable:
Couldn't start bundle: HTTP-root-IMPL (#20) (due to: org.osgi.framework.BundleException: Bundle#20, unable to resolve: Missing package(s) or can not resolve all of the them:
org.osgi.service.http;version=[1.1.0,2.0.0) -- Could not resolve exporting bundle - org.osgi.service.http;version=1.2.0 Bundle[id=16,gen=0].
javax.servlet.http;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].)
org.osgi.framework.BundleException: Bundle#20, unable to resolve: Missing package(s) or can not resolve all of the them:
org.osgi.service.http;version=[1.1.0,2.0.0) -- Could not resolve exporting bundle - org.osgi.service.http;version=1.2.0 Bundle[id=16,gen=0].
javax.servlet.http;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].
at org.knopflerfish.framework.BundleImpl.getUpdatedState(BundleImpl.java:1259)
at org.knopflerfish.framework.BundleImpl.finalizeActivation(BundleImpl.java:312)
at org.knopflerfish.framework.PermissionOps.callFinalizeActivation(PermissionOps.java:265)
at org.knopflerfish.framework.BundleImpl.start(BundleImpl.java:295)
at org.knopflerfish.bundle.frameworkcommands.FrameworkCommandGroup.cmdStart(FrameworkCommandGroup.java:1634)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at org.knopflerfish.service.console.CommandGroupAdapter.execute(CommandGroupAdapter.java:256)
at org.knopflerfish.bundle.console.Command$2.run(Command.java:239)
at java.security.AccessController.doPrivileged(AccessController.java:45)
at org.knopflerfish.bundle.console.Command.run(Command.java:226)
at java.lang.Thread.run(Thread.java:856)
Pax Web
もう 1 つは、Knopflerfishのチュートリアルからバンドルを開始するときです。ここで私は始めようとしましたpax-web-jetty-bundle-1.0.2.jar (OPS4J Pax Web - Jetty Bundle)
:
[stderr] ## DEBUG: errors - FrameworkErrorEvent bundle #16
[stderr] ## DEBUG: errors - FrameworkErrorEvent throwable:
Couldn't start bundle: OPS4J Pax Web - Jetty Bundle (#16) (due to: org.osgi.framework.BundleException: Bundle#16, unable to resolve: Missing package(s) or can not resolve all of the them:
javax.security.sasl -- No providers found.
javax.management.remote -- No providers found.
javax.management.modelmbean -- No providers found.
javax.management -- No providers found.)
org.osgi.framework.BundleException: Bundle#16, unable to resolve: Missing package(s) or can not resolve all of the them:
javax.security.sasl -- No providers found.
javax.management.remote -- No providers found.
javax.management.modelmbean -- No providers found.
javax.management -- No providers found.
at org.knopflerfish.framework.BundleImpl.getUpdatedState(BundleImpl.java:1259)
at org.knopflerfish.framework.BundleImpl.finalizeActivation(BundleImpl.java:312)
at org.knopflerfish.framework.PermissionOps.callFinalizeActivation(PermissionOps.java:265)
at org.knopflerfish.framework.BundleImpl.start(BundleImpl.java:295)
at org.knopflerfish.bundle.frameworkcommands.FrameworkCommandGroup.cmdStart(FrameworkCommandGroup.java:1634)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at org.knopflerfish.service.console.CommandGroupAdapter.execute(CommandGroupAdapter.java:256)
at org.knopflerfish.bundle.console.Command$2.run(Command.java:239)
at java.security.AccessController.doPrivileged(AccessController.java:45)
at org.knopflerfish.bundle.console.Command.run(Command.java:226)
at java.lang.Thread.run(Thread.java:856)
最後に、pax-web-extender-war-0.8.0.jar (OPS4J Pax Web - Extender - War)
このエラー メッセージを実行しようとすると、次のエラー メッセージも表示されます。
[stderr] ## DEBUG: errors - FrameworkErrorEvent bundle #17
[stderr] ## DEBUG: errors - FrameworkErrorEvent throwable:
Couldn't start bundle: OPS4J Pax Web - Extender - WAR (#17) (due to: org.osgi.framework.BundleException: Bundle#17, unable to resolve: Missing package(s) or can not resolve all of the them:
org.osgi.service.http;version=[1.0.0,2.0.0) -- Could not resolve exporting bundle - org.osgi.service.http;version=1.2.0 Bundle[id=16,gen=0].
javax.servlet.http;version=2.1.0 -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=2.1.0 -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].)
org.osgi.framework.BundleException: Bundle#17, unable to resolve: Missing package(s) or can not resolve all of the them:
org.osgi.service.http;version=[1.0.0,2.0.0) -- Could not resolve exporting bundle - org.osgi.service.http;version=1.2.0 Bundle[id=16,gen=0].
javax.servlet.http;version=2.1.0 -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=2.1.0 -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].
at org.knopflerfish.framework.BundleImpl.getUpdatedState(BundleImpl.java:1259)
at org.knopflerfish.framework.BundleImpl.finalizeActivation(BundleImpl.java:312)
at org.knopflerfish.framework.PermissionOps.callFinalizeActivation(PermissionOps.java:265)
at org.knopflerfish.framework.BundleImpl.start(BundleImpl.java:295)
at org.knopflerfish.bundle.frameworkcommands.FrameworkCommandGroup.cmdStart(FrameworkCommandGroup.java:1634)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at org.knopflerfish.service.console.CommandGroupAdapter.execute(CommandGroupAdapter.java:256)
at org.knopflerfish.bundle.console.Command$2.run(Command.java:239)
at java.security.AccessController.doPrivileged(AccessController.java:45)
at org.knopflerfish.bundle.console.Command.run(Command.java:226)
at java.lang.Thread.run(Thread.java:856)
pax-web-jsp-1.0.2.jar (OPS4J Pax Web - Jsp Support)
また、このエラーメッセージが表示された開始しようとしました:
[stderr] ## DEBUG: errors - FrameworkErrorEvent bundle #15
[stderr] ## DEBUG: errors - FrameworkErrorEvent throwable:
Couldn't start bundle: OPS4J Pax Web - Jsp Support (#15) (due to: org.osgi.framework.BundleException: Bundle#15, unable to resolve: Missing package(s) or can not resolve all of the them:
javax.tools -- No providers found.
javax.servlet.resources;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.resources;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet.http;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].
javax.lang.model.util -- No providers found.
javax.lang.model.type -- No providers found.
javax.lang.model.element -- No providers found.
javax.lang.model -- No providers found.
javax.annotation.processing -- No providers found.)
org.osgi.framework.BundleException: Bundle#15, unable to resolve: Missing package(s) or can not resolve all of the them:
javax.tools -- No providers found.
javax.servlet.resources;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.resources;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet.http;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=[2.3.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].
javax.lang.model.util -- No providers found.
javax.lang.model.type -- No providers found.
javax.lang.model.element -- No providers found.
javax.lang.model -- No providers found.
javax.annotation.processing -- No providers found.
at org.knopflerfish.framework.BundleImpl.getUpdatedState(BundleImpl.java:1259)
at org.knopflerfish.framework.BundleImpl.finalizeActivation(BundleImpl.java:312)
at org.knopflerfish.framework.PermissionOps.callFinalizeActivation(PermissionOps.java:265)
at org.knopflerfish.framework.BundleImpl.start(BundleImpl.java:295)
at org.knopflerfish.bundle.frameworkcommands.FrameworkCommandGroup.cmdStart(FrameworkCommandGroup.java:1634)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at org.knopflerfish.service.console.CommandGroupAdapter.execute(CommandGroupAdapter.java:256)
at org.knopflerfish.bundle.console.Command$2.run(Command.java:239)
at java.security.AccessController.doPrivileged(AccessController.java:45)
at org.knopflerfish.bundle.console.Command.run(Command.java:226)
at java.lang.Thread.run(Thread.java:856)
エラー メッセージから私が理解したところによると、バンドルはこれらのパッケージを探していました。これを解決し、OSGi フレームワークを使用して Android で Java Web アプリケーションを正常に実行できる方法はありますか?
org.osgi.service.http;version=[1.1.0,2.0.0) -- Could not resolve exporting bundle - org.osgi.service.http;version=1.2.0 Bundle[id=16,gen=0].
javax.servlet.http;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet.http;version=2.5.0 Bundle[id=16,gen=0].
javax.servlet;version=[2.5.0,3.0.0) -- Could not resolve exporting bundle - javax.servlet;version=2.5.0 Bundle[id=16,gen=0].
javax.security.sasl -- No providers found.
javax.management.remote -- No providers found.
javax.management.modelmbean -- No providers found.
javax.management -- No providers found.