You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Matthias Muehlhausen <mu...@coling-uni-jena.de> on 2007/06/26 12:34:18 UTC

Problems building a pipeline with PEAR components

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

-- 
Matthias Mühlhausen
Jena University Language and Information Engineering (JULIE) Lab
Phone: +49-3641-944305
Fax:   +49-3641-944321
email: muehlhausen@coling-uni-jena.de
URL:   http://www.coling.uni-jena.de


Re: Problems building a pipeline with PEAR components

Posted by Adam Lally <al...@alum.rpi.edu>.
On 6/26/07, Michael Baessler <mb...@michael-baessler.de> wrote:
> Good news...
>
> The create a CAS from a type system, you can use the CasCreationUtils class.
>

More specifically (since CasCreationUtils has a LOT of methods):

TypeSystemDescription typeSysDesc =
UIMAFramework.getXMLParser().parseTypeSystemDescription(new
XMLInputSource(yourTypeSystemDescriptorFile));

CAS cas = CasCreationUtils.createCas(typeSysDesc, null, null);
//the last two args are for indexes and type priorities, if you need them.


-Adam

Re: Problems building a pipeline with PEAR components

Posted by Michael Baessler <mb...@michael-baessler.de>.
Good news...

The create a CAS from a type system, you can use the CasCreationUtils class.

-- Michael

Matthias Muehlhausen wrote:
> I have to apologize for that long question. My Problem is solved now. 
> The fault was, that I created an initial CAS from my first component 
> that did not had the relevant part of the type system (a did not 
> mention that our real type system comes in 3 parts, to keep the 
> problem simple - but that was too simple I guess). Now I use the 
> complete TypeSystem to create the initial CAS and the NETagger works 
> fine.
>
> btw: Is there a simple way to create a CAS from only a type system 
> descriptor? Currently I am using an analyis engine, to get my initial 
> CAS.
>
> sorry,
> Matthias
>
> P.S. was using UIMA 2.1
>
>
> Michael Baessler wrote:
>> 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
>>>   
>>
>
>


Re: Problems building a pipeline with PEAR components

Posted by Matthias Muehlhausen <mu...@coling-uni-jena.de>.
I have to apologize for that long question. My Problem is solved now. 
The fault was, that I created an initial CAS from my first component 
that did not had the relevant part of the type system (a did not mention 
that our real type system comes in 3 parts, to keep the problem simple - 
but that was too simple I guess). Now I use the complete TypeSystem to 
create the initial CAS and the NETagger works fine.

btw: Is there a simple way to create a CAS from only a type system 
descriptor? Currently I am using an analyis engine, to get my initial CAS.

sorry,
Matthias

P.S. was using UIMA 2.1


Michael Baessler wrote:
> 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
>>   
>


-- 
Matthias Mühlhausen
Jena University Language and Information Engineering (JULIE) Lab
Phone: +49-3641-944305
Fax:   +49-3641-944321
email: muehlhausen@coling-uni-jena.de
URL:   http://www.coling.uni-jena.de


Re: Problems building a pipeline with PEAR components

Posted by Michael Baessler <mb...@michael-baessler.de>.
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
>