1

我使用 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)

我该如何解决?

4

2 回答 2

0

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

文件系统在 CloudBees 上的工作方式在此处进行了说明。如您所见,您无法将文件写入您想要的位置。

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

于 2014-06-02T06:15:59.167 回答
0

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

编辑如果 Sesame 使用的默认位置无法写入,您可以通过设置系统属性来更改位置info.aduna.platform.appdata.basedir。有关详细信息,请参阅Sesame 用户文档的第 2.5 节

于 2014-06-02T05:19:22.397 回答