-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello. I’ve been trying to resolve this for most of the day but can’t
seem to figure it out. What makes it worse is that I’m not terribly
knowledgable about Java deployment, though I’ve deployed a few Lift apps
and thought I had more of a handle on it.
I’m trying to deploy Redmine 1.0.1. Everything seems to be set up just
fine, only if I access /, I get a directory listing of the webapp/
directory (I.e. what you’d normally find in the public/ directory of a
Rails app). Accessing any other URL of the app works just fine, but /
fails.
If I enable Jetty debugging, I see that RackHandler appears to be
called, but then the default handler is called immediately after. There
is definitely a blank route, though I did try setting it to ‘/’ with no
change.
I’m trying all of these tests connected directly to the Jetty server, so
it isn’t an issue between my web server and the container.
I’ve even tried changing the URL match pattern from /* to *, but with no
luck.
The most frustrating aspect of all of this is that I’m running a very
similar setup on a different host, though the versions of Redmine
differ. I’ve diffed the Jetty configs, and aside from the differing
virtual host names, they’re identical. So I don’t know why this fails
today but worked earlier.
It looks like Redmine freezes Rails to 2.3.5. Here is my
config/warble.rb. web.xml is unmodified from Warble 1.2.1:
Disable automatic framework detection by uncommenting/setting to false
Warbler.framework_detection = false
Warbler web application assembly configuration file
Warbler::Config.new do |config|
Features: additional options controlling how the jar is built.
Currently the following features are supported:
- gemjar: package the gem repository in a jar file in WEB-INF/lib
config.features = %w(gemjar)
Application directories to be included in the webapp.
config.dirs = %w(app config lib log vendor tmp)
Additional files/directories to include, above those in config.dirs
config.includes = FileList[“db”]
Additional files/directories to exclude
config.excludes = FileList[“lib/tasks/*”]
Additional Java .jar files to include. Note that if .jar files are
placed
in lib (and not otherwise excluded) then they need not be mentioned
here.
JRuby and JRuby-Rack are pre-loaded in this list. Be sure to
include your
own versions if you directly set the value
config.java_libs += FileList[“lib/java/*.jar”]
Loose Java classes and miscellaneous files to be placed in
WEB-INF/classes.
config.java_classes = FileList[“target/classes/**.*”]
One or more pathmaps defining how the java classes should be copied
into
WEB-INF/classes. The example pathmap below accompanies the
java_classes
configuration above. See
http://rake.rubyforge.org/classes/String.html#M000017
for details of how to specify a pathmap.
config.pathmaps.java_classes << “%{target/classes/,}p”
Path to the pre-bundled gem directory inside the war file. Default
is ‘WEB-INF/gems’. Specify path if gems are already bundled
before running Warbler. This also sets ‘gem.path’ inside web.xml.
config.gem_path = “WEB-INF/vendor/bundler_gems”
Bundler support is built-in. If Warbler finds a Gemfile in the
project directory, it will be used to collect the gems to bundle
in your application. If you wish to explicitly disable this
functionality, uncomment here.
config.bundler = false
An array of Bundler groups to avoid including in the war file.
Defaults to [“development”, “test”].
config.bundle_without = []
Files for WEB-INF directory (next to web.xml). This contains
web.xml by default. If there is an .erb-File it will be processed
with webxml-config. You may want to exclude this file via
config.excludes.
config.webinf_files += FileList[“jboss-web.xml”]
Other gems to be included. You need to tell Warbler which gems
your application needs so that they can be packaged in the war
file.
The Rails gems are included by default unless the vendor/rails
directory is present.
config.gems += [“rack”, “activerecord-jdbcpostgresql-adapter”,
“jruby-openssl”, “ruby-openid”, “bluefeather”]
config.gems << “tzinfo”
Uncomment this if you don’t want to package rails gem.
config.gems -= [“rails”]
The most recent versions of gems are used.
You can specify versions of gems by using a hash assignment:
config.gems[“rails”] = “2.0.2”
You can also use regexps or Gem::Dependency objects for flexibility
or
fine-grained control.
config.gems << /^merb-/
config.gems << Gem::Dependency.new(“merb-core”, “= 0.9.3”)
Include gem dependencies not mentioned specifically. Default is
true, uncomment to turn off.
config.gem_dependencies = false
Array of regular expressions matching relative paths in gems to be
excluded from the war. Defaults to empty, but you can set it like
below, which excludes test files.
config.gem_excludes = [/^(test|spec)//]
Files to be included in the root of the webapp. Note that files in
public
will have the leading ‘public/’ part of the path stripped during
staging.
config.public_html = FileList[“public//*", "doc//*”]
Pathmaps for controlling how public HTML files are copied into the
.war
config.pathmaps.public_html = [“%{public/,}p”]
Pathmaps for controlling how application files are copied into the
.war
config.pathmaps.application = [“WEB-INF/%p”]
Name of the war file (without the .war) – defaults to the basename
of RAILS_ROOT
config.war_name = “mywar”
Name of the MANIFEST.MF template for the war file. Defaults to a
simple
MANIFEST.MF that contains the version of Warbler used to create the
war file.
config.manifest_file = “config/MANIFEST.MF”
When using the ‘compiled’ feature and specified, only these Ruby
files will be compiled. Default is to compile all .rb files in
the application.
config.compiled_ruby_files = FileList[‘app/**/*.rb’]
Value of RAILS_ENV for the webapp – default as shown below
config.webxml.rails.env = ENV[‘RAILS_ENV’] || ‘production’
Application booter to use, one of :rack, :rails, or :merb
(autodetected by default)
config.webxml.booter = :rails
When using the :rack booter, “Rackup” script to use.
- For ‘rackup.path’, the value points to the location of the rackup
script in the web archive file. You need to make sure this file
gets included in the war, possibly by adding it to config.includes
or config.webinf_files above.
- For ‘rackup’, the rackup script you provide as an inline string
is simply embedded in web.xml.
The script is evaluated in a Rack::Builder to load the application.
Examples:
config.webxml.rackup.path = ‘WEB-INF/hello.ru’
config.webxml.rackup = %{require ‘./lib/demo’; run
Rack::Adapter::Camping.new(Demo)}
config.webxml.rackup = require ‘cgi’ &&
CGI::escapeHTML(File.read(“config.ru”))
Control the pool of Rails runtimes. Leaving unspecified means
the pool will grow as needed to service requests. It is recommended
that you fix these values when running a production server!
config.webxml.jruby.min.runtimes = 2
config.webxml.jruby.max.runtimes = 4
JNDI data source name
config.webxml.jndi = ‘jdbc/rails’
end
Thanks.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkx24boACgkQIaMjFWMehWIxUgCfSEn2QUkcHa1r8AQojSsDU6pz
H5MAnjX4g37ozfPEog9JOP9fE4xYa8ZC
=l+4e
-----END PGP SIGNATURE-----
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email