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.