我已经花了几天时间,我仍然没有找到答案(我确实发现了问题要求)
我使用 grizzly 服务器(2.3版本)编写java代码,并设法使用多种资源(restful classes,java servlet等)。
URI uri = new URI("http://localhost....");
ResourceConfig rc = new ResourceConfig();
rc.registerClasses(aResource.class);
GrizzlyHttpServerFactory.createHttpServer(uri, rc);
我的目标是加载一个完整的 war 文件,而不是单个类,但我找不到办法。
所以问题是'如何在灰熊服务器中部署和运行 war 文件?'
答案 0 :(得分:1)
根据the Grizzly Javadoc你这样做:
GrizzlyWebServer ws = new GrizzlyWebServer("/var/www");
try {
ServletAdapter sa = new ServletAdapter();
sa.setRootFolder("/Path/To/Exploded/War/File");
sa.setServlet(new MyServlet());
ws.addGrizzlyAdapter(sa);
ws.start();
} catch (IOException ex) {
// Something when wrong.
}
然而,正如你所看到的,你首先必须"爆炸" WAR文件;即将其解压缩到文件系统中。
您似乎正在使用Jersey ResourceConfig
类。为了使您的方法有效,我认为您需要执行以下操作:
ResourceConfig.setClassLoader
对于记录,从压缩的WAR文件加载类更加费力,显然性能很差。 (如果你想看看如何做,Tomcat有这个功能......默认情况下被禁用。)
答案 1 :(得分:0)
目前无法将WAR文件部署到Grizzly 2.x.