Bonjour,

J'ai un problème avec la configuration de mon webservice CXF et Spring.

Alors j'ai trouvé plein de doc, et je pense avoir scrupuleusement respecté ce qui a été indiqué.

D'ailleurs si je fais un "mvn clean install" sur mon projet, et que je dépose le fichier war dans le dossier webapps de mon Tomcat, tout marche !

Cependant, quand j'essaie de lancer mon application depuis eclipse (et j'ai le meme probleme lorsque j'essaie de livrer mon appli en environnement de dev), j'ai ce message d'erreur
:

1 juil. 2011 15:22:54 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsReportCampaignManager': Cannot resolve reference to bean 'webServReportCampaignManagerImpl' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'webServReportCampaignManagerImpl' is defined
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'webServReportCampaignManagerImpl' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 32 more
1 juil. 2011 15:22:54 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart



Voici mon fichier de config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context.xsd
	http://cxf.apache.org/jaxws 
	http://cxf.apache.org/schemas/jaxws.xsd">
 
	<!-- scan les services du package et active les annotations -->
	<context:component-scan base-package="mon.package.ws.service">
		<context:include-filter type="annotation" expression="javax.jws.WebService" />
	</context:component-scan>
 
	<!-- Import de la configuration spring des projets dépendants -->
	<import resource="classpath*:applicationContext.xml" />
 
	<!-- Imports specifiques CXF pour le webservice -->
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
 
	<!-- address: adresse ou sera accessible le webservice "manager" -->
	<!-- implementor: #managerImpl correspond a l'id du bean correspondant a la classe ManagerImpl -->
	<jaxws:endpoint id="wsReportCampaignManager" implementor="#webServReportCampaignManagerImpl" address="/wsReportCampaignManager" />
 
</beans>
et voici l'interface et son implémentation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
@WebService
public interface WebServReportCampaignManager {
 
	@WebMethod
	public ReportCampaign getReportCampaignByCampaignId(@WebParam(name = "idcamp") Long idcamp);
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@WebService(endpointInterface = "mon.package.ws.service.WebServReportCampaignManager")
public class WebServReportCampaignManagerImpl implements WebServReportCampaignManager {
 
	@Autowired
	private ReportCampaignManager reportCampaignManager;
 
	@Autowired
	private ReportContactManager reportContactManager;
 
	private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
	public ReportCampaign getReportCampaignByCampaignId(Long idcamp) {
		logger.info("appel de getReportCampaignByCampaignId avec l'id : "+idcamp);
		ReportCampaign reportCampaign = reportCampaignManager.getReportCampaignByCampaignId(idcamp);		
 
		logger.info("fin de l'appel getReportCampaignByCampaignId");
		return reportCampaign;
	}
 
	public WebServReportCampaignManagerImpl() {
	}
 
}

Alors si vous avez une idée d'où peut venir le problème...

Merci de m'éclairer parce que je sèche là...

Pour info j'utilise Spring 3.0.5 et Tomcat 5.5 (mais ca fait pareil sous Tomcat 6)

Peipsy