Heroku在没有任何描述的情况下不断崩溃500 heroku日志 - 日志

时间:2017-11-19 05:25:47

标签: ruby-on-rails heroku

我的应用程序在Heroku上崩溃但localhost工作没有任何问题

日志:

heroku router - - at=info method=POST path="/documents" host=www.getmehired.my request_id=368bcdf4-a236-4b40-af87-5f7c801d6654 fwd="61.6.109.144,162.158.165.159" dyno=web.1 connect=1ms service=3562ms status=500 bytes=1669 protocol=http
app web.1 - Completed 500 Internal Server Error in 3224ms (ActiveRecord: 30.5ms)
app web.1 - Errno::ENOENT (No such file or directory - java):
app web.1 - app/models/document.rb:24:in `update_information'
app web.1 - app/controllers/documents_controller.rb:6:in `create'

的Dyno:

web bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} ON
redis redis-server OFF
worker bundle exec sidekiq -c 3 ON

Documents_controller(使用paperclip& aws上传文档:

  def create
    @doc = Document.new(doc_params)
    if @doc.save
      @doc.update_information
      redirect_to users_edit_path
    else
      redirect_to root_path
    end
  end

文件模型:

  def update_information
    cv = Yomu.new(self.cv.url)
    # THE NEXT COMMAND -> CRASH
    self.num_of_pages = cv.metadata['xmpTPg:NPages'] if cv.metadata['xmpTPg:NPages']
    self.num_of_characters = cv.text.size
    self.num_of_words = cv.text.split.size
    self.file_extension = self.cv_file_name.split('.').reverse.first
    self.file_updated_at = cv.metadata['modified'] || cv.metadata['Creation-Date'] || Time.now
    self.file_created_at =  cv.metadata['Creation-Date'] || Time.now
    self.save!
  end

1 个答案:

答案 0 :(得分:1)

阅读以下instructions

  

安装和依赖

     

Java Runtime

     

Yomu打包Apache Tika应用程序jar并需要一个正常工作的JRE 才能使用它。

您收到的错误Errno::ENOENT (No such file or directory - java):是由于您的Heroku服务器上缺少Java Runtime Environment的安装造成的。

我可以阅读here,我相信可能无法在JRE的Heroku上安装。

我引用了以下answers,您应该尝试以下选项:

  1. 如果您使用 Heroku-16 Stack
  2.   

    你可以add jvm as a buildpack而且你不需要配置路径或其他任何东西。只需确保将其设置为您的第一个buildpack。我和Yomu / Henkei一起尝试过,它对我有用。

    1. 如果您使用 Cedar Stack
    2.   

      然后在/usr/lib/jvm/java-6-openjdk处可以使用JDK   我不确定Yomu如何找到你的Java安装,但它可能正在寻找JAVA_HOME。如果是这样,那么在JAVA_HOME上设置Heroku可以使其正常工作:

      heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk
      
      1. 第三个答案
      2.   

        一个java运行时(一个JRE,就像文档所说的那样)。 Heroku不支持(但是?)安装JRE作为插件。   解决方案:尝试不基于JRE的其他宝石