Вы можете найти ответы на похожий вопрос полезен. В зависимости от вашего приложения может быть возможно беспрепятственно перенести ваше приложение RoR для работы на JRuby с учетом предостережений, отмеченных в этом ответе. Но вы хотели бы быть уверены, что преимущества этого уравновешивают усилия и потенциальные риски.
В качестве альтернативы вы можете подумать о том, чтобы сделать эти возможности библиотеки Java доступными для вашего приложения MRI Rails в качестве внутренней веб-службы (которая может быть Rails, Sinatra или аналогичной), построенной на JRuby. Таким образом вы разделите элементы и уменьшите риск проекта. Если впоследствии вас устроит эта работа, вы можете подумать о том, чтобы свернуть их вместе, и все это под JRuby-on-Rails, если это имеет смысл.
ОБНОВЛЕНИЕ: дополнительные сведения добавлены по просьбе спрашивающих.
Поскольку я не знаком с тем, что делает ваше приложение или библиотеки Java, это будет несколько абстрактно, но я надеюсь, что вы сможете заполнить пробелы в соответствии со своими потребностями.
Кажется, что полный перенос ваших приложений Rails для работы на Jruby невозможен. Отлично. Таким образом, одной из идей было бы предоставить вашу библиотеку Java как веб-службу (например, RESTful) для вашего приложения RoR. Назовем это JLS. В этом случае он будет работать как сетевая служба Java или Jruby, прослушивая запросы, вызывая библиотеку и отправляя ответы (здесь обычно махают руками, но вы поняли).
В зависимости от того, что удобнее вашим разработчикам, вы можете создать JLS на Java, возможно, с запуском контейнера сервлетов. Или вы можете разработать JLS на Ruby, работающем на Jruby (с привязкой к вашей библиотеке Java) и использовать для его реализации фреймворк вроде Rails или Sinatra.
Что касается RoR, если вы сделали JLS RESTful (и я не знаю, подходит ли это вообще в вашем случае), вы можете использовать средство ActiveResource
для связи с JLS.
Таким образом, приложение RoR и JLS работают в разных областях памяти (возможно, даже на разных хостах). Каждый из них может быть разработан несколько независимо (конечно, с соглашением об интерфейсе RESTful), и ваше приложение RoR не нужно прерывать или подвергать риску.
Этот предложенный вариант содержит массу мелкого шрифта, но я надеюсь, что вы уловили общее представление.
person
bjg
schedule
28.07.2010