2012-01-18 23 views
2

我是新來的StackOverflow上如此,喜再次=)的InvocationTargetException Web服務使用耶拿和AXIS

我使用耶拿語義Web框架,顆粒裏森納,Eclipse IDE中(在Linux機器上)和炫技OSE來存儲我的圖表。我還使用Protege Editor =)創建了我的本體。

我正在使用SOAP處理客戶端 - 服務器應用程序,我編寫了一個讀取基本模型的過程,通過使用pellet應用推理並將整個推理模型寫入臨時owl文件,然後,另一個過程讀取推理模型並將其存儲在Virtuoso中,這樣我就可以使用Python客戶端通過Virtuoso的SP​​ARQL端點進行查詢。

的問題是,當我調用該調用生成有理有據的模型程序的Web服務,我得到這個消息(在這個問題的最後完整的堆棧跟蹤)

AxisFault 
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
    faultSubcode: 
    faultString: java.lang.reflect.InvocationTargetException 
    faultActor: 
    faultNode: 
    faultDetail: 
     {http://xml.apache.org/axis/}hostname:leia 

這是慣例生成合理的模型,並且它是拋出異常的那個模型。

public InfModel reasonOverModel(String path) { 
    Model emptyModel = ModelFactory.createDefaultModel(); 

    // Pellet instance 
    Reasoner reasoner = PelletReasonerFactory.theInstance().create(); 

    InfModel model = ModelFactory.createInfModel(reasoner, emptyModel); 
    try { 
     InputStream in = FileManager.get().open(path); 
     model.read(in, ""); 
    } catch (Exception ex) { 
     // TODO: log with log4j 
     ex.printStackTrace(); 
     return null; 
    } 
    return model; 
} 

它讀取來自「路徑」的基礎模型,它是運用推理過它,但它沒有返回,我的catch子句沒有趕上那個例外,我不知道爲什麼。這似乎是一個軸心問題。

任何想法,線索或建議? 非常感謝 來自加拉加斯委內瑞拉 ---------------------------- Complete Stacktrace Here ------ -----------------------

 
AxisFault 
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
faultSubcode: 
faultString: java.lang.reflect.InvocationTargetException 
faultActor: 
faultNode: 
faultDetail: 
    {http://xml.apache.org/axis/}hostname:leia 

java.lang.reflect.InvocationTargetException 
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) 
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) 
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) 
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) 
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) 
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) 
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) 
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) 
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784) 
    at org.apache.axis.client.Call.invoke(Call.java:2767) 
    at org.apache.axis.client.Call.invoke(Call.java:2443) 
    at org.apache.axis.client.Call.invoke(Call.java:2366) 
    at org.apache.axis.client.Call.invoke(Call.java:1812) 
    at com.thesis.server.Admin.updateReasonedModel(Admin.java:21) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) 
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) 
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) 
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) 
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) 
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    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:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) 
    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:987) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

編輯1月19日:

我也嘗試從Tomcat 7到tomcat一切移動6.0.35 as @RakeshPatel建議在下面,但仍然得到相同的異常。

我一直在閱讀有關InvocationTargetException,它包裝其他異常,所以,我捕獲它的客戶端,並通過使用getCause()方法得到原因,但它返回null。奇怪的是,因爲我調試了它,它似乎正在執行所有的try塊,但它永遠不會到達return語句。

任何線索或建議?

回答

0

我已經解決了這個,

耶拿似乎不是線程安全的(如果我錯了,請讓我知道),這就是爲什麼我不能公開爲Web服務,我選擇了開發一個獨立的Web應用程序,它使用Jena類並管理我的OWL文檔,全部使用Java。