Spring-context:component-scan nicht finden-Komponenten in einem anderen Eclipse-Projekt die Abhängigkeit verwiesen POM
Arbeite ich an einer GWT-Webanwendung verteilt über zwei Eclipse-Projekte (myclient & myservice).
Den myclient Projekt Verweise auf die myservice Projekt über eine Abhängigkeit in der POM.
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myservices</artifactId>
<version>1.0.0</version>
</dependency>
Den myclient Projekt hat einen KRIEG-Verzeichnis src/main/webapp. Die Ausgabe-Ordner für die myclient Projekt ist src/main/webapp/WEB-INF/classes.
Den myclient Projekt hat eine Feder-Deskriptor application-context.xml mit den folgenden
<context:component-scan base-package="com.myproject.myclient, com.myproject.myservices"/>
und die 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>
Ich habe mehrere Dateien in der myservices-Projekt, kommentierte, wie der Frühling @Component, @Service, @ - Konfiguration, aber diese werden nicht aufgegriffen, indem die Komponente scan wenn ich die GWT-Anwendung in Eclipse. Als test habe ich experimentierte mit der Platzierung eine @Komponente in der myclient Projekt und dieser wurde erfolgreich erstellt.
Ich glaube, der folgende log-Eintrag beim starten der Anwendung zeigt die Quelle des Problems
org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved location pattern [classpath*:com/myproject/myservices/**/*.class] to resources []
den Standort Muster für die myclient-Projekt aufgelöst wird, um alle Ressourcen auf den classpath, aber für myservices keine Ressourcen gefunden werden.
Experimentierte ich mit dem Bau der myservices-Projekt JAR und platzieren diese JAR-Datei in den src/main/webapp/WEB-INF/lib-Ordner des myclient Projekt. Wenn ich dies mache die Komponente funktioniert das Scannen. Aber für die Entwicklung, die ich nicht haben will zu erstellen und kopieren der JAR-jedesmal, wenn ich änderungen an der myservices-Projekt. Ich kann mir vorstellen, dass die Komponente Scannen sollten arbeiten an einem Projekt verwiesen wird, durch die POM zimmerreserviereung, ohne das Sie das bauen, das Projekt aber nach viel Experimentieren, ich habe nicht in der Lage, damit es funktioniert.
- Welche IDE benutzt du ?
- Eclipse Helios
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher sein, dass in der Bereitstellung, Montage (rechts klicken Sie auf Ihren web-Projekt und wählen Sie "deployment assembly", Ihrer myclient-Projekt konfiguriert ist zum bereitstellen der Krug, der ausgegeben wird von der myservices-Projekt. Wenn Sie mit maven, die m2e, m2e-wtp-Projekt Konfiguratoren sollte dies tun-Bereitstellung Baugruppe-setup automatisch.
Sobald Sie die Bereitstellung Baugruppe-Einstellungen richtig konfiguriert, nun, wenn Sie ein Projekt bereitstellen, um Ihren server mit dem Eclispe-server-adapter veröffentlichen Mechanismus, sollte alles bekommen, eingesetzt und die myservices jar bekommen würde platziert in den richtigen Ort für Ihre myclient Projekt.
Aber stellen Sie sicher, dass Sie die neueste version von m2e-wtp. installiert. So ist Ihre Konfiguration in Ihrem pom.xml und-Bereitstellung Baugruppe richtig konfiguriert.
Teilen Sie Ihren application-context.xml in 2 separate Dateien:
myservices/src/main/resources/service-context.xml:
myclient/src/main/resources/client-context.xml:
Versuchen Sie dies :
Überprüfen Sie bitte die folgenden Dinge:
es ist offensichtlich, dass Ihre service-Glas ist nicht im Lieferumfang enthalten in Ihrem client-Projekt build path. dies ist die einzige Ursache.
Stellen Sie sicher, dass 3 Punkte:
Du besser mal schauen das tutorial
http://fusesource.com/docs/framework/2.2/deploy_guide/CXFServletDeploySpring.html