[英]Creating Custom Exception while calculating the average in the Arrays.asList
[英]Exception “CASRuntimeException” while creating custom Apache UIMA CAS XML descriptor
我正在嘗試添加附加功能“版本”,用於在UIMA CAS中存儲“uima.cas.Long”類型值。
我已經成功創建了XML描述符,如下所示:
<?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>
我使用“UIMA JCasGen”生成了相應的代碼。
生成以下類:
CASVersion_Type.java
CASVersion.java
現在,我想在JCas中添加一個版本,因為我在java類中編寫了以下代碼:
14: public void testAnnotation() {
15: JCas document = CasCreationUtils.createCas((TypeSystemDescription) null, null, null).getJCas();
16: CASVersion version = new CASVersion(document);
17: version.setVersion(1);
我正在運行此代碼時收到“CASRuntimeException”,如下所述:
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)
CASVersion.java第51行的代碼如下:
50: public CASVersion(JCas jcas) {
51: super(jcas);
52: readObject();
53: }
由於我是第一次這樣做,我無法弄清楚如何將我的自定義xml描述符合並到現有的XML類型描述符。
如果有人能指導我這將是偉大的。
提前致謝。
這條信息
JCas type "com.example.test.CASVersion" used in Java code,
but was not declared in the XML type descriptor.
表示存在自定義類型的JCas類,但UIMA不知道描述自定義類型的XML描述符。 假設您正在使用uimaFIT,請確保通過創建指向自定義類型的XML描述符的types.txt文件來設置類型系統檢測。 有關臟的詳細信息,請參閱uimaFIT文檔 。
披露:我正在研究uimaFIT
當我按照以下方式初始化JCas時,JCas中沒有確定新類型:
JCas document = CasCreationUtils.createCas((TypeSystemDescription) null, null, null).getJCas();
通過以下任何一項替換它來解決此問題:
//1st way
JCas document = JCasFactory.createJCas();
//2nd way
TypeSystemDescription tsd = TypeSystemDescriptionFactory.createTypeSystemDescription();
JCas document = CasCreationUtils.createCas(tsd, null, null).getJCas();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.