我在使用嵌入式碼頭和澤西島的寧靜Web服務時遇到問題。我從一個ecplise應用程序內部啓動了碼頭服務器,並嘗試使用運動服客戶端與服務器進行通信。使用碼頭和澤西島的Restful Web服務返回404
我建基於本教程中的RESTful Web服務:http://jlunaquiroga.blogspot.se/2014/01/restful-web-services-with-jetty-and.html
我遇到了一些問題,遷移從澤西島的1.x到2.x的教程,但最後我得到了web服務器運行起來。現在,問題是它不響應來自客戶端(或瀏覽器)的請求。有誰知道爲什麼?
這裏是我的代碼:
提供商包:
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>" ;
}
}
碼頭嵌入式服務器:
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}}
我應該提到我使用的是Jetty 9.2.0.RCO和JavaSE-1.7和Jersey 2.12。 – 2014-09-03 14:15:33
如果有任何幫助: + = [email protected] - STARTED + = org.glassfish.jersey.servlet.ServletContainer-1b05ad2 @ 3c64e64b == org.glassfish.jersey.servlet.ServletContainer,1 ,true - STARTED + -jersey.config.server.provider.packages = org.eclipse.eatop.jetty.helloworld.rest + - [/*]=>org.glassfish.jersey.servlet.ServletContainer-1b05ad2 + = org.eclipse.jetty.servlet.ServletHandler $ Default404Servlet-980200 @ 76a611b5 == org.eclipse.jetty.servlet.ServletHandler $ Default404Servlet,-1,false - STARTED + - [/]=>org.eclipse.jetty.servlet。 ServletHandler $ Default404Servlet-980200 – 2014-09-03 14:49:23