cancel
Showing results for 
Search instead for 
Did you mean: 

Creare sito da WebScript

alnitakzeta
Champ in-the-making
Champ in-the-making
Ciao a tutti,

ho la necessità di creare un sito tramite webscript.

Utilizzo tramite il metodo Post
/alfresco/service/api/sites

Gli passo il JSON con i parametri di creazione del sito.

Il sito viene creato correttamente.

Ma ho un problema. QUando mi collego alla Share è seleziono il sito mi da un errore.

L'eccezzion è la seguente:


Dec 10, 2012 1:07:03 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Spring Surf Dispatcher Servlet] in context with path [/share] threw exception [Could not resolve view with name 'site/PROD/dashboard' in servlet with name 'Spring Surf Dispatcher Servlet'] with root cause
javax.servlet.ServletException: Could not resolve view with name 'site/PROD/dashboard' in servlet with name 'Spring Surf Dispatcher Servlet'
   at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1029)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.alfresco.web.site.servlet.MTAuthenticationFilter.doFilter(MTAuthenticationFilter.java:74)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.alfresco.web.site.servlet.SSOAuthenticationFilter.doFilter(SSOAuthenticationFilter.java:374)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)


Ho notato che all'interno della cartella del sito mancano le directory documentLibrary ecc… le ho create manualmente ma niente.

Qualcuno ha qualche suggerimento???

Smiley Wink  Smiley Wink  Smiley Wink
1 REPLY 1

alnitakzeta
Champ in-the-making
Champ in-the-making
RISOLTO.

Ho creato un webscritp che abilita il sito.

- enable-site.get.js

var activityLog = [];
function main() {
     var globalUrl = args.url;        // shortName
     var globalPreset = args.preset; // sitePreset
     var tokens = new Array();
     tokens["siteid"] = globalUrl;
     sitedata.newPreset(globalPreset, tokens);
     activityLog.push("Adding preset '" + globalPreset + "' to site '" + globalUrl + "'");
     model.activityLog = activityLog;
}
main();

- enable-site.get.desc.xml.

<webscript>
     <shortname>Enable Site</shortname>
<description>
Utility script to enable site after programmatically creating it with siteService.createSite
</description>
     <url>/modules/enable-site</url>
</webscript>


- enable-site.get.html.ftl

<#list activityLog as log>
     ${log} <br/>
</#list>


Inserire questi script in <ALFRESCO_HOME>\tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\modules

Riavviare Alfresco e lo script risulta disponibile nella share.

Chiamare lo script da una chiamata remota dopo la creazione

http://localhost:8080/share/service/modules/enable-site?url=MIOSITO&preset=site-dashboard

Il sito verrà abilitato e non comparirà più l'eccezzione.


Smiley Very Happy  Smiley Very Happy  Smiley Very Happy  Smiley Very Happy  Smiley Very Happy