私は、2 つの Eclipse プロジェクト (myclient と myservice) に分割された GWT Web アプリケーションに取り組んでいます。
myclient プロジェクトは、POM の依存関係を介して myservice プロジェクトを参照します。
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myservices</artifactId>
<version>1.0.0</version>
</dependency>
myclient プロジェクトには WAR ディレクトリ src/main/webapp があります。myclient プロジェクトの出力フォルダーは src/main/webapp/WEB-INF/classes です。
myclient プロジェクトには、次の Spring 記述子 application-context.xml があります。
<context:component-scan base-package="com.myproject.myclient, com.myproject.myservices"/>
および web.xml
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
...
</web-app>
spring @Component、@Service、@Configuration のアノテーションが付けられた myservices プロジェクトにいくつかのファイルがありますが、これらは Eclipse で GWT アプリケーションを実行するときにコンポーネント スキャンで検出されません。テストとして、@Component を myclient プロジェクトに配置して実験したところ、これは正常に作成されました。
アプリケーションの起動中の次のログ エントリが問題の原因を示していると思います
org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved location pattern [classpath*:com/myproject/myservices/**/*.class] to resources []
myclient プロジェクトのロケーション パターンは、クラスパス上のすべてのリソースに解決されますが、myservices ではリソースが見つかりません。
myservices プロジェクトの JAR を作成し、この JAR を myclient プロジェクトの src/main/webapp/WEB-INF/lib フォルダーに配置してみました。これを行うと、コンポーネントのスキャンが機能します。ただし、開発のために、myservices プロジェクトに変更を加えるたびに JAR をビルドしてコピーする必要はありません。コンポーネントのスキャンは、そのプロジェクトをビルドする必要なく、POM を介して参照されるプロジェクトで機能するはずですが、多くの実験の後、これを機能させることができませんでした。