Reloading bootstrap with Grails - grails

Is there a way in Grails to run the contents of BootStrap.groovy after it has been changed without restarting the app?

You can do this with the console plugin. I'd highly recommend this plugin for any development environment because it's so useful for running ad-hoc code inside a running server.
To rerun your BootStrap init closure, browse to the web-based console at http://localhost:8080/appname/console. Enter the following in the console:
def servletCtx = org.codehaus.groovy.grails.web.context.ServletContextHolder.servletContext
def myBootstrapArtefact = grailsApplication.getArtefacts('Bootstrap')[-1]
myBootstrapArtefact.referenceInstance.init(servletCtx)

Related

Torquebox - project is not updated

I have installed:
Ubuntu 12.10
jruby 1.7.3
ruby 2
rails 3.2.13
RubyMine 5
DB2 C-Express
I have create a sample application and connected it correctly to the database - I know this because I have successfully executed the scaffold and migrate commands and check that the tables are created.
Then I have run the following commands in order to deploy my application with torquebox 2.0:
torquebox deploy
torquebox run
I have run these commands in my project folder and as a result on localhost:8080 I am seeing rails start page. I have the following issues:
Clicking on "About your application’s environment" tab I am getting the following error:
javax.servlet.ServletException: org.jruby.exceptions.RaiseException:
(NameError) cannot link Java class com.ibm.db2.jcc.DB2Driver, probable
missing dependency: Could not initialize class
com.ibm.db2.jcc.DB2Driver
org.torquebox.web.servlet.RackFilter.doRack(RackFilter.java:117)
org.torquebox.web.servlet.RackFilter.doFilter(RackFilter.java:101)
org.torquebox.web.servlet.RackFilter.doFilter(RackFilter.java:72)
org.torquebox.web.servlet.SendfileFilter.doFilter(SendfileFilter.java:49)
org.torquebox.web.servlet.SendfileFilter.doFilter(SendfileFilter.java:33)
I believe this is because the torque box is not able to find the driver. But why as it is vissible in my rails application and I successfully created/migrate tables from it using the terminal? Should I put the driver somewhere else,too?
Then I the torque box documentation is said:
Changes to your Rails application show up immediately in the browser,
as expected. When you're done, press CTRL+C in the terminal to stop
TorqueBox before continuing with the next steps.
But that's exactly what I have had to do in order to refresh the content of the page. I have changed my gem file and database.yml file but refreshing the page did not reflect this. After I have stop the server and start it again it shows something different.
Could you advise or tell me what I am doing wrong?
Without restarting the Torquebox server your can redeploy the knob with touch just run
touch $TORQUEBOX_HOME/jboss/standalone/deployments/your_apps-knob.yml.deployed
this way you don't have to restart whole JBOSS server.Deployment via descriptor
For production setups you can use Capistrano Torquebox Capistrano support

Rails application issue after deployment - 404 error

I'm new to RoR.
I was able to install Rails and host it in Webrick (Sample App with "Welcome" controller) in my windows.
Now i have a Unix Weblogic Server along with a dedicated domian.
After exporting the .WAR file using Warbler, i accessed the Oracle Admin Console from where i deployed the .WAR file in the dedicated domain. I did all this for the Sample app with only the Welcome controller in it.
But even after deploying the WAR file, on accessing the Domain along with the Port Number (:9002) i ended up with 404 file not found error On looking at the server logs,there wasn't any records relating to any error. The Application must have been deployed properly. I assume that i must have missed out on some basic configurations in the routes.rb or similar files before deploying. Can anyone Guess what are all the possibilities and if possible can anyone help me by pointing to any tuts that cover the Steps to be carried out for configuration before deployment. do i need to install both JRuby and Rails inside the server before depolyment?
I can't really guess with Eror 404 only.
You can try mapping your rails app rack config to a different base_uri.
All you need to do is wrap the existing 'run' command in a map block
try doing this in your rails 'config.ru' file:
map '/mydepartment' do
run Myapp::Application
end
Now when you 'rails server' the app should be at localhost:3000/mydepartment .
Not sure if this will give you the desired outcome, but worth a try.
One more thing you also add this to your config/environments/production.rb and config/environments/development.rb (if on production mode):
config.action_controller.asset_path = proc { |path| "/abc#{path}" }
otherwise when you call your helpers such as stylesheet_link_tag in your views, they will generate links without the "/abc".
Also, find some guides you may refer for good support.
JRubyOnRailsOnBEAWeblogic.
Use JRuby with JMX for Oracle WebLogic Server 11g
Let me know if it is not resolved.

Redmine Plugin - requires restart after every code change

I am working on some plugin on redmine (project management web application written using Ruby on Rail).
For every change i make to the code of the plugin(say view.html.erb file), i have to restart the redmine(application) server. This is because, it runs on production mode by default.
Will running the application on development mode, solve this problem?
If yes, how can i change its running mode or over-ride this behavior so that classes are loaded per every request (yes this will not be efficient but will be good for development) and changes to the code reflect without restarting the application application server(redmine in this case)
I tried adding this line to environment.rb file
ENV['RAILS_ENV'] ||= 'development'
Also tried answers/comments posted below, but they did'nt solve my problem.
Any working solution would be of great help.
Thank You.
Other Related information:
It uses Rails 2.3.14
and its installed using bitnami stack
For automatic plugin reload on Rails 2.3:
Add config.reload_plugins = true on config/environment.rb. It has to be there, you can't put it on config/environments/development.rb due to the Rails start up steps. You may add if RAILS_ENV = 'development' instead.
config/environment.rb
config.reload_plugins = true
On the plugin's init.rb, add the following line:
init.rb
ActiveSupport::Dependencies.explicitly_unloadable_constants = 'YourPluginModuleName'
That's all. Don't forget to remove it when you're done.

Does Grails run the Bootstrap.groovy script when deploying the app as a war?

Bootstrap executes fine during run-app (database is seeded). But it doesn't appear to get invoked when Tomcat deploys the war (nothing in the database).
Does the Bootstrap get run during war deployment? If not, is there a way to make it run?
Specifically I am wanting my sample data to seed the database.
Yes it does....
i would look to make sure you have your environments configured properly if you see thing working in development, but not production

Weird Facebooker Plugin & Pushion Passenger ModRails Production Error

I have an application (Rails 2.3.5) that I'm deploying to production Linux/Apache server using the latest Phushion Passenger/Apache Module 2.2.11 version. After deploying my original application, it returns a 500 error with no logging to production log.
So I created a minimal test rails application, with some active record calls to the database to print out a list of objects to the home controller/my index page. I also cleared out all plugins. That works fine in the production environment. Then I one by one introduced each plugin that I'm using one at a time.
Every plugin works fine EXCEPT facebooker. Every time I load the facebooker plugin into my app/vendor/plugins directory (via script git etc) my test application break (500 error - no error logging). Everytime I remove the facebooker plugin my test application works.
Has anyone seen this before/ have any solutions? I saw this solution but didn't see it in the facebooker code.
Did you add Facebook credentials for production environment?

Resources