【问题标题】:sesame 2.6.9 with tomcat 7 set up won't work设置了tomcat 7的芝麻2.6.9将不起作用
【发布时间】:2012-10-31 17:21:37
【问题描述】:

我正在尝试安装 sesame。 我首先按照以下说明操作:http://www.openrdf.org/doc/sesame2/users/ch06.html

为了安装 tomcat 作为先决条件,我使用了本教程:http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/(我在自动启动部分之前停止了)

设置教程说“部署过程是特定于容器的,请参阅容器文档以了解如何部署 Web 应用程序。” 根据本教程:http://www.snee.com/bobdc.blog/2009/02/getting-started-with-sesame.htmlmit

"为了在 Tomcat 上安装 Sesame 服务器,我将 openrdf-sesame-2.2.4\war 中的两个 war 文件复制到 apache-tomcat-6.0.18\webapps。关闭并重新启动 Tomcat 后,发送我的浏览器对 ttp://localhost:8080/openrdf-workbench 和 ttp://localhost:8080/openrdf-sesame 显示了有关这些应用程序如何正常运行的欢迎屏幕。”

我做了什么。 ttp://localhost:8080 显示一个 tomcat 欢迎页面, ttp://localhost:8080/openrdf-workbench 显示一个站点,但是 ttp://localhost:8080/openrdf-sesame 只给出 404 错误。我也不能在工作台站点上做任何事情,因为它迫使一个人留在“更改服务器”输入字段上。尝试在输入字段下方输入“即 ttp://localhost:8080/openrdf-sesame”所建议的路径只会显示“无效的服务器 URL” 页面顶部还写着

Current Selections
Sesame server   none    change
Repository  none    change

这看起来与应有的完全不同,就像这里:http://www.jenitennison.com/blog/node/153

我又挖了一点,发现了这个:http://www.openrdf.org/doc/sesame/users/ch02.html 但它似乎已经过时了,因为那里根本没有 [SESAME_DIR]/WEB-INF/system.conf.example 。 我还发现了这个:http://www.openrdf.org/forum/mvnforum/viewthread?thread=658 但是也没有要重命名的“示例文件”。

我还使用tomcat bin文件夹中的shutdown.sh脚本关闭了tomcat,并使用startup.sh脚本重新启动了几次,但这似乎也没有任何帮助。

我错过了什么吗?正如“芝麻入门”博文所述,将它们复制到 webapps 文件夹应该就足够了,但它不能正常工作......

感谢您的帮助!


编辑 1: 不幸的是,直接访问 localhost:8080/openrdf-sesame/home/overview.view 的解决方法也不起作用。我也不明白,如果芝麻服务器运行正常并且问题只是重定向,工作台应该找到服务器,但事实并非如此。


编辑 2: catalina.2012-11-01.log 包含以下内容:

