Bonjour je travaille sur spring ws et j'ai le problème suivant:
voici mo .xsd
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring xml:lang="en">No adapter for endpoint [com.hr.service.StubSupressionService@ded0f0]: Does your endpoint implement a supported interface like MessageHandler or PayloadEndpoint?</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
mon servlet.xml
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 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:supression="http://com.hr.ws/schema/supression" targetNamespace="http://com.hr.ws/schema/supression" elementFormDefault="qualified"> <xs:element name="SupressionUserRequest" type="supression:SupressionUserRequestType"/> <xs:element name="SupressionUserResponse" type="supression:SupressionUserResponseType"/> <xs:complexType name="SupressionUserRequestType"> <xs:sequence> <xs:element name="CIN" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="SupressionUserResponseType"> <xs:sequence> <xs:element name="auteur" type="xs:string"/> <xs:element name="texte" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
mon endpoint :
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
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
56
57
58
59 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- <bean id="insertionEndpoint" class="com.hr.ws.InsertionEndpoint"> <constructor-arg ref="hrService"/> </bean> <bean id="hrService" class="com.hr.service.StubinsertionService"/> <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> <property name="mappings"> <props> <prop key="{http://com.hr.ws/schema/insertion}InsertionRequest">insertionEndpoint</prop> </props> </property> <property name="interceptors"> <list> <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"></bean> </list> </property> </bean>--> <bean id="supressionEndpoint" class="com.hr.service.StubSupressionService"/> <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> <property name="mappings"> <props> <prop key="{http://com.hr.ws/schema/supression}SupressionUserRequest">supressionEndpoint</prop> </props> </property> <property name="interceptors"> <list> <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"></bean> </list> </property> </bean> <bean id="supression" class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition"> <property name="builder"> <bean class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder"> <property name="schema" value="/WEB-INF/supression.xsd"/> <property name="portTypeName" value="Supression"/> <property name="locationUri" value="http://localhost:8080/spring-wsTest/supressionService/"/> </bean> </property> </bean> </beans>
et mon StubSupressionService
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
31
32
33
34
35
36
37
38
39
40
41
42
43 package com.hr.ws; import org.jdom.Element; import org.jdom.Namespace; import org.jdom.xpath.XPath; import org.springframework.ws.server.endpoint.AbstractJDomPayloadEndpoint; import com.hr.service.SupressionService; public class SupressionEndpoint extends AbstractJDomPayloadEndpoint{ SupressionService supressionService; public SupressionEndpoint(SupressionService supressionService){ this.supressionService = supressionService; } protected Element invokeInternal(Element request) throws Exception { Namespace namespace = Namespace.getNamespace("supression", "http://com.hr.ws/schema/supression"); // Création des requête XPath pour récupérer les informations XPath CINExpression=XPath.newInstance("//supression:SupressionRequest/supression:CIN"); CINExpression.addNamespace(namespace); // Récupération des informations à partir de la requête String CIN = CINExpression.valueOf(request); // Appel au service pour la traduction String[] res = supressionService.supprimerUser(CIN); // Création de la réponse*/ Element root = new Element("SupressionResponse", namespace); Element auteur = new Element("auteur", namespace); auteur.setText(res[0]); Element texteTraduit = new Element("texte", namespace); texteTraduit.setText(res[1]); root.addContent(auteur); root.addContent(texteTraduit); supressionService.supprimerUser(CIN); return root;
Merci!
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 package com.hr.service; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class StubSupressionService implements SupressionService { private static final Log logger = LogFactory.getLog(StubSupressionService.class); public String[] supprimerUser(String CINUSE){ String s[]= new String[2]; ConnectionDriver conn=new ConnectionDriver(); String P = null; P ="DELETE FROM tablename WHERE CINUSE = 'CINUSE'"; conn.executeQuery(P); s[0]= new String("AAAA"); s[1]= new String("CCCC"); return s; } }
Partager