我是Tomcat,Fuseki和Shiro.ini文件的新手,请原谅我提出愚蠢的问题。
系统:
工作流程:
/Users/username/tomcat/webapps
中,我已经成功提取了fuseki.war
文件。 问题:
我可以通过以下方式访问RDF文件:http://localhost:8080/fuseki
,我可以执行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
我不确定这是怎么回事,因此任何指针都不值得欢迎。
答案 0 :(得分:1)
事实证明,这个问题更多与我对MAC OS的不熟悉有关,而不是与Tomcat或Fuseki有关。
catalina.out文件中引用的/ etc / fuseki文件夹已被严格锁定,其实际路径为/ private / etc / fuseki(尽管这似乎无关紧要)
默认情况下,由于根本没有权限,您无法进入目录。甚至在做:
sudo cd /private/etc/fuseki
或
sudo cd /etc/fuseki
不起作用。我需要通过getinfo授予自己对该文件夹的读/写访问权限(尽管我认为您也可以通过chown
来实现此目的。
现在,我可以查看该文件夹的内容,但是其中的所有文件和文件夹都存在相同的问题,并且需要相同的解决方案。因此,现在我可以自定义shiro.ini和configuration / rdf.ttl文件。
如果我这样做
sudo cd /private/etc/fuseki
或
sudo cd /etc/fuseki
现在,我可以成功查看内容了。