You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by chongkim theng <ti...@hotmail.com> on 2011/09/28 04:38:18 UTC

Possible to pass in OntModelImpl instance as one of the argument in a web service method?

Hi all,
 
May I know will it be possible to pass in OntModelImpl instance as one of the argument in a web service method? 
 
When I create this web servvice and deploy it, it is throwing deployment exception claiming that :"java.lang.IllegalStateException: Cannot build JAXB context.....com.hp.hpl.jena.ontology.impl.OntModelImpl does not have a no-arg default constructor....com.hp.hpl.jena.rdf.model.impl.ModelCom  not have a no-arg default constructor......com.hp.hpl.jena.enhanced.EnhGraph does not have a no-arg default constructor." .
 
After that, I had try to add in the public no-arg default constructor in OntModelImpl, ModelCom, EnhGraph class, and this time the web service was able to deploy but then I had another exception when i running this web service : 
 
"javax.xml.ws.WebServiceException: javax.xml.bind.UnmarshalException: Unable to create an instance of com.hp.hpl.jena.ontology.impl.OntModelImpl
 - with linked exception:
[java.lang.reflect.InvocationTargetException]
 at org.jboss.ws.core.jaxws.JAXBDeserializer.handleUnmarshallException(JAXBDeserializer.java:110)
 at org.jboss.ws.core.jaxws.JAXBDeserializer.deserialize(JAXBDeserializer.java:78)
 at org.jboss.ws.core.binding.DeserializerSupport.deserialize(DeserializerSupport.java:58)
 at org.jboss.ws.core.soap.XMLContent.unmarshallObjectContents(XMLContent.java:179)
 at org.jboss.ws.core.soap.XMLContent.transitionTo(XMLContent.java:96)
 at org.jboss.ws.core.soap.SOAPContentElement.transitionTo(SOAPContentElement.java:140)
 at org.jboss.ws.core.soap.SOAPBodyElementDoc.transitionTo(SOAPBodyElementDoc.java:85)
 at org.jboss.ws.core.soap.SOAPContentElement.getObjectValue(SOAPContentElement.java:172)
 at org.jboss.ws.core.EndpointInvocation.transformPayloadValue(EndpointInvocation.java:261)
 at org.jboss.ws.core.EndpointInvocation.getRequestParamValue(EndpointInvocation.java:113)
 at org.jboss.ws.core.EndpointInvocation.getRequestPayload(EndpointInvocation.java:133)
 at org.jboss.ws.core.server.DelegatingInvocation.getArgs(DelegatingInvocation.java:80)
 at org.jboss.wsf.container.jboss50.invocation.InvocationHandlerEJB3.invoke(InvocationHandlerEJB3.java:93)
 at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:222)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:474)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
 at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Unknown Source)
Caused by: javax.xml.bind.UnmarshalException: Unable to create an instance of com.hp.hpl.jena.ontology.impl.OntModelImpl
 - with linked exception:
[java.lang.reflect.InvocationTargetException]
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:616)
 at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:244)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.createInstance(UnmarshallingContext.java:581)
 at com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.startElement(StructureLoader.java:181)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:455)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:433)
 at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
 at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:137)
 at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
 at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
 at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
 at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:293)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:244)
 at org.jboss.ws.core.jaxws.JAXBDeserializer.deserialize(JAXBDeserializer.java:71)
 ... 38 more
Caused by: java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java.lang.reflect.Constructor.newInstance(Unknown Source)
 at com.sun.xml.bind.v2.ClassFactory.create0(ClassFactory.java:123)
 at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.createInstance(ClassBeanInfoImpl.java:257)
 at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.createInstance(UnmarshallingContext.java:577)
 ... 51 more
Caused by: java.lang.NullPointerException
 at com.hp.hpl.jena.rdf.model.impl.ModelReifier.<init>(ModelReifier.java:41)
 at com.hp.hpl.jena.rdf.model.impl.ModelCom.<init>(ModelCom.java:95)
 at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init>(OntModelImpl.java:105)
 ... 58 more
"
 
I had tried also to use @XmlJavaTypeAdapter annotation and implement a class OntModelImplAdapter which extends XmlAdapter, but I am having deployment error as :
 
DEPLOYMENTS IN ERROR:
  Deployment "vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/OntModelTest.jar/" is in error due to the following reason(s): com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 15 counts of IllegalAnnotationExceptions
