0

いくつかの Jersey Web サービスを含む .jar を作成しました。その .jar を他のプロジェクトにインポートしたいと考えています。これらの Web サービスは、ローカル コードがリモート サービス プロバイダーとリンクするためのハンドラー/プロキシのように機能します。

そのため、.jar ドキュメントをプロジェクトにインポートし、次のweb.xmlように構成します。

<servlet>
  <servlet-name>Services</servlet-name>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.package.for.services.in.current.project, com.package.for.services.in.jar</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>Services</servlet-name>
  <url-pattern>/s/*</url-pattern>
</servlet-mapping>

しかし、プロジェクトを実行すると、指定された Web サービスcom.package.for.services.in.jarが見つかりません。

.jar ドキュメントはビルド パスにあります。私は何を間違っていますか?外部ライブラリから Web サービスを実行することはできませんか?

前もって感謝します。

4

1 に答える 1

0

この投稿から答えを見つけました: Jersey REST The ResourceConfig instance does not contain any root resource classes

PackagesResourceConfig クラスは、パッケージ内のクラスを見つけるために、パッケージの名前を持つディレクトリを持つことに依存します。Eclipse に戻ると、[エクスポート ... > Jar ] ダイアログの下部に [ディレクトリ エントリの追加] のオプションが見つかりました。これをオンにして、jar を再度エクスポートすると、スキャンによってリソース クラスが検出されました。ビルド環境で同等のオプションを見つける必要があります。

于 2015-05-16T15:37:43.473 に答える