Actually this is the way I agree....In normal circumstances....
But let me add some complexity in the situation...
Now imagine you are running UIMA over hadoop...
You have a map reduce step....
lets say in the reduce step u want to call a AE which in turn calls a cas
consumer and you want to do some processing...
Now how do you give cas as an input to the consumer...
using classloader you read the AE descriptor
create a cas out of  somewhere...
I have a cas string  which I make it an input stream and deserialize it to
create a cas
Now i call the AE...

This works fine...

NOw the scenario in which it does not work...
Lets say I pass a cas string to AE and furthur to consumer its calling via
config parameter value....
Now what i want tot starts  do is read this passed string...deserialize it
and make a cas out of it and do processing...
Now I am able to desrialize and i am able to create cas out of ...
I tale care of Class loading its corresponding descriptor...
But when i try to access the index which in turn requires the type ...
It throws exception...

N I think Its because of the same reason as one of the other thread I had
discussion...
Now inside the consumer it start looking for type in the wrong class path

Is there any way out....

Regards
Rohan

On Mon, Jun 16, 2008 at 5:17 PM, Marshall Schor <[EMAIL PROTECTED]> wrote:

> rohan rai wrote:
>
>> The problem is similar to one I face d before....But here I have no
>> Resource
>> Manager to tell
>>
>> JCasImpl to get type from the right class path
>>
>>
> The Cas object includes a field which tells JCas which class loader to use;
> this is usually set when the Cas object is created.  I would suggest looking
> at where the Cas object (being sent to the processCas method) is being
> created, and making sure that that creation includes the ResourceManager
> that has the right classpath.
>
> -Marshall
>
>
>> On Mon, Jun 16, 2008 at 10:48 AM, rohan rai <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>>> What does the given exception mean
>>> If I run it
>>> FSIndex documentIndex =
>>> jCas.getAnnotationIndex(org.ziva.dedup.types.Document.type);
>>> from within hadoop reducer, it works
>>>
>>> But if I use this within process CAS it starts throeing exception
>>>
>>> Any light
>>>
>>>
>>> 16 Jun, 2008 10:42:41 AM org.ziva.dedup.OnlyPhone processCas(170)
>>> INFO: The JCAS cover class "org.ziva.dedup.types.Document_Type" could not
>>> be loaded.
>>> org.apache.uima.cas.CASRuntimeException: The JCAS cover class
>>> "org.ziva.dedup.types.Document_Type" could not be loaded.
>>>
>>>        at org.apache.uima.jcas.impl.JCasImpl.getType(JCasImpl.java:417)
>>>        at
>>> org.apache.uima.jcas.impl.JCasImpl.getCasType(JCasImpl.java:436)
>>>        at
>>> org.apache.uima.jcas.impl.JCasImpl.getAnnotationIndex(JCasImpl.java:1503)
>>>
>>>        at org.ziva.dedup.OnlyPhone.processCas(OnlyPhone.java:149)
>>>        at
>>> org.ziva.dq.hadoop.DeDupHadoopMain$Reduce.reduce(DeDupHadoopMain.java:104)
>>>        at
>>> org.ziva.dq.hadoop.DeDupHadoopMain$Reduce.reduce(DeDupHadoopMain.java:1)
>>>
>>>        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:333)
>>>        at
>>> org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2084)
>>>
>>>
>>>
>>>
>>
>>
>>
>
>

Reply via email to