com.hp.hpl.jena.rdf.model.Model is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.Model
                at public com.hp.hpl.jena.rdf.model.Model com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getModelJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.rdf.model.Model does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.Model
                at public com.hp.hpl.jena.rdf.model.Model com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getModelJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.ontology.OntModelSpec does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.rdf.model.ModelMaker is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.ModelMaker
                at public com.hp.hpl.jena.rdf.model.ModelMaker com.hp.hpl.jena.ontology.OntModelSpec.getBaseModelMaker()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.rdf.model.ModelMaker does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.ModelMaker
                at public com.hp.hpl.jena.rdf.model.ModelMaker com.hp.hpl.jena.ontology.OntModelSpec.getBaseModelMaker()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler
                at public com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler com.hp.hpl.jena.ontology.OntDocumentManager.getReadFailureHandler()
                at com.hp.hpl.jena.ontology.OntDocumentManager
                at public com.hp.hpl.jena.ontology.OntDocumentManager com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler
                at public com.hp.hpl.jena.ontology.OntDocumentManager$ReadFailureHandler com.hp.hpl.jena.ontology.OntDocumentManager.getReadFailureHandler()
                at com.hp.hpl.jena.ontology.OntDocumentManager
                at public com.hp.hpl.jena.ontology.OntDocumentManager com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook
                at public com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook com.hp.hpl.jena.ontology.OntDocumentManager.getReadHook()
                at com.hp.hpl.jena.ontology.OntDocumentManager
                at public com.hp.hpl.jena.ontology.OntDocumentManager com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook
                at public com.hp.hpl.jena.ontology.OntDocumentManager$ReadHook com.hp.hpl.jena.ontology.OntDocumentManager.getReadHook()
                at com.hp.hpl.jena.ontology.OntDocumentManager
                at public com.hp.hpl.jena.ontology.OntDocumentManager com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.rdf.model.ModelGetter is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.ModelGetter
                at public com.hp.hpl.jena.rdf.model.ModelGetter com.hp.hpl.jena.ontology.OntModelSpec.getImportModelGetter()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.rdf.model.ModelGetter does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.rdf.model.ModelGetter
                at public com.hp.hpl.jena.rdf.model.ModelGetter com.hp.hpl.jena.ontology.OntModelSpec.getImportModelGetter()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.reasoner.Reasoner is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.reasoner.Reasoner
                at public com.hp.hpl.jena.reasoner.Reasoner com.hp.hpl.jena.ontology.OntModelSpec.getReasoner()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.reasoner.Reasoner does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.reasoner.Reasoner
                at public com.hp.hpl.jena.reasoner.Reasoner com.hp.hpl.jena.ontology.OntModelSpec.getReasoner()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.reasoner.ReasonerFactory is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at com.hp.hpl.jena.reasoner.ReasonerFactory
                at public com.hp.hpl.jena.reasoner.ReasonerFactory com.hp.hpl.jena.ontology.OntModelSpec.getReasonerFactory()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
com.hp.hpl.jena.reasoner.ReasonerFactory does not have a no-arg default constructor.
        this problem is related to the following location:
                at com.hp.hpl.jena.reasoner.ReasonerFactory
                at public com.hp.hpl.jena.reasoner.ReasonerFactory com.hp.hpl.jena.ontology.OntModelSpec.getReasonerFactory()
                at com.hp.hpl.jena.ontology.OntModelSpec
                at public com.hp.hpl.jena.ontology.OntModelSpec com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl.getSpecJaxb()
                at com.hp.hpl.jena.ontology.impl.JaxbOntModelImpl
                at private com.hp.hpl.jena.ontology.impl.OntModelImpl my.mimos.service.jaxws.TestOntModel.arg1
                at my.mimos.service.jaxws.TestOntModel
 
 
Could anyone give me some advice on solving this? Thank you.
 
 
Best regards,
Kim
 
  		 	   		  

Re: Possible to pass in OntModelImpl instance as one of the argument in a web service method?

Posted by Dave Reynolds <da...@gmail.com>.
On Wed, 2011-09-28 at 10:38 +0800, chongkim theng wrote: 
> Hi all,
>  
> May I know will it be possible to pass in OntModelImpl instance as one of the argument in a web service method? 

There is no support for marshall/unmarshall of OntModels, they are not
serializable in the java sense. You would need to write a wrapper class
that serializes by writing out in one of the standard RDF syntaxes
(compressed n-triples for example).

Dave