ruby-on-rails - 使用 Elastic Search gem 运行 jruby 应用程序。
问题描述
我正在尝试生成 Rails 项目的编译应用程序,jruby
并将其托管在Tomcat server
. elasticsearch
编译后我正在努力建立连接。
以下是我采取的步骤:
- 已安装
Jruby-9.2.0.0
- 创建了一个
jruby on rails
应用程序 Gemfile 包含
gem 'rails', '~> 5.2.1' gem 'listen' gem 'activerecord-jdbcmysql-adapter' gem 'therubyrhino' gem 'java' gem 'ruby-debug', '~> 0.10.6' gem 'elasticsearch' gem 'warbler'
warble.conf
包含Warbler::Config.new do |config| config.features = %w(FEATURE) config.features = %w(gemjar) end
控制器包含:
def index $es_client = Elasticsearch::Client.new log: true products = $es_client.search index: 'production-products' render json: products end
Ran
warble compiled war
命令在项目文件夹中创建.war
文件
当我直接使用rails s
它运行应用程序时,它按预期工作。
但是当我编译应用程序并在 Tomcat 服务器上运行时,出现以下错误
Internal Server Error (500)
Request Method: GET
Request URL: http://localhost:8080/blog/
java.lang.NullPointerException
You're seeing this error because you use JRuby::Rack::ErrorApp::ShowStatus.
解决方案
解决方案是在warble.conf
文件中包含所需的 gem。
Warbler::Config.new do |config|
config.features = %w(FEATURE)
config.features = %w(gemjar)
config.gems["elasticsearch"]
end+
推荐阅读
- arrays - 编译的 Matlab 中的零大小数组维度
- python - 存在通知模块 SPADE
- node.js - 在 UI 中看不到 loggly-winston 调试日志
- c++ - Windows 版本 20H2 上的 pWnd 读取访问冲突
- java - 如何使用控制台从文件夹中选择任何文件?
- linux - 警告:ELF 段之外的可加载部分“.note.gnu.property”
- javascript - 数组到嵌套对象的转换
- excel - 根据单元格值列表从 HTML 字符串中提取值列表
- javascript - 是否可以在 NodeJs 和 Express 中发送 200 状态之前触发下载?
- python - 如何从传递到稀疏矩阵的 id 中获取索引?