Bonjour tout le monde;,
je voudrai savoir comment peut on procéder afin de passer des données via une transaction soap.
J'ai essayé avec ce code , mais ça ne marche pas, les valeur récupérées sont nulles
code d'mplémentation Service:
et là c'est le code d'interceptor :
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 @WebService(endpointInterface = "foo.HelloWorld") @OutInterceptors (interceptors = {"foo.MyLoggingInInterceptor"}) public class HelloWorldImpl implements HelloWorld { @Resource private WebServiceContext wsctx; public String sayHi(String text) { final MessageContext messageContext = wsctx.getMessageContext(); messageContext.put("keyCode", "blah"); return "Hello " + text; } }
Le problème c'est que toutes les valeurs sont nulles.
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 public class MyLoggingInInterceptorextends AbstractSoapInterceptor { /*..*/ public MyLoggingInInterceptor() { super(Phase.PRE_PROTOCOL); addAfter(ReadHeadersInterceptor.class.getName()); addAfter(EndpointSelectionInterceptor.class.getName()); } public void handleMessage(SoapMessage message) throws Fault { String oo = (String) message.get("keyCode"); String aa = (String) message.getExchange().get("keyCode"); String ss = (String) message.getExchange().getService().get("keyCode"); String dd = (String) message.getExchange().getSession().get("keyCode"); System.out.println("o: " + oo ); System.out.println("a: " + aa ); System.out.println("s: " + ss ); System.out.println("d: " + dd ); } }
a noter que j'arrive a faire passer des données dans l'autre sens , c'est à dire de l'intercepteur vers le service.
En résumé : je voudrai savoir comment faire passer une donnée depuis le service vers l'intercepteur en CXF.
Merci pour votre aide
Partager