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>
/files
URLは末尾の " " のみが異なることに注意してください。
奇妙なことに、両方の Web スクリプトが JavaScript で記述されている場合 (したがって、xml コンテキスト ファイルに登録する必要もありません)、A が既に要求を誤ってキャッチしているため (URL が重複しているため)、Web スクリプト B に到達することはできません。パターン、私は推測しますが、よりよく一致するパターンをさらにチェックすることはしません)。たとえば、次のように URL を呼び出します。
GET /api/v1/folders/myFolderX/files
要求は Webscript B に送られると予想されますが (末尾の「/files」のため)、代わりに Webscript A に送られます。もちろん、ビジネス ロジックの不一致が原因でエラーがスローされます。