在 grizzly 服务器中部署 war 个文件
Deploy war file in a grizzly server
我已经在这上面花了几天时间了,但我仍然没有找到答案(我确实找到了关于这个的问题)
我正在使用 java 编码,使用 grizzly 服务器(2.3 版本)并且我已经设法使用多种资源(restful 类、java servlet 等)。
URI uri = new URI("http://localhost....");
ResourceConfig rc = new ResourceConfig();
rc.registerClasses(aResource.class);
GrizzlyHttpServerFactory.createHttpServer(uri, rc);
不过,我的目标是加载整个 war 文件而不是单个 类,但我还没有找到实现它的方法。
所以问题是'how can i deploy and run a war file inside a grizzly server?'
根据 the Grizzly Javadoc 你是这样做的:
为 Servlet 提供服务的同步 Web 服务器
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.
}
但是,如您所见,您首先必须 "explode" WAR 文件;即解压到文件系统中。
您似乎在使用球衣 ResourceConfig
class。为了使您的方法奏效,我认为您需要执行以下操作:
- 解压缩 WAR 文件。
- 创建一个 URLClassloader 实例,从“/WEB-INF/classes”加载“/WEB-INF/lib”中的 JAR 等。
- 通过调用
ResourceConfig.setClassLoader
注册
郑重声明,class从打包的 WAR 文件中加载需要更多的精力,而且性能显然很差。 (如果您想了解如何操作,Tomcat 具有此功能...默认情况下禁用。)
目前无法将 WAR 文件部署到 Grizzly 2.x。
我已经在这上面花了几天时间了,但我仍然没有找到答案(我确实找到了关于这个的问题)
我正在使用 java 编码,使用 grizzly 服务器(2.3 版本)并且我已经设法使用多种资源(restful 类、java servlet 等)。
URI uri = new URI("http://localhost....");
ResourceConfig rc = new ResourceConfig();
rc.registerClasses(aResource.class);
GrizzlyHttpServerFactory.createHttpServer(uri, rc);
不过,我的目标是加载整个 war 文件而不是单个 类,但我还没有找到实现它的方法。
所以问题是'how can i deploy and run a war file inside a grizzly server?'
根据 the Grizzly Javadoc 你是这样做的:
为 Servlet 提供服务的同步 Web 服务器
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.
}
但是,如您所见,您首先必须 "explode" WAR 文件;即解压到文件系统中。
您似乎在使用球衣 ResourceConfig
class。为了使您的方法奏效,我认为您需要执行以下操作:
- 解压缩 WAR 文件。
- 创建一个 URLClassloader 实例,从“/WEB-INF/classes”加载“/WEB-INF/lib”中的 JAR 等。
- 通过调用
ResourceConfig.setClassLoader
注册
郑重声明,class从打包的 WAR 文件中加载需要更多的精力,而且性能显然很差。 (如果您想了解如何操作,Tomcat 具有此功能...默认情况下禁用。)
目前无法将 WAR 文件部署到 Grizzly 2.x。