У меня есть Java-приложение с мыльными услугами.Я использую Virtuoso и сталкиваюсь с какой-то странной проблемой.
Проблема в том, что VirtDataset работает с одним сервисом, а с другим - нет.Это странно, потому что я использую одну и ту же функцию для двух сервисов.Если я выполняю работающий сервис, то другой сервис работает иначе.
Я заметил, что если я добавлю это
Model model3 = ModelFactory.createDefaultModel();
до подключения к VirtDataset, он будет работать.
protected void loadFile(String fileName, String database) throws IOException {
Path path = Paths.get(fileName);
BufferedReader reader = Files.newBufferedReader(path);
VirtDataset virtuosoDataset = new VirtDataset(virtuosoLocation, virtuosoUser, virtuosoPass);
virtuosoDataset.begin(ReadWrite.WRITE);
VirtModel model = (VirtModel) virtuosoDataset.getDefaultModel();
System.out.println(virtuosoDataset.getGraphName());
model.setBatchSize(10000);
model.read(reader, ConfigurationFile.getProperty(JENAXMLBASE));
virtuosoDataset.commit();
if (LOGGER.isInfoEnabled()) {
LOGGER.info(new LogMessage("Loading file to database finished. Loaded " + model.size() + " triples.",
"importModel", "").toString());
}
TDBFactory.release(virtuosoDataset);
}
Ошибка:
qtp56510351-30] WARN org.apache.cxf.phase.PhaseInterceptorChain - Application {http://services.ls.example.si/}ServicesImplService#{http://services.ls.example.si/}importModel has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault
at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:267)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232)
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:262)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:234)
at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:76)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1065)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
Версии:
Java 1.8
virt_jena3.jar
virtjdbc4.jar
сервер виртуоза 3.7.2 и 3.8.2
Джена 3.6.0