芝麻多ID语句异常的可能原因是什么?
What are possible causes of Multiple ID-statement Exception in Sesame?
我想知道可能引发以下异常的可能原因是什么?
org.openrdf.repository.config.RepositoryConfigException: Multiple ID-statements for repository ID test_3
当我尝试查询 test_3
存储库时它会上升。另一个事实是,在那之后我的网页中显示了两个同名的存储库 http://localhost:8080/openrdf-workbench/repositories/NONE/repositories
欢迎任何帮助!
编辑
我正在使用芝麻 2.7.7
编辑 2
提供有关导致异常的代码的更多详细信息
代码
public void connectToRepository(){
RepositoryConnection connection;
RemoteRepositoryManager repositoryManager = new RemoteRepositoryManager("http://localhost:8080/openrdf-sesame/");
try {
repositoryManager.initialize();
SailImplConfig backendConfig = new NativeStoreConfig("spoc,sopc,posc,psoc,ospc,opsc");
RepositoryImplConfig repositoryTypeSpec = new SailRepositoryConfig(backendConfig);
RepositoryConfig repConfig = new RepositoryConfig(repositoryID, repositoryTypeSpec);
repositoryManager.addRepositoryConfig(repConfig);
Repository myRepository = repositoryManager.getRepository(repositoryID);
myRepository.initialize();
connection = myRepository.getConnection();
}
catch (RepositoryException | RepositoryConfigException e) {
e.printStackTrace();
}
}
异常是由代码中的以下行引起的:
repositoryManager.addRepositoryConfig(repConfig);
这里有详细信息
log4j:WARN No appenders could be found for logger (org.openrdf.rio.DatatypeHandlerRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Custom NTriples/NQuads Parser
Custom NTriples/NQuads Parser
org.openrdf.repository.config.RepositoryConfigException: Multiple ID-statements for repository ID 10m7_m
at org.openrdf.repository.config.RepositoryConfigUtil.getIDStatement(RepositoryConfigUtil.java:269)
at org.openrdf.repository.config.RepositoryConfigUtil.hasRepositoryConfig(RepositoryConfigUtil.java:91)
at org.openrdf.repository.manager.RemoteRepositoryManager.createRepository(RemoteRepositoryManager.java:174)
at org.openrdf.repository.manager.RepositoryManager.getRepository(RepositoryManager.java:376)
at soctrace.repositories.OLDSesameRepositoryManagement.connectToRepository(OLDSesameRepositoryManagement.java:123)
at soctrace.repositories.OLDSesameRepositoryManagement.queryInRepository(OLDSesameRepositoryManagement.java:150)
at soctrace.views.Main.main(Main.java:692)
[sesame in memory] connection to repository 10m7_m done , 444, ms
Exception in thread "main" java.lang.NullPointerException
at soctrace.repositories.OLDSesameRepositoryManagement.runQuery(OLDSesameRepositoryManagement.java:250)
at soctrace.repositories.OLDSesameRepositoryManagement.queryInRepository(OLDSesameRepositoryManagement.java:155)
at soctrace.views.Main.main(Main.java:692)
您的代码创建一个新的存储库(通过向存储库管理器添加新的存储库配置)每次 执行connectToRepository()
方法。由于您每次都使用完全相同的存储库配置(包括 存储库的实际 ID),这自然会在您第二次执行它时导致错误:您正在尝试添加一个存储库一个已经存在的 ID。
您应该重写您的代码以确保它仅在具有该 ID 的存储库不存在时尝试创建存储库 - 如果它已经存在,它应该只需使用现有的。
我想知道可能引发以下异常的可能原因是什么?
org.openrdf.repository.config.RepositoryConfigException: Multiple ID-statements for repository ID test_3
当我尝试查询 test_3
存储库时它会上升。另一个事实是,在那之后我的网页中显示了两个同名的存储库 http://localhost:8080/openrdf-workbench/repositories/NONE/repositories
欢迎任何帮助!
编辑
我正在使用芝麻 2.7.7
编辑 2
提供有关导致异常的代码的更多详细信息
代码
public void connectToRepository(){
RepositoryConnection connection;
RemoteRepositoryManager repositoryManager = new RemoteRepositoryManager("http://localhost:8080/openrdf-sesame/");
try {
repositoryManager.initialize();
SailImplConfig backendConfig = new NativeStoreConfig("spoc,sopc,posc,psoc,ospc,opsc");
RepositoryImplConfig repositoryTypeSpec = new SailRepositoryConfig(backendConfig);
RepositoryConfig repConfig = new RepositoryConfig(repositoryID, repositoryTypeSpec);
repositoryManager.addRepositoryConfig(repConfig);
Repository myRepository = repositoryManager.getRepository(repositoryID);
myRepository.initialize();
connection = myRepository.getConnection();
}
catch (RepositoryException | RepositoryConfigException e) {
e.printStackTrace();
}
}
异常是由代码中的以下行引起的:
repositoryManager.addRepositoryConfig(repConfig);
这里有详细信息
log4j:WARN No appenders could be found for logger (org.openrdf.rio.DatatypeHandlerRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Custom NTriples/NQuads Parser
Custom NTriples/NQuads Parser
org.openrdf.repository.config.RepositoryConfigException: Multiple ID-statements for repository ID 10m7_m
at org.openrdf.repository.config.RepositoryConfigUtil.getIDStatement(RepositoryConfigUtil.java:269)
at org.openrdf.repository.config.RepositoryConfigUtil.hasRepositoryConfig(RepositoryConfigUtil.java:91)
at org.openrdf.repository.manager.RemoteRepositoryManager.createRepository(RemoteRepositoryManager.java:174)
at org.openrdf.repository.manager.RepositoryManager.getRepository(RepositoryManager.java:376)
at soctrace.repositories.OLDSesameRepositoryManagement.connectToRepository(OLDSesameRepositoryManagement.java:123)
at soctrace.repositories.OLDSesameRepositoryManagement.queryInRepository(OLDSesameRepositoryManagement.java:150)
at soctrace.views.Main.main(Main.java:692)
[sesame in memory] connection to repository 10m7_m done , 444, ms
Exception in thread "main" java.lang.NullPointerException
at soctrace.repositories.OLDSesameRepositoryManagement.runQuery(OLDSesameRepositoryManagement.java:250)
at soctrace.repositories.OLDSesameRepositoryManagement.queryInRepository(OLDSesameRepositoryManagement.java:155)
at soctrace.views.Main.main(Main.java:692)
您的代码创建一个新的存储库(通过向存储库管理器添加新的存储库配置)每次 执行connectToRepository()
方法。由于您每次都使用完全相同的存储库配置(包括 存储库的实际 ID),这自然会在您第二次执行它时导致错误:您正在尝试添加一个存储库一个已经存在的 ID。
您应该重写您的代码以确保它仅在具有该 ID 的存储库不存在时尝试创建存储库 - 如果它已经存在,它应该只需使用现有的。