我在 Alfresco 中遇到了 Web 脚本及其 URL 模式和行为的问题,这取决于 Web 脚本是用 Java 还是 JavaScript 编写的。由于我花了一些时间弄清楚它,我想在这里分享它。
Alfresco 论坛中的原帖: https ://forums.alfresco.com/forum/developer-discussions/web-scripts/webscripts-url-mapping-behaves-differently-when-written-java
我刚刚注意到一些关于 Web 脚本的行为。也许有人知道为什么会发生这种情况,或者这是否是 Alfresco 中的错误。
我有两个(GET)网络脚本:
Webscript A的描述符中有以下 URL:
<url>/api/v1/folders/{path}</url>
Webscript B的描述符中有以下 URL:
<url>/api/v1/folders/{path}/files</url>
请注意,网址仅与最后的“ /files
”不同。
现在奇怪的是,当两个 web 脚本都是用 javascript 编写的(因此也不需要在任何 xml 上下文文件中注册)时,无法到达 webscript B,因为 A 已经错误地捕获了请求(因为重叠的 URL模式,我假设,但没有检查匹配更好的其他模式)。例如,我将 URL 称为:
GET /api/v1/folders/myFolderX/files
我希望该请求会转到 webscript B(由于末尾的“/files”),但它会转到 webscript A,这当然会由于业务逻辑不匹配而引发错误。