Java 初始化码头&x2B;运动衫

Java 初始化码头&x2B;运动衫,java,jersey-2.0,Java,Jersey 2.0,我正在尝试使用以下代码初始化Jetty: URI baseUri = UriBuilder.fromUri("http://localhost/").port(config.getPort()).build(); ResourceConfig resConfig = new ResourceConfig(GetFutureTimetableCommand.class); Server server = JettyHttpContainerFactory.createServer(baseUri,

我正在尝试使用以下代码初始化Jetty:

URI baseUri = UriBuilder.fromUri("http://localhost/").port(config.getPort()).build();
ResourceConfig resConfig = new ResourceConfig(GetFutureTimetableCommand.class);
Server server = JettyHttpContainerFactory.createServer(baseUri, resConfig);

WebAppContext context = new WebAppContext();
context.setDescriptor("WebContent/WEB-INF/web.xml");
context.setResourceBase("WebContent");
context.setContextPath("rest/*");
context.setParentLoaderPriority(true);
server.setHandler(context);
server.start();
我的资源如下所示:

@Path("/timetable")
public class GetFutureTimetableCommand extends CMSCommand {

@GET    
@Produces(MediaType.APPLICATION_JSON)
public CMSBean execute(@PathParam("param") String params) {
    System.out.println("GOOD");
    return new FutureTimetable(8202L, DateTime.now().plusDays(2));
}
}
并从浏览器:

http://localhost:8080/rest/timetable

但实际上什么都没有发生,我做错了什么???

我发现,在试图确定资源为什么没有执行时,启用该功能是非常宝贵的

将以下内容添加到
web.xml
中的Jersey Servlet定义中,并连接
JVisualVM
JConsole
以查看有关已部署资源的大量数据

<init-param>
   <param-name>jersey.config.server.monitoring.statistics.mbeans.enabled</param-name>
   <param-value>true</param-value>
</init-param>

jersey.config.server.monitoring.statistics.mbeans.enabled
真的
我很感激这不是你问题的答案,但希望能帮助你找到答案


Will

根据jersey文档,当jersey与jetty一起使用时,似乎只考虑根上下文路径(其他路径被忽略):

您可能需要使用以下命令更改上下文路径:

context.setContextPath("/");

当你们说“什么都没发生”的时候,你们的确切意思是什么?我在资源的“执行”方法中放了一个断点,它从未停止过。不幸的是,调试器可能有bug。在浏览器中会发生什么?空白页。一开始我使用Tomcat和Jersey 1.18,效果很好。但我决定在我的服务器中嵌入Jetty并升级到Jersey 2.5。。。