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 :
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
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>
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
Partager