2014-01-05 53 views
0

我想用下面的代码来初始化码头:初始化码头+新泽西

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 

但是什么也没有发生,我做错了什么?

+0

当你说“什么都没有发生”时,你是什么意思? –

+0

我在资源的'execute'方法内部放置了一个断点,它永远不会停在那里。 – Shvalb

+0

不幸的是,调试器可能有错误。在浏览器中,发生了什么? –

回答

2

我发现在试图确定资源未执行的原因时启用MBeans with monitoring statistics是非常宝贵的。

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

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

我明白这不是您的问题的答案,但希望能帮助您找到它。

请问