У меня проблемы с моей спокойной веб-службой, использующей встроенный причал и джерси. Я запускаю причальный сервер изнутри приложения ecplise и пытаюсь связаться с сервером с помощью клиента jersey.
Я создал спокойную веб-службу на основе этого руководства: http://jlunaquiroga.blogspot.se/2014/01/restful-web-services-with-jetty-and.html
У меня были проблемы с переносом учебника с Jersey 1.x на 2.x, но, наконец, я запустил и запустил веб-сервер. Теперь проблема в том, что он не отвечает на запросы от клиента (или браузера). Кто-нибудь знает почему?
Вот мой код:
Пакет поставщика:
package org.eclipse.eatop.jetty.helloworld.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/xmlServices")
public class XMLProjectService {
@GET
@Produces(MediaType.TEXT_XML)
public String getProject()
{
return "<?xml version=\"1.0\"?>" + "<hello> hello world </hello>" ;
}
}
Встроенный сервер Jetty:
public Object execute(ExecutionEvent event) throws ExecutionException {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder sh = new ServletHolder(new ServletContainer());
sh.setInitOrder(1);
sh.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "org.eclipse.eatop.jetty.helloworld.rest");
context.addServlet(sh, "/*");
try {
server.start();
} catch (Exception e) {
System.out.println("Unable to start jetty web server");
e.printStackTrace();
}
return null;
}
Клиент:
public class Test {
public static void main(String[] args) {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(getBaseURI()).path("xmlServices");
System.out.println(target.request("text/xml").get());
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/").build();
}
}
Результат я получаю:
InboundJaxrsResponse{ClientResponse{method=GET, uri="http://localhost:8080/xmlServices", status=404, reason=Not Found}}