5

私はglassfishv3でj2eeアプリを開発しています。これは、jboss5アプリサーバーにデプロイされたEJBをリモートで呼び出します。これが機能するためには、私のアプリはクラスパスにjbossクライアントjarを持っている必要があります。クライアントのjarファイルをアプリケーションと一緒にパッケージ化することでこれを行うことができましたが、これは約10 MBのサイズを消費するため、アプリのアップロードが問題になります。

これらのjarファイルを別の場所に配置して、gfがそれらを取得し、アプリで保持する必要がないようにするにはどうすればよいですか?

4

4 に答える 4

1

必要に応じて、それらをサーバーのクラスパスに入れることができます。ドメインのlibディレクトリに移動します。

于 2010-08-18T12:19:02.797 に答える
1

Glassfish ドメインの domain.xml で、java-config タグの classpath-suffix 属性を使用して、その特定のドメインの Glassfish のクラスパスの一部である必要がある場所を指すことができます。

于 2010-08-24T12:07:11.193 に答える
1

jar の場合はこれで問題ありませんが、プロパティ ファイルの場合は別です。それらをWARに入れない限り、より困難になる傾向があります(つまり、完全な再デプロイなしでは更新できません)。

xxx.properties を config フォルダーに配置して、次の domain.xml 行を適応させようとしました

 <java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="${com.sun.aas.instanceRoot}/MY_VALUE" classpath-suffix="">
      ...
 </java-config>

MY_VALUE は次の値を取ります:

  1. 構成
  2. 設定/
  3. config/xxx.properties

classpath-suffix で同じことを試みても、どちらも役に立ちませんでした。

次の行でクラスパスを表示するように Web アプリに要求します。

String path = System.getProperty("java.class.path");
LOG.info("Classpath is : '" + path + "'.");

値が取得されたことを示しました...しかし、プロパティファイルは ClassLoader.getResourceAsInputStream() からアクセスできませんでした

于 2013-08-05T17:10:54.333 に答える
0

オプション 1 : ライブラリ オプションを使用して、GF3 の展開中にこれを処理できます。これは、GF3 の展開画面に表示される内容です。

ライブラリ JAR ファイルのコンマ区切りリスト。ライブラリ JAR ファイルを相対パスまたは絶対パスで指定します。instance-root/lib/applibs からの相対パスを指定します。ライブラリは、指定された順序でアプリケーションで使用できるようになります。

デプロイにコマンドラインを使用している場合は、asadmin コマンドで --libraries オプションを使用してください。

アンデプロイが行われるたびに注意する必要があるため、これは最適なオプションではない可能性があります。ただし、再デプロイの場合は、この設定を保持する必要があります。

オプション 2 : Glassfish domainname/lib ディレクトリに配置します。再起動後、自動的に取得され、同じドメイン内のすべてのアプリで利用できるようになります。

于 2012-09-05T18:44:53.920 に答える