2011-06-29 18 views
2

コマンドラインツールを使用してJava Webstartで配布できるモジュラーOSGiプロジェクトを作成するにはどうすればよいですか?コマンドラインツールを使用してWebstartとしてOSGiプロジェクトをデプロイ

私はinstructions to export a set of OSGi plugins from eclipseを見つけました。しかし、食の助けなしにそうするための指示は見つけるのが難しいです。私はantビルドスクリプトやその他のコマンドラインツールを使ってこれをやりたいと思います。

ここまでは私がこれまでに得たものです。 antを使用すると、すべてのプラグインバンドルがディレクトリにコピーされ、署名されます。その後、私はmyprogram.jnlpという名前の二JNLPファイルを作成しました

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp codebase="http://localhost/webstart" href="wrapper.jnlp"> 
    <information> 
     <title>My app</title> 
     <vendor>Me</vendor> 
     <offline-allowed/> 
    </information> 
    <resources> 
     <j2se version="1.5+" java-vm-args="-Xmx512M"/> 
     <jar href="org.eclipse.equinox.launcher.jar"/> 
     <extension name="Wrapper feature" href="myprogram.jnlp"/> 
    </resources> 
    <application-desc main-class="org.eclipse.equinox.launcher.WebStartMain"/> 
    <security> 
     <all-permissions/> 
    </security> 
</jnlp> 

wrapper.jnlpという名前のJNLPファイルを作成しました。私が展開して(コマンドラインから:javaws http://localhost/webstart/wrapper.jnlp)それを起動しようとすると

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp codebase="http://localhost/webstart" href="myprogram.jnlp"> 
    <information> 
     <title>My app</title> 
     <offline-allowed/> 
    </information> 
    <resources> 
     <j2se version="1.5+" java-vm-args="-Xmx512M"/> 
     <jar href="myapp.jar"/> 
     <jar href="derby.jar"/> 
     <jar href="commons-math-2.0.jar"/> 
      ...omitting a dozen more jar files... 
    </resources> 
    <application-desc main-class="myprogram.Main"/> 
    <security> 
     <all-permissions/> 
    </security> 
</jnlp> 

、アプリケーションのjarファイルがダウンロードされているように見えます。その後、ログファイルに次のエラーが表示されます。

!SESSION Wed Jun 29 13:43:52 CEST 2011 ----------------------------------------- 
!ENTRY org.eclipse.equinox.launcher 4 0 2011-06-29 13:43:52.448 
!MESSAGE Exception launching the Eclipse Platform: 
!STACK 
java.lang.NullPointerException 
    at java.util.Hashtable.put(Hashtable.java:411) 
    at org.eclipse.equinox.launcher.WebStartMain.basicRun(WebStartMain.java:78) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 
    at org.eclipse.equinox.launcher.WebStartMain.main(WebStartMain.java:57) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:590) 
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:887) 

私は間違っていると思いますか?次はどこで見ますか?

答えて

0

私はギアを切り替えて、コードとすべての依存関係を持つP2リポジトリを作成し、それからベアボーンのp2インストーラでそこから依存関係を取り出して(WebStartを迂回して)アプリケーションを起動したいと考えています。

+0

またはAntビルドに拡大し、OBR(OSGiのバンドルリポジトリとしてリポジトリにアイビーを使用するなどhttp://felix.apache.org/site/ apache-felix-osgi-bundle-repository.html)を参照してください。あなたがすでにhttp://www.toedter.com/blog/?p=45 – earcam

+0

earcamのような投稿を見たとします。あなたがリンクしているブログは、私の最初のリンクと同じ内容です。 – amarillion

+0

あなたの問題は、felixメーリングリストのRichard S. Hallの助けを借りて解決されたようです。今すぐ/すぐにすべてが動作することを願っています。 – earcam

0

これを見てくださいhttp://www.jbundle.org/osgi-webstart/「このサーブレットを使用して、OSGiアプリケーションをWebクライアントにデプロイしてください。」

ドキュメンテーションのmavenプラグインですが、 mavenプロジェクトなしで実行できるようです。

+0

私はjbundleを試していますが、そこには全く異なる問題があります。何らかの理由で、Eclipse環境内で正常に動作する特定の依存関係を解決できません。例えば、私がfelixシェルからこれを行う場合、 'repos add http://www.bigcat.unimaas.nl/~martina/repository/repository.xml deploy 'org.pathvisio.desktop''、私は長い依存関係の問題のリスト – amarillion

0

ソースによると、問題は、クラスパスにorg.eclipse.osgiバンドルが見つからないことが原因です。バンドルが正しく参照され、正しいマニフェストがあることを確認してください。

1

私は同じ問題がありました。私は私のラッパーJNLPに次のように指定して、それを解決:

<resources> 
     <!-- Reference to the launcher jar. The version segment must be updated to the version being used--> 
     <jar href="plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar" /> 
     <!-- Reference to the osgi jar. The version segment must be updated to the version being used--> 
     <jar href="plugins/org.eclipse.osgi_3.7.0.v20110613.jar" /> 

     ... 

    </resources> 
関連する問題