【发布时间】:2019-01-07 13:21:08
【问题描述】:
我是 Tomcat、Fuseki 和 Shiro.ini 文件的新手,所以请原谅我提出愚蠢的问题。
系统:
- MacMini ==> OS.X 10.13(作为开发服务器)
- Java ==> 8
- Tomcat ==> 9.0.10
工作流程:
- 通过 Plist 文件,Tomcat 实例在每次启动服务器时启动。
- 在
/Users/username/tomcat/webapps我已经把解压成功的fuseki.war文件放好了。 - 我插入了一个定制的 RDF 文件,该文件在重新启动后加载并提供服务
- (这是好事的终结)
问题:
我可以通过:http://localhost:8080/fuseki 访问 RDF 文件,我可以执行 SPARQL 查询以及我需要完成的所有其他事情。但是,当将开发服务器连接到 PC 并通过其 IP 访问它时:例如http://192.168.0.112:8080/fuseki;我最终看到服务器状态为绿色,除了数据集之外,整个 Web 界面都可以正常工作。当我转到http://192.168.0.112:8080/fuseki/dataset 并按“查询”(或任何其他按钮)时,它会显示:“请选择一个数据库”
**原因: 我找到了这个线程fuseki webinterface does not show datasets (SO),它引导我调查 shiro.ini 文件。事实证明我没有。
然后我搜索了shiro.ini,在/Users/username/tomcat/webapps/fuseki/WEB-INF/web.xml找到了引用:
<context-param>
<param-name>shiroConfigLocations</param-name>
<!-- Try a path in: FUSEKI_BASE, FUSEKI_HOME, war resource
If a "file:" then look there and there only.
-->
<param-value>shiro.ini</param-value>
</context-param>
这让我觉得我需要将 shiro.ini 文件放在我的根文件夹 (Users/username/tomcat/webapps/fuseki/shiro.ini) 而不是 (Users/username/tomcat/webapps/fuseki/run/shiro.ini) 中。但是两者都不起作用。
我还查看了一个日志文件:catalina.out,据此看来 shiro.ini 文件已加载(或者至少没有迹象表明它存在错误。)
以下是该日志的相关摘录:
[2018-07-31 09:18:54] Config INFO FUSEKI_HOME=unset
[2018-07-31 09:18:54] Config INFO FUSEKI_BASE=/etc/fuseki
[2018-07-31 09:18:54] Config INFO Shiro file: file:///etc/fuseki/shiro.ini
[2018-07-31 09:18:55] Config INFO Context path = /fuseki
[2018-07-31 09:18:55] Config INFO Configuration file: /etc/fuseki/config.ttl
但是我找不到任何文件夹etc/fuseki/?那么,这是怎么回事呢?
这是shiro.ini 文件:
[users]
admin=passXXX #non-default
[main]
#localhost=org.apache.jena.fuseki.authz.LocalhostFilter
[roles]
[urls]
##control open to anyone
/$/status = anon
/$/ping = anon
##rest restricted to Localhost
## see above for localhost
#/$/** = localhost
/**=anon
我不确定此时发生了什么,所以任何指针都非常受欢迎。
【问题讨论】: