2013-05-02 52 views
0

我一直努力尝试设置自定义ORBEON REST持久性,一直在挣扎一周。Orbeon 4.1自定义REST持久性

我使用Struts 2的MVC框架具有以下配置:

<action name="/crud/{appName}/{formName}/form/form.xhtml" class="com.example.CrudController" method="executeForm" /> 

<action name="/crud/{appName}/{formName}/data/{uuid}/data.xml" class="com.example.CrudController" method="executeData" /> 

<action name="/search/{appName}/{formName}" class="com.example.SearchController" /> 

的问题是,只有第一个动作被调用。

从表单生成器,当我点击形式记录(说“富”),这就是所谓的:

GET http://localhost:8080/mycontext/app/crud/myapp/library/form/form.xhtml 

注意,MYAPP是正确的应用程序名称,但库是不正确的形式名称(应该是“foo”)。

从形式亚军,当我尝试了“foo”的摘要或新的网页,这就是所谓的:

GET http://localhost:8080/mycontext/app/crud/myapp/foo/form/form.xhtml 

这一次的表单名称是正确的,但是我预期/搜索/ ...呼代替。不过,我尝试了xform xml或者查询结果没有成功的响应。

回答

1

/crud/myapp/library/form/form.xhtml的调用是正常的:它不是由Form Runner加载您的表单,而是加载您的应用专用的section templates库,该库存储在保留的library表单名称中。所以很可能您的持久性API实现应该返回404,因为它没有表单myapp/library

对于当您访问myapp/foo的新页面时查询/crud/myapp/foo/form/form.xhtml,这只是Form Runner加载myapp/foo的表单定义。对搜索API的查询仅由摘要页面完成,以列出特定表单的数据。

+0

返回404,在GET myapp/library上,结果Form Builder总是打开一个空表单。我返回了一个虚拟的XML元素,它终于工作了!谢谢。 – Dimitris 2013-05-09 16:07:17