Jruby:如何更改glassfish服务器上部署的war文件中的应用程序URL

时间:2017-09-28 14:49:27

标签: glassfish jruby jrubyonrails warbler

我在glassfish服务器上部署了应用程序。我的应用程序可以使用url localhost:8080 / test

访问

以下是我的warble.rb文件中的设置

Warbler::Config.new do |config|
  config.jar_name = 'test'
  config.webxml.jruby.min.runtimes = 2
  config.webxml.jruby.max.runtimes = 10
  config.includes = FileList['init.rb']
end

上面的设置创建名为“test.war”的war文件,因此应用程序url即localhost:8080 / test。我想要的是我想保留文件名,因为它应该是“test.war”但应用程序URL应该是localhost:8080 / test_application而不是localhost:8080 / test

1 个答案:

答案 0 :(得分:0)

来自Glassfish Application Deployment Guide(PDF)

  

部署Web模块时,如果未指定上下文根,则缺省值是不带.war扩展名的WAR文件的名称。 Web模块上下文根在服务器实例中必须是唯一的。

如果要更改上下文根,则必须在部署描述符中执行此操作。有几种方法可以做到这一点,但有了warbler最简单的可能是以下(虽然它是Glassfish特有的)。

  1. 创建名为' glassfish-web.xml'的文件。在您的Rails应用程序根目录中。它应该具有以下内容:

    <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
    <glassfish-web-app>
      <context-root>test_application</context-root>
    </glassfish-web-app>
    
  2. 将以下内容添加到warbler配置(warble.rb),以确保将此文件打包到应用程序war的WEB-INFO目录中:

    config.webinf_files += FileList["glassfish-web.xml"]
    
  3. 重新启动应用程序并重新部署。

  4. 现在可以在localhost:8080 / test_application访问它。