Nov 01, 2012 11:49:28 AM org.openrdf.workbench.proxy.WorkbenchGateway canConnect
WARNING: java.io.FileNotFoundException: http://localhost:8080/openrdf-sesame/protocol
java.io.FileNotFoundException: http://localhost:8080/openrdf-sesame/protocol
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1613)
    at java.net.URL.openStream(URL.java:1037)
    at org.openrdf.workbench.proxy.WorkbenchGateway.canConnect(WorkbenchGateway.java:130)
    at org.openrdf.workbench.proxy.WorkbenchGateway.isValidServer(WorkbenchGateway.java:303)
    at org.openrdf.workbench.proxy.WorkbenchGateway.findWorkbenchServlet(WorkbenchGateway.java:209)
    at org.openrdf.workbench.proxy.WorkbenchGateway.service(WorkbenchGateway.java:100)
    at org.openrdf.workbench.base.BaseServlet.service(BaseServlet.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.openrdf.workbench.proxy.CookieCacheControlFilter.doFilter(CookieCacheControlFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

它似乎在寻找一些协议文件,但该文件甚至不存在于 war 包中,所以我有点不知道它想要什么......


编辑 3: 因此,在试图找出到底出了什么问题时,我厌倦了根据下面的答案查找它,以使用 Tomcat 的 Web 应用程序管理器进行查找。虽然我仍然没有让那个工作(尽管编辑了 tomcat-users.xml,但仍然出现“403 Access Denied”错误),但在此过程中一定是意外地完成了魔法。我唯一的猜测是关闭它并重新启动它至少十几次可能会有所帮助,因为除了编辑 tomcat-users.xml 文件并在每次尝试让管理器工作时重新启动它之外,我真的没有做任何其他事情。我不知道,为什么以前这样做没有帮助,通过,我之前至少重新启动了 4 次 tomcat。

【问题讨论】:

  • Tomcat 7 和 Sesame 存在重定向问题。请参阅此相关问题:stackoverflow.com/questions/9501765/openrdf-sesame-404-error 以获得解决方案
  • 提及 system.conf.example 的文档链接已过期,适用于不再支持的 Sesame 1。
  • 关于工作台未连接的问题:您的 Sesame 服务器似乎无法正常启动。您能否检查您的 Tomcat 日志以了解出现问题的任何线索?

标签: tomcat7 sesame


【解决方案1】:

有一个很好但有点过时的演练here,当我遇到你上面提到的同样的麻烦时,它给了我需要的关键提示。

此策略有一个关键区别:它从 Tomcat 管理器中部署 WAR 文件(对我来说:/home/joe/sesame/core/http/server/target/openrdf-sesame.war (http://localhost:8080),而不是通过 jar -xf [PATH/TO/]sesame.war 命令 -来自the docs 的行调用。也许关键特性只是它部署到openrdf-sesame 而不是sesame...

无论如何,现在当我访问http://localhost:8080/openrdf-sesame/home/overview.view 时,我收到一个抱怨说我没有使用 OpenRDF 工作台...但除此之外一切都很好。

【讨论】:

    【解决方案2】:

    FileNotFoundException 表示 Sesame 服务器没有运行。但是,它并没有告诉我们为什么它没有运行。您能否再次检查您是否正确部署了openrdf-sesame.war 文件?如果您进入 Tomcat 的 Web 应用程序管理器,OpenRDF Sesame webapp 是否列出(并已启动)? tomcat 日志中是否还有其他指示问题的错误或警告?

    如果部署正确,另一个可能的原因是芝麻服务器没有足够的权限写入磁盘。 Sesame 为配置文件和持久化数据创建一个应用程序数据目录,默认情况下(在 Linux 上)在 $HOME/.aduna 中(其中 $HOME 是运行 Tomcat 的用户的主目录)。你能验证它有足够的权限在那里写吗?我隐约记得这是 Ubuntu Linux 发行版附带的默认 Tomcat 设置的问题。

    如果您无法更改权限,您还可以为 Sesame 配置不同的位置以用作数据目录。详情请见Sesame docs, chapter 5

    【讨论】:

    • 我已经将war文件复制到/usr/local/tomcat/webapps,var文件的内容现在在/usr/local/tomcat/webapps/openrdf-sesame文件夹下,好像完成,根据该教程,不再需要。日志不包含其他错误。不幸的是,我无法让 Web 应用程序管理器运行,尽管配置了 tomcat-users.xml 文件并重新启动了几次 tomcat,但它一直给我“403 Access Denied”错误。不知道,现在出了什么问题……服务器应该有权限,但我会再次检查。
    • drwxr-xr-x 3 hduser hadoop 4096 Okt 31 16:47 ./ drwxr-xr-x 7 hduser hadoop 4096 Okt 31 16:47 ../ drwxr-xr-x 5 hduser hadoop 4096 Okt 31 16:47 openrdf-sesame/ 在 .arduna 文件夹中,所以是的,应该有写入权限
    【解决方案3】:

    我意识到这个答案对你没有太大帮助,但我遇到了和你完全相同的问题,我找到了一个适合我的解决方案。 就我而言,这只是权限问题:一旦我运行

    chmod -R 777 /location/of/my/webapps
    

    一切都开始顺利。我希望这可以帮助任何偶然发现这个问题的人。

    ps:请注意,在任何文件夹上设置 777 权限通常被认为是不明智的,因此请尝试查阅 chmod 的手册页并尝试一些组合,看看哪个最适合您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多