Bonsoir,
J’ai essayé de mettre au point un WebService en suivant les deux tutoriaux suivants :
- http://angelozerr.wordpress.com/2011...axwscxf_step1/
- http://angelozerr.wordpress.com/2011...axwscxf_step2/
Ces tutoriaux permettent de construire un serveur, mais l’étape 3 (step 3) , qui devait constituer la partie utilisatrice du WebService, n’a jamais été proposée par l’auteur.
J’ai donc essayé de la construire moi-même, mais je reçois un message d’erreur de la part du système, que je ne comprends pas bien. J’ai l’impression que l’objet renvoyé par Service.getPort() doit être une interface, plutôt qu’une implémentation de classe Java. Mais, dans ce cas, je ne vois pas bien la marche à suivre
La classe Java constituant le service, que l’obtient en suivant le tutorial est la suivante :
La même classe Java modifiée pour pouvoir implémenter un service :
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 @WebService(targetNamespace = "http://ws.sample.org/", portName = "HelloServiceImplPort", serviceName = "HelloServiceImplService") public class HelloServiceImpl extends Service { public String getVersion() { return "1.0"; } public String hello(String user) { return "Hello " + user + "!"; } }
La classe principale du client, que j'ai créé moi-même :
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 La classe Java que jai modifiée pour quelle puisse implémenter un Service : @WebService(targetNamespace = "http://ws.sample.org/", portName = "HelloServiceImplPort", serviceName = "HelloServiceImplService") public class HelloServiceImpl extends Service { public String getVersion() { return "1.0"; } public String hello(String user) { return "Hello " + user + "!"; } public HelloServiceImpl(URL wsdlLocation, QName serviceName) { super(wsdlLocation, serviceName); } }
Enfin, le message d'erreur que j'obtiens (exécution sous Ecipse) :
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 Classe principale du client : public class Main { public static void main(String[] args) throws Exception { try { URL url = new URL("file:C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/jaxwswithcx/wsdl/helloserviceimpl.wsdl") ; QName qname = new QName("http://ws.sample.org/", "HelloServiceImplService"); HelloServiceImpl service = new HelloServiceImpl(url, qname) ; HelloServiceImpl hello = service.getPort(HelloServiceImpl.class) ; } catch (Exception e) { System.out.println(e.getMessage()); } } }
org.sample.ws.HelloServiceImpl is not an interface
Partager