czwartek, 25 sierpnia 2011

Usługa sieciowa JAX-WS

W niniejszym poście przedstawię jak utworzyć usługę sieciową w specyfikacji JAX-WS.

Kod żródłowy znajduje się tutaj.

1. Tworzymy szkielet projektu
mvn archetype:generate -DgroupId=pl.pkarpik.webservice -DartifactId=jaxws -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

2. Upewniamy się, czy w utworzonym projekcie jaxws istnieje nastepujaca struktura katalogu
../jaxws/src/main/java/pl/pkarpik/webservice
Jeżeli nie istnieje to należy ją stworzyć.

3. Edytujemy plik pom.xml.
Dodajemy jedną zależność

        .
        .
        
            com.sun.xml.ws
            jaxws-rt
            compile
            2.2.5
        
        .
        .
    


4. Tworzymy interfejs usługi.
package pl.pkarpik.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;



@WebService(targetNamespace="http://webservice.pkarpik.pl", name="HelloService", portName="HelloServicePort")
public interface HelloService {
 
 @WebMethod
 public String sayHello(@WebParam(name = "imie") String name);
 
}


5. Tworzymy klasę implementacją interfejs usługi.
package pl.pkarpik.webservice.impl;

import javax.jws.WebService;

import pl.pkarpik.webservice.HelloService;

@WebService(endpointInterface = "pl.pkarpik.webservice.HelloService")
public class HelloServiceImpl implements HelloService 
{

 public String sayHello(String imie) {
  return "Hello "+imie;
 }

}

6. W katalogu WEB-INF tworzymy plik sun-jaxws.xml.


    




7. Edytujemy plik web.xml.


    JAX-WS Hello Service
  
     
        
            com.sun.xml.ws.transport.http.servlet.WSServletContextListener
        
    
    
        jaxws
        com.sun.xml.ws.transport.http.servlet.WSServlet
    
    
        jaxws
        /helloService
    


8. Uruchamiamy projekt.

~/workspace/jaxws$ mvn clean install tomcat:run

Sprawdźmy czy wszystko zrobiliśmy prawidłowo, otwierając w przeglądarce adres
http://localhost:8080/jaxws/helloServices

To wszystko. Usługa jest gotowa.

W następnym poście przedstawie sposób wygenerowania klienta dla usługi sieciowej przy pomocy JAX-WS Maven Plugin.