我寫了一個JavaScript腳本,並在規則(共享)中使用它。該腳本開始於:軟件包未定義
var ctx = Packages.org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext();
我得到一個錯誤,告訴我「參考錯誤:軟件包未定義」。
我該如何解決這個問題?
我寫了一個JavaScript腳本,並在規則(共享)中使用它。該腳本開始於:軟件包未定義
var ctx = Packages.org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext();
我得到一個錯誤,告訴我「參考錯誤:軟件包未定義」。
我該如何解決這個問題?
我不認爲你可以在JavaScript中使用這個對象,你不會在共享JavaScript文件中的任何地方找到該代碼。根據this鏈接,由於安全原因,程序包根範圍對象僅適用於放置在Java類路徑中的Web腳本實現。
嘗試爲您的規則編寫Java代碼。
Packages
對象僅適用於被視爲「安全」的代碼。這很可能會失敗,因爲代碼來自Repository/Data-Dictionary中的節點。將它放在類路徑中的某處(例如classes/alfresco/templates/webscripts/...
)。
我正在使用它作爲一個腳本來將它稱爲一個動作。是否可以聲明腳本並將其代碼放入這樣的類路徑中? –
是的。用父「腳本」聲明一個spring託管bean。使用org.alfresco.repo.jscript.ClasspathScriptLocation的實例設置屬性scriptLocation。 –
我對此完全陌生,你能舉個例子嗎? –
沒有辦法克服這個並使用它?這裏是爲什麼我想要使用它:[鏈接](http://stackoverflow.com/questions/24653926/get-quickshare-url-with-javascript/24657718#24657718) –
肯定有辦法,這是肯定的,但它會花費你時間和精力。在你的地方不會這樣做。 – Miki
任何線索都可以做到這一點?我的問題是我不能從腳本分享文檔並獲得其公共鏈接。 –