我尝试了“Hello World”webscript教程,这给了我一个500错误(下面的详细信息)无法找到合适的模板处理器。认为这只是随机出现,我尝试了其他的webscripts。 enable-site.get.js(来自Martin Bergljung的博客)曾经工作过,现在却没有。 create-site.post.js给出了一个错误,因为无法将模型中的字段分配给视图;所有都与观点问题完全一致。事实上,所有获取共享层脚本也提供“无法找到模板的模板处理器......”
我不知道我改变了什么;但是我不明白为什么某些带有露天的网页脚本(例如create-site.post)不能开箱即用。我的猜测是我在设置我的露天服务器时做了一些不正确的事情;但是我不知道会是什么。如果有人有类似的症状,那么听到解决方案会很棒。
错误如下:
The Web Script /alfresco/service/helloworld has responded with a status of 500 - Internal Error.
500 Description: An error inside the HTTP server which prevented it from fulfilling the request.
Message: 07050003 Cannot locate template processor for template helloworld.get.html
Exception: org.springframework.extensions.webscripts.WebScriptException - 07050003 Cannot locate template processor for template helloworld.get.html
org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:904)
org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:377)
org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:529)
org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:268)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:724)
Server: Community v4.2.0 (r63893-b12) schema 6,033
Time: 05-Aug-2014 17:17:04
答案 0 :(得分:2)
问题在于我如何运行webscript。我通过在webscripts索引页面上单击它来运行它,可以从repo层访问它。为什么这很重要?因为共享和repo层使用不同的身份验证方法。共享需要添加已解码的最新CSRF令牌和Cookie以及4个Cookie,Alfresco-CSRFToken
,JSESSIONID
,alfLogin
和alfUsername3
。如果这些并非全部存在,您可能会遇到过多的错误,这些错误并不总是您所期望的。例如,当使用create-site
时,我在Alfresco的开箱即用安装中遇到了上述错误(如果您不知道,那么内置的webscript也会出现!)作为名称的duplicate shortName
(网站UID)错误,我通过列出所有当前网站并且不在那里来证明这是唯一的。
所以我遇到的错误可能是因为我的浏览器没有相应的身份验证cookie,或者没有正确传递它们。使用Chromium的开发人员工具或Firebug可以轻松检查这一点。当验证对于共享是正确的时,一切都按预期工作。我现在有一个python包装器,它为我做了一切(我真的应该放在github上!)