1

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

要将tomcat安装为prerequesite,我使用了本教程: 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 错误。我也不能在工作台站点上做任何事情,因为它迫使一个人留在“更改服务器”输入字段上。尝试在输入字段下方输入“ie 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。

4

3 回答 3

1

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

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

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

于 2013-03-06T00:23:22.043 回答
0

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

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

如果您无法更改权限,您还可以为 Sesame 配置不同的位置以用作数据目录。有关详细信息,请参阅Sesame 文档第 5 章

于 2012-11-01T21:47:22.807 回答
0

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

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

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

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

于 2014-03-16T22:05:12.397 回答