0

だから私はEclipseでwebappを書いていて、私のクラスの1つでサービスローダーを使いたいと思っています。問題は、META-INF/services のものをどこに置くかです。ここから(https://stackoverflow.com/a/3421191/2742995)私は見つけました:

しかし、理想的な方法は、プラグインの jar ファイルに含めることです。たとえば、プラグインが WEB-INF/lib/myplugin.jar としてバンドルされていて、プラグイン クラスが com.example.plugin.MyPlugin の場合、jar は次の構造を持つ必要があります。

myplugin.jar!/META-INF/services/com.example.plugin.MyPlugin

だから私はサービスローダーのものを含むモジュールに持っています、ソース: src/main/java/ を含む

  1. vcs.validation.* (ソースコードを含む)
  2. フォルダ: META-INF/services/vcs.validation.javatests.JavaTest 以下を含む:

    • Test1 (vcs.validation.javatests.Test1 を読み取ります) および
    • Test2 (vcs.validation.javatests.Test2 を読み取ります)

(インターフェイス vcs.validation.javatests.JavaTest には、Test1 と Test2 の 2 つの実装クラスがあります)

ただし、webapp 全体を war としてパッケージ化し、tomcat にデプロイすると、web-app/WEB-INF/classes/ フォルダーに META-INF/services/ が含まれません。ここで何が間違っていますか?

4

1 に答える 1

0

構造は次のとおりです。

Project
| Module
| | src 
|   | main 
|     | java 
|       | [ source code]      
|     | resources 
|       | META-INF 
|         | services 
|           | [service files] 

それ以外の:

Project
| Module
| | src 
|   | main 
|     | java 
|       | [source code]
|       | META-INF 
|         | services 
|           | [service files] 

このようにして、サービス ファイルは webapp/WEB-INF/classes/META-INF/services に展開されなくなりましたが、次のようにパッケージ化された jar に存在するだけです。

myplugin.jar!/META-INF/services/com.example.plugin.MyPlugin
于 2014-12-12T09:23:07.043 に答える