gpt4 book ai didi

eclipse - Spring 上下文 :component-scan fails to find components in another Eclipse project dependency referenced in POM

转载 作者:行者123 更新时间:2023-12-04 11:54:46 25 4
gpt4 key购买 nike

我正在开发一个跨越两个 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>

我在 myservices 项目中有几个文件被注释为 spring @Component、@Service、@Configuration,但是当我在 Eclipse 中运行 GWT 应用程序时,组件扫描没有选择这些文件。作为测试,我尝试在 myclient 项目中放置一个 @Component 并成功创建。

我相信应用程序启动期间的以下日志条目表明了问题的根源
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 引用的项目上工作,而不必构建该项目,但经过多次试验,我无法使其正常工作。

最佳答案

确保在部署程序集(右键单击您的web项目并选择您的myclient项目的“部署程序集”)配置为部署myservices项目输出的jar。如果您使用的是maven,则m2e,m2e-wtp项目配置器应自动执行此部署程序集设置。

一旦您正确配置了部署程序集设置,现在当您使用 Eclispe 服务器适配器发布机制将项目部署到您的服务器时,一切都应该被部署,并且 myservices jar 将被放置在您的 myclient 项目的正确位置。

但请确保您使用的是最新版本的 m2e-wtp安装。这样,您在 pom.xml 和部署程序集中的配置将得到正确配置。

关于eclipse - Spring 上下文 :component-scan fails to find components in another Eclipse project dependency referenced in POM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com