[Spring-Xfire-JSR181] Web services ?
Bonjour,
Voila, après 3 jours à chercher sur la toile sans succès, je me tourne vers vous pour ce qui est je suppose un erreur bête de ma part (je débute avec ces 3 technologies...)
Ma config : Spring - Xfire - Hibernate - Tomcat 5.5.23 - netbeans 5.5
Voici la trace de mon tomcat :
Code:
1 2 3 4 5 6 7 8
| javax.servlet.ServletException: No adapter for handler [org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping@147e0ba]: Does your handler implement a supported interface like Controller?
org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1026)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:818)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:754)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:399)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:354)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
D'ou provient elle ? Aurais-je oublié ou mal configuré quelque chose ? Est ce un problème de version entre mon tomcat et les librairies que j'essaye d'utiliser ?
Je débute avec spring et j'avoue que je galère un peu pour comprendre clairement comment manager les fichiers xml et leurs paramètres. J'essaye de m'inspirer des différents tutos que je trouve par ci par la, mais c'est pas évident quand on découvre à la fois spring, Xfire les annotations et hibernate.
Voici mes fichiers de config (du moins ceux qui me semblent impliqués)
web.xml
Code:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/META-INF/context.xml
/WEB-INF/conf/spring/applicationContext*.xml;
/WEB-INF/conf/spring/xfire-servlet.xml;
classpath:org/codehaus/xfire/spring/xfire.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderServlet
</listener-class>
</listener>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/conf/spring/xfire-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>Database Connection Pool</description>
<res-ref-name>jdbc/catalyseur</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app> |
xfire-servlet.xml
Code:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
<bean id="xfireServiceTemplate"
class="org.codehaus.xfire.spring.remoting.XFireExporter"
abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
<property name="style" value="document" />
<property name="use" value="literal" />
</bean>
<bean id="jaxbTypeMappingRegistry" class="org.codehaus.xfire.jaxb2.JaxbTypeRegistry"
init-method="createDefaultMappings" singleton="true"/>
<bean id="webAnnotations"
class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations"/>
<bean id="handlerMapping"
class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="typeMappingRegistry">
<ref bean="xfire.typeMappingRegistry"/>
</property>
<property name="xfire">
<ref bean="xfire"/>
</property>
<property name="webAnnotations">
<ref bean="webAnnotations"/>
</property>
</bean>
<!--NOTE : l erreur semble provenir de cette déclaration de bean -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/">
<ref bean="handlerMapping"/>
</entry>
</map>
</property>
</bean>
<bean id="metalWebService"
class ="catalyseur.web.ws.impl.MetalWebServiceImpl"/> |
applicationContext.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
- <bean id="metalManager" class="catalyseur.service.impl.MetalManagerImpl">
- <property name="metalDAO">
<ref bean="metalDAO" />
</property>
</bean>
- <bean id="metalWebService" class="catalyseur.web.ws.impl.MetalWebServiceImpl">
- <property name="metalManager">
<ref bean="metalManager" />
</property>
</bean>
</beans> |
J'espère que j'ai été assez clair dans ma question, parce que ca fait maintenant une bonne semaine que j'essaye de publier un webservice avec cette combinaison de technologies et... je me retiens de jeter le portable par la fenêtre :bug:
Une idée ? Une solution ? Une piste de reflexion ?
merci d'avance pour vos réponses