Ich versuche, zusätzliche Feature "Version" zum Speichern von "uima.cas.Long" Typ Wert in der UIMA CAS hinzuzufügen.Ausnahme "CASRuntimeException" beim Erstellen von benutzerdefinierten Apache UIMA CAS XML-Deskriptor
ich erfolgreich den XML-Descriptor erstellt habe, das wie folgt aussieht wie folgt:.
<?xml version="1.0" encoding="UTF-8"?>
<typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
<types>
<typeDescription>
<name>CASVersion</name>
<description/>
<supertypeName>uima.cas.TOP</supertypeName>
<features>
<featureDescription>
<name>Version</name>
<description/>
<rangeTypeName>uima.cas.Long</rangeTypeName>
</featureDescription>
</features>
</typeDescription>
</types>
</typeSystemDescription>
Und ich generierte den entsprechenden Code mit „UIMA JCasGen“
Folgenden Klassen generiert wurden:
CASVersion_Type.java
CASVersion.java
Jetzt wollte ich eine Version zu den JCas hinzufügen, für die ich folgenden Code in meiner Java-Klasse schrieb:
14: public void testAnnotation() {
15: JCas document = CasCreationUtils.createCas((TypeSystemDescription) null, null, null).getJCas();
16: CASVersion version = new CASVersion(document);
17: version.setVersion(1);
Ich erhalte "CASRuntimeException" auf der Ausführung des Codes, wie unten erwähnt:
null
org.apache.uima.cas.CASRuntimeException: JCas type "com.example.test.CASVersion" used in Java code, but was not declared in the XML type descriptor.
at org.apache.uima.jcas.impl.JCasImpl.getTypeInit(JCasImpl.java:456)
at org.apache.uima.jcas.impl.JCasImpl.getType(JCasImpl.java:425)
at org.apache.uima.jcas.cas.TOP.<init>(TOP.java:96)
at com.example.test.CASVersion.<init>(CASVersion.java:51)
at com.example.test.Custom.testAnnotation(Custom.java:15)
-Code in CASVersion.java in Zeile 51 ist wie folgt:
50: public CASVersion(JCas jcas) {
51: super(jcas);
52: readObject();
53: }
Da ich tue Zum ersten Mal bin ich nicht in der Lage herauszufinden, wie ich meinen custome XML-Deskriptor mit dem vorhandenen XML-Typdeskriptor zusammenführen kann.
Wäre toll, wenn mir jemand dabei helfen kann.
Vielen Dank im Voraus.
Ich benutze uimaFIT und habe bereits beide Methoden für Type System Detection versucht, aber ich bekomme immer noch die gleiche Ausnahme tion. Könnte es sein, dass irgendwelche Abhängigkeiten für uimaFIT in der POM.xml fehlen und dieses Problem verursacht? –
Angenommen, Sie pflegen die types.txt im selben Projekt wie der XML-Typdeskriptor und als JCas-Klassen, dann sollte uimaFIT den Typ erkennen können, wenn Java die JCas-Klasse finden kann - in diesem Fall würde Java Ihnen einen geben "ClassNotFoundException". Sie können die Erkennung des uimaFIT-Typs debuggen, indem Sie die Protokollstufe für die Klasse "TypeSystemDescription" erhöhen oder indem Sie in "org.apache.uima.fit.factory.TypeSystemDescriptionFactory.createTypeSystemDescription()" einen Haltepunkt festlegen – rec