【问题标题】:Cloudbees Tomcat Application IOExceptionCloudbees Tomcat 应用程序 IOException
【发布时间】:2014-06-01 22:27:04
【问题描述】:

我使用 Cloudbees 作为我的 Java PaaS,我已经创建到 Tomcat 8 应用程序并上传了两个 WAR 文件:

  • OpenRDF 工作台
  • OpenRDF芝麻

[来源:http://www.openrdf.org]

我上传了 Workbench,经过假定的等待期后,我的 OpenRDF Workbench 实例正在工作,我能够访问 Web 界面。 之后,我上传了 Sesame,经过假定的等待期后,我尝试访问 sesame 的 URL,结果出现了:

HTTP Status 500 - Servlet.init() for servlet openrdf-http-server threw exception

(...)

root cause 
java.io.IOException: Unable to create logging directory /var/genapp/apps/8ec10836/.aduna/openrdf-sesame/logs
    info.aduna.app.logging.base.LogConfigurationBase.setBaseDir(LogConfigurationBase.java:70)
    info.aduna.app.AppConfiguration.init(AppConfiguration.java:155)
    info.aduna.app.AppConfiguration.init(AppConfiguration.java:140)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)

我该如何解决?

【问题讨论】:

    标签: tomcat ioexception cloudbees sesame openrdf


    【解决方案1】:

    当您在 PaaS 上部署此类应用程序时,您应该知道文件系统不是持久的,因此如果该应用程序使用任何类型的配置文件,每次重新启动/部署该应用程序时,您都会丢失该文件系统信息。

    文件系统在 CloudBees 上的工作方式在 here 中进行了解释。如您所见,您无法将文件写入您想要的位置。

    您的应用程序可以访问临时/临时文件系统。在 java 应用程序中,它作为“java.io.tmpdir”系统属性注入 - 您可以根据需要将文件存储在那里。请注意以下几点:

    【讨论】:

    • 我理解,正如你和 Cloudbees 提到的,为了将数据持久化到文件(文件系统)中,我只能通过“java.io.tmpdir”来实现它,但是芝麻是第三方(在我看来)软件/应用程序可能我没有“能力”(更像是“不应该”)在那个级别进行更改......
    【解决方案2】:

    Sesame 尝试在给定目录中创建日志目录,但失败。最可能的原因是权限问题。确保运行 tomcat 的用户有权在该目录中写入,当然还有足够的空间 - Sesame 将希望使用同一目录进行数据持久化。

    编辑 如果 Sesame 使用的默认位置不可写,您可以通过设置系统属性 info.aduna.platform.appdata.basedir 来更改该位置。有关详细信息,请参阅section 2.5 of the Sesame user docs

    【讨论】:

    • 我知道这个 IO 类型的错误/异常与权限或对文件系统的访问有关,但 Cloudbees 是一个 PaaS,当它与用户视角相关时,我没有那种灵活性,如果我至少有它,我不知道如何以这种方式使用和配置 Cloudbees 以获得那种灵活性。这就是我的问题的重点......
    • 好吧,我不知道如何在 Cloudbees 中执行此操作,但我可以为您提供有关 Sesame 结束时发生的情况的信息。查看我的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2013-05-10
    • 1970-01-01
    • 2014-12-13
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多