Re: [jruby-user] Debugging JRuby running within a Java process

Chason Choate <[email protected]> Mon, 12 Jan 2015 11:25:18 -0600
Newsgroups gmane.comp.lang.jruby.user
Message-ID <CADgFOvpdoqE22-PDBPneiqiC12rsOP+dQ0X2Smaxrz1+9CeutA@mail.gmail.com>
Thanks Christian,

I'll be sure to give that a shot and let everyone know how it unfolds.

On Mon, Jan 12, 2015 at 1:17 AM, Christian MICHON <
[email protected]> wrote:

> I would suggest using pry-remote (https://rubygems.org/gems/pry-remote)
> instead. This would require it to be part of your gemfile, but this would
> work perfectly: this is how we debug server applications once deployed as
> war files (but only if they go into specific exceptions).
>
> Good luck.
>
> On Sat, Jan 10, 2015 at 9:03 PM, Chason Choate <
> [email protected]> wrote:
>
>> Hello world!
>>
>> So i'm currently trying to figure out how to debug a JRuby on Rails app
>> that is running within a Java application. I'll attempt to describe the
>> stack.
>>
>> We have a Java app that uses the JRuby ScriptingContainer
>> <http://jruby.org/apidocs/org/jruby/embed/ScriptingContainer.html> to
>> launch the rails app.
>>
>> ScriptingContainer ruby = new
>> ScriptingContainer(LocalContextScope.THREADSAFE,
>> LocalVariableBehavior.TRANSIENT);
>> ...
>> File rackup = new File(railsPath, "config.ru");
>> rackupContent = FileUtils.fetchFile(rackup, StandardCharsets.UTF_8.name
>> ());
>> ruby.put("rackup_script", rackupContent);
>> ruby.put("rackup_file", rackup.getAbsolutePath());
>> IRubyObject railsApp = ruby.parse("require 'rack';
>> Rack::Builder.new_from_string(rackup_script, file=rackup_file)").run();
>>
>> Then we pass the rails application to the rack servlet
>> <https://github.com/square/rack-servlet> which allows the network
>> requests to flow into the rails app.
>>
>> return new RackServlet(new JRubyRackApplication(railsApp));
>>
>> At this point the app is running fine i'm just not sure how to start
>> debugging. Here are some of the things i'm confused about.
>>
>> 1. I've read this article
>> <https://github.com/jruby/jruby/wiki/UsingTheJRubyDebugger> but I am not
>> sure how to start the rails app with: jruby --debug -S rdebug
>> 2. Would it be possible to use standard java debugging with this setup?
>> 3. Has anyone went down this path before and came out with a better
>> solution, as far as launching the rails app?
>>     * The Java portion in mandatory but the way the rails app is launched
>> could be changed.
>>
>>
>> --
>> Thanks for your time,
>> Chason Choate
>>
>
>
>
> --
> Christian
>



-- 
Thanks,
Chason Choate