Hi Matthias,
there were a lot of changes in the PEAR stuff during the last weeks, so
to help you with your questions I need to know what UIMA version do you use.
I think you have tested the PEAR files standalone and in that scenario
all works fine, right?
-- Michael
Matthias Muehlhausen wrote:
Hello,
I am currently building a web application (with SpringMVC running in
tomcat) that should serve to demonstrate the result of the processing
of each component in this pipeline. Some components do their job,
while others don't.
These are the facts:
- I am using one TypeSystem that is in the classpath of the main
application (as a jar).
- Each PEAR component has a type system descriptor, that reside in the
'desc' folder and are referenced by the AnalysisEngine descriptors.
The type system descriptors are all the identical.
- The component that does not work (a NETagger) uses another component
(utilities) - while the other working components don't (!!!) - for
getting a special Annotation object (type 'Variation' - a bio entity).
The call is:
entity = (Entity) AnnotationTools.getAnnotationByName(aJCas, className).
This call gives back null, and throws a
java.lang.reflect.InvocationTargetException caused by a
org.apache.uima.cas.CASRuntimeException: JCas type
"de.julielab.jules.types.Variation" used in Java code, but was not
declared in the XML type descriptor.
- I checked if the descriptors are missing that type, but they don't,
so I assume that the descriptors themselves are OK. Perhaps they have
a wrong place - but how do I see which descriptor UIMA uses at a time?
- I am installing the PEARs at runtime with the
PackageInstaller.installPackage(...) method
- The utilities are included in the main application as a jar; they
don't have any type system descriptors, because they should be used
independently and they are working in a 'non-PEAR' environement.
-can this have to do something with running it with tomcat?
I already recognized that each PEAR is loaded by a different
classloader and that this caused that the PEARs itself could not use
its own TypeSystem-JAR or other JARs that has dublicates in other
PEARs or the main application (e.g. log4j) - this is some kind of
mysterious for me - could someone explain why this is so?
So what can I do to get my NETagger running? Could anybody help me.
Hints and tips are also very welcome. (I'm getting frustrated with
this f... problem)
I attached a part of the tomcat logging file that shows the stacktrace
in detail when the above mentiond Exception is thrown.
greetings
Matthias
------------------------------------------------------------------------
829774 [http-8080-Processor25] DEBUG
de.julielab.jules.ae.netagger.EntityAnnotator - process(JCas,
ResultSpecification) - JNET: processing next document
830295 [http-8080-Processor25] ERROR
de.julielab.jules.ae.netagger.EntityAnnotator - addAnnotation(JCas, int, int,
String)
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
de.julielab.jules.utility.AnnotationTools.getAnnotationByClassName(AnnotationTools.java:49)
at
de.julielab.jules.ae.netagger.EntityAnnotator.addAnnotation(EntityAnnotator.java:399)
at
de.julielab.jules.ae.netagger.EntityAnnotator.writeToCAS(EntityAnnotator.java:373)
at
de.julielab.jules.ae.netagger.EntityAnnotator.process(EntityAnnotator.java:235)
at
org.apache.uima.analysis_engine.impl.compatibility.AnnotatorAdapter.process(AnnotatorAdapter.java:146)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:373)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:292)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:202)
at
de.julielab.jules.demo.domain.AnalysisComponent.process(AnalysisComponent.java:98)
at
de.julielab.jules.demo.domain.PipelineImpl.process(PipelineImpl.java:366)
at
de.julielab.jules.demo.domain.PipelineFactory.getPipelineInstance(PipelineFactory.java:129)
at
org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:242)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:243)
at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1141)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:878)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:461)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.uima.cas.CASRuntimeException: JCas type
"de.julielab.jules.types.Variation" used in Java code, but was not declared in
the XML type descriptor.
at org.apache.uima.jcas.impl.JCasImpl.getType(JCasImpl.java:292)
at org.apache.uima.jcas.cas.TOP.<init>(TOP.java:92)
at
org.apache.uima.jcas.cas.AnnotationBase.<init>(AnnotationBase.java:53)
at org.apache.uima.jcas.tcas.Annotation.<init>(Annotation.java:54)
at de.julielab.jules.types.Annotation.<init>(Annotation.java:41)
at de.julielab.jules.types.Entity.<init>(Entity.java:42)
at de.julielab.jules.types.BioEntity.<init>(BioEntity.java:41)
at de.julielab.jules.types.Variation.<init>(Variation.java:41)
... 51 more
26.06.2007 11:57:39
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl
callAnalysisComponentProcess(397)
SCHWERWIEGEND: Exception occurred
org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:384)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:292)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:202)
at
de.julielab.jules.demo.domain.AnalysisComponent.process(AnalysisComponent.java:98)
at
de.julielab.jules.demo.domain.PipelineImpl.process(PipelineImpl.java:366)
at
de.julielab.jules.demo.domain.PipelineFactory.getPipelineInstance(PipelineFactory.java:129)
at
org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:242)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:243)
at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1141)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:878)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:461)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
de.julielab.jules.ae.netagger.EntityAnnotator.addAnnotation(EntityAnnotator.java:424)
at
de.julielab.jules.ae.netagger.EntityAnnotator.writeToCAS(EntityAnnotator.java:373)
at
de.julielab.jules.ae.netagger.EntityAnnotator.process(EntityAnnotator.java:235)
at
org.apache.uima.analysis_engine.impl.compatibility.AnnotatorAdapter.process(AnnotatorAdapter.java:146)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:373)
... 41 more
830323 [http-8080-Processor25] ERROR
de.julielab.jules.demo.domain.AnalysisComponent - process(CAS) Analysis Engine
Name=Variation Tagger
org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:384)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:292)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:202)
at
de.julielab.jules.demo.domain.AnalysisComponent.process(AnalysisComponent.java:98)
at
de.julielab.jules.demo.domain.PipelineImpl.process(PipelineImpl.java:366)
at
de.julielab.jules.demo.domain.PipelineFactory.getPipelineInstance(PipelineFactory.java:129)
at
org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:242)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:243)
at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1141)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:878)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:461)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
de.julielab.jules.ae.netagger.EntityAnnotator.addAnnotation(EntityAnnotator.java:424)
at
de.julielab.jules.ae.netagger.EntityAnnotator.writeToCAS(EntityAnnotator.java:373)
at
de.julielab.jules.ae.netagger.EntityAnnotator.process(EntityAnnotator.java:235)
at
org.apache.uima.analysis_engine.impl.compatibility.AnnotatorAdapter.process(AnnotatorAdapter.java:146)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:373)
... 41 more