1

Web スクリプトが Java で記述されているか JavaScript で記述されているかに応じて、Alfresco での Web スクリプトとその URL パターンおよび動作に関する問題に遭遇しました。理解するのに時間がかかったので、ここで共有したいと思います。

Alfresco フォーラムの元の投稿: https://forums.alfresco.com/forum/developer-discussions/web-scripts/webscripts-url-mapping-behaves-differently-when-written-java


Web スクリプトに関するいくつかの動作に気付きました。なぜこれが起こるのか、それとも Alfresco のバグなのか、誰かがわかるかもしれません。

2 つの (GET) Web スクリプトがあります。

Webscript Aの記述子には、次の URL があります。

<url>/api/v1/folders/{path}</url>

Webscript Bの記述子には、次の URL があります。

<url>/api/v1/folders/{path}/files</url>

/filesURLは末尾の " " のみが異なることに注意してください。

奇妙なことに、両方の Web スクリプトが JavaScript で記述されている場合 (したがって、xml コンテキスト ファイルに登録する必要もありません)、A が既に要求を誤ってキャッチしているため (URL が重複しているため)、Web スクリプト B に到達することはできません。パターン、私は推測しますが、よりよく一致するパターンをさらにチェックすることはしません)。たとえば、次のように URL を呼び出します。

GET /api/v1/folders/myFolderX/files

要求は Webscript B に送られると予想されますが (末尾の「/files」のため)、代わりに Webscript A に送られます。もちろん、ビジネス ロジックの不一致が原因でエラーがスローされます。

4

1 に答える 1

1

回避策: Web スクリプトを Java で書き直して(記述子や URL パターンを変更せずに)、それらを xml コンテキスト ファイルに登録すると、すべてが期待どおりに機能し、要求が実際に Webscript B に到達します。

于 2015-07-29T06:06:01.030 に答える