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 :

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 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
18
19
20
21
22
23
24
25
 
 
La classe Java que j’ai modifiée pour qu’elle 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);
	}
 
}
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
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());
	}
 
	}
}
Enfin, le message d'erreur que j'obtiens (exécution sous Ecipse) :

org.sample.ws.HelloServiceImpl is not an interface