I've set up an AS system and have deployed an analysis engine to it. I've sent
test documents through the queue successfully using runRemoteAsyncAE.sh script.
Afterwards, I made a test program to send CAS that I auto generate. Watching
the queue, it looks like the CAS reaches to the delegate and gets processed.
However, when I use uimaAsEngine.sendAndReceive(CAS), it seems to just sit
there waiting for a return. If I use uimaASEngine.send(CAS) I get a
CannotResolveClassException regarding uimaContextPath. I can't seem to find
reference to setting a uimaContextPath in the docs or in the example script.
When I stepped through the code execution, I find that that the exception is
thrown at:
com.thoughtworks.xtream.converters.reflection.AbstractReflectionConverter
Class type = implicitCollectionMapping == null
? determineType(reader, fieldExistsInClass, result, fieldName,
classDefiningField)
: implicitCollectionMapping.getItemType();
when the fieldName is "uimaContextPath". It works fine for the first child
where fieldName is "name".
What does this error mean?
I am calling the service using the example in the guide:
Map<String, Object> appContext = new HashMap<String, Object>();
appContext.put(UimaAsynchronousEngine.ServerUri,
"tcp://${Broker}:61616");
appContext.put(UimaAsynchronousEngine.Endpoint, "StanfordEngineQueue");
appContext.put(UimaAsynchronousEngine.CasPoolSize, 1);
uima.addStatusCallbackListener(new CallbackListener());
uima.initialize(appContext);
for (int i = 0; i < 1; i++) {
CAS cas = uima.getCAS();
cas.setDocumentText("This is just a test, Sam.");
uima.sendCAS(cas);
System.out.println("Sent CAS.");
}
And the callback listener is pretty much a copy of the callback listener in the
runRemoteAsyncAE.sh.