cancel
Showing results for 
Search instead for 
Did you mean: 

AlfrescoRuntimeException when adding a controller

alex_lu
Champ in-the-making
Champ in-the-making
Hello all,

I'm an Alfresco starter. I've been following Jeff Potts' book. Currently I'm stuck on chapter 6 creating helloworld.get.js. As soon as I create heeloworld.get.js, I receive the following error:

   Web Script Status 500 - Internal ErrorThe 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:   07020095 Wrapped Exception (with status template): 07020094 Transaction must be active and synchronization is required: Thread[http-8080-4,5,main] Exception:   org.alfresco.error.AlfrescoRuntimeException - 07020094 Transaction must be active and synchronization is required: Thread[http-8080-4,5,main] org.alfresco.repo.transaction.AlfrescoTransactionSupport.registerSynchronizations(AlfrescoTransactionSupport.java:460)org.alfresco.repo.transaction.AlfrescoTransactionSupport.getSynchronization(AlfrescoTransactionSupport.java:444)org.alfresco.repo.transaction.AlfrescoTransactionSupport.getResource(AlfrescoTransactionSupport.java:237)org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor.getFlushData(DirtySessionMethodInterceptor.java:214)org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor.invoke(DirtySessionMethodInterceptor.java:392)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invokeInternal(SingleEntryTransactionResourceInterceptor.java:154)org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invoke(SingleEntryTransactionResourceInterceptor.java:138)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)$Proxy9.getNodePair(Unknown Source)org.alfresco.repo.node.db.DbNodeServiceImpl.getNodePairNotNull(DbNodeServiceImpl.java:148)org.alfresco.repo.node.db.DbNodeServiceImpl.getPaths(DbNodeServiceImpl.java:2057)org.alfresco.repo.node.db.DbNodeServiceImpl.getPath(DbNodeServiceImpl.java:2041)sun.reflect.GeneratedMethodAccessor320.invoke(Unknown Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)org.alfresco.repo.tenant.MultiTNodeServiceInterceptor.invoke(MultiTNodeServiceInterceptor.java:110)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)$Proxy11.getPath(Unknown Source)sun.reflect.GeneratedMethodAccessor320.invoke(Unknown Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)org.alfresco.repo.service.StoreRedirectorProxyFactory$RedirectorInvocationHandler.invoke(StoreRedirectorProxyFactory.java:221)$Proxy12.getPath(Unknown Source)sun.reflect.GeneratedMethodAccessor320.invoke(Unknown Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)org.alfresco.repo.node.MLPropertyInterceptor.invoke(MLPropertyInterceptor.java:309)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.alfresco.repo.node.MLPropertyInterceptor.invoke(MLPropertyInterceptor.java:309)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:275)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:275)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)$Proxy11.getPath(Unknown Source)org.alfresco.repo.web.scripts.RepoStore.getPath(RepoStore.java:298)org.alfresco.repo.web.scripts.RepoStore.getBaseDir(RepoStore.java:263)org.alfresco.repo.web.scripts.RepoStore.access$000(RepoStore.java:77)org.alfresco.repo.web.scripts.RepoStore$RepoScriptContent.getPathDescription(RepoStore.java:952)org.alfresco.repo.web.scripts.RepositoryScriptProcessor$RepositoryScriptLocation.toString(RepositoryScriptProcessor.java:202)org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:282)org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:108)org.alfresco.web.scripts.AbstractWebScript.executeScript(AbstractWebScript.java:819)org.alfresco.web.scripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:90)org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:335)org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:439)org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:262)org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntime.java:306)org.alfresco.web.scripts.servlet.WebScriptServletRuntime.executeScript(WebScriptServletRuntime.java:178)org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntime.java:183)org.alfresco.web.scripts.servlet.WebScriptServlet.service(WebScriptServlet.java:122)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)java.lang.Thread.run(Thread.java:619) Exception:   org.alfresco.web.scripts.WebScriptException - 07020095 Wrapped Exception (with status template): 07020094 Transaction must be active and synchronization is required: Thread[http-8080-4,5,main] org.alfresco.web.scripts.AbstractWebScript.createStatusException(AbstractWebScript.java:613) Server:   Alfresco Enterprise v3.2.0 (r 416) schema 3,400Time:   02-Aug-2010 10:10:36 Diagnostics:   Inspect Web Script (helloworld.get)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Web script
<webscript> <shortname>Hello World</shortname> <description>Hello world web script</description> <url>/helloworld?name={name}</url> <transaction>none</transaction> </webscript>‍‍‍‍‍‍

Diagnostics
Web Script: helloworld.getGenerated from /alfresco/service/script/helloworld.get on 02-Aug-2010 10:34:10Script PropertiesId:   helloworld.getShort Name:   Hello WorldDescription:   Hello world web scriptAuthentication:   noneTransaction:   noneMethod:   GETURL Template:   /helloworld?name={name}Format Style:   anyDefault Format:   htmlNegotiated Formats:   [undefined]Implementation:   class org.alfresco.web.scripts.DeclarativeWebScriptExtensions:   [undefined]Store: workspace://SpacesStore/app:company_home/app:dictionary/cm:extensionwebscriptsFile: helloworld.get.desc.xml<webscript><shortname>Hello World</shortname><description>Hello world web script</description><url>/helloworld?name={name}</url><transaction>none</transaction></webscript>File: helloworld.get.html.ftl<p>Hello, ${args.name}!</p>File: helloworld.get.jsStore: workspace://SpacesStore/app:company_home/app:dictionary/cm:webscripts[No implementation files]Store: classpath:alfresco/extension/templates/webscripts[No implementation files]Store: classpath:alfresco/templates/webscripts[No implementation files]Store: classpath:alfresco/enterprise/webscripts[No implementation files]Store: classpath:alfresco/webscripts[No implementation files]‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Alfresco version: enterprise 3.2.1

I thought it was syntax error. I double checked all files required. Could anyone help, please? Thanks in advance.
1 REPLY 1

alex_lu
Champ in-the-making
Champ in-the-making
Solved! This might be handy to some ppl who are using 3.2.1

I have added <authentcation>user</authentication> to description xml. Default authentication might have been changed for 3.2.1.