2014-11-23 65 views
0

如果出現這種情況,我正在使用所有最新版本的JBoss,Modeshape等。我想爲mixin添加一個自定義節點類型。 Modeshape在我的JBoss 8.1上作爲子系統安裝。當我使用JNDI獲取存儲庫時,以及在測試類中創建存儲庫實例時,如何註冊名稱空間?如何在Modeshape中爲自己的節點類型註冊名稱空間4

我有這個CND:

<ex = 'http://example.com/jcr/cnd'> 

[ex:fileAssociation] mixin 
- ex:versionOf (PATH) 

這會導致:

Caused by: org.modeshape.jcr.value.NamespaceException: There is no namespace registered for the prefix "ex" 

當我嘗試運行測試。這是我簡單的modeshape配置文件:

{ 
    "node-types":["/nodetype/file-association.cnd"], 
    "workspaces": { 
    "default": "bp", 
    "predefined": ["bp"] 
    } 
} 

回答

1

ModeShape自動註冊它在CND文件中找到的任何名稱空間。很有可能,ModeShape實際上並沒有讀取您的file-association.cnd文件。確保您在配置文件中指定的路徑有效。

在這種情況下,由於ModeShape安裝在Wildfly 8.1中,您必須通過Wildfly的配置文件配置ModeShape。有關更多詳細信息,請參閱ModeShape documentation

+0

我使用這個語句來加載用'@ Before' - >'RepositoryConfiguration repositoryConfiguration = RepositoryConfiguration.read(「my-repository.json」)註解的方法中的配置文件;' 'my-repository。 json'文件直接放置在標準Maven目錄佈局的資源文件夾下。 – LuckyLuke 2014-11-23 20:12:35

+0

嗯..那很奇怪。它現在起作用了,一定是我的測試方式出了問題。無論如何,我現在知道Modeshape會自動註冊它。所以我想這是它的配置方式嗎?那麼簡單? – LuckyLuke 2014-11-23 20:19:07

+0

是的,如果您的配置被正確使用並且正確引用了正確的資源,ModeShape將自動讀取CND,並註冊那些節點類型以及該CND中定義的任何名稱空間。它應該如此簡單。 – 2014-11-25 14:55:30

相關問題