Java 错误:操作总是访问存储库。不建议在没有事务的情况下这样做

Java 错误:操作总是访问存储库。不建议在没有事务的情况下这样做,java,alfresco,Java,Alfresco,我试图在java类中调用操作: public void execute(){ 你知道如何解决这个问题吗 谢谢希望您的webscript事务值为读写 <webscript> <shortname>{}</shortname> <description>{}</description> <url>/{name}</url> <format default="json">

我试图在java类中调用操作: public void execute(){

你知道如何解决这个问题吗


谢谢

希望您的webscript事务值为读写

<webscript>
  <shortname>{}</shortname>
  <description>{}</description>
  <url>/{name}</url>
  <format default="json">argument</format>
  <authentication>user</authentication>
  <transaction allow="readwrite" buffersize="0">required</transaction>
</webscript>

{}
{}
/{name}
论点
用户
必修的

以给定用户的身份执行工作单元。调用后,线程的已验证用户将返回到其正常状态

final Context cx = Context.getCurrentContext();
        final Scriptable scope = getScope();
 
        RunAsWork<Object> raw = new RunAsWork<Object>() {
            public Object doWork() throws Exception {
                func.call(cx, scope, scope, new Object[] {});
                return null;
            }
        };
 
        AuthenticationUtil.runAs(raw, AuthenticationUtil.getAdminUserName());
    }
final Context cx=Context.getCurrentContext();
最终可编写脚本的范围=getScope();
RunAsWork raw=新RunAsWork(){
公共对象doWork()引发异常{
函数调用(cx,作用域,作用域,新对象[]{});
返回null;
}
};
AuthenticationUtil.runAs(原始,AuthenticationUtil.getAdminUserName());
}

此外,如果您试图在客户端运行,它将无法工作,它将只在服务器端工作。2我不使用webscript。Java代码是一个定期调用的执行器。当我从不同的java调用我的操作时,一切都正常。我认为问题在于定期调用操作,但我不知道如何解决它。您是从调度程序还是webscript调用操作?
<webscript>
  <shortname>{}</shortname>
  <description>{}</description>
  <url>/{name}</url>
  <format default="json">argument</format>
  <authentication>user</authentication>
  <transaction allow="readwrite" buffersize="0">required</transaction>
</webscript>
final Context cx = Context.getCurrentContext();
        final Scriptable scope = getScope();
 
        RunAsWork<Object> raw = new RunAsWork<Object>() {
            public Object doWork() throws Exception {
                func.call(cx, scope, scope, new Object[] {});
                return null;
            }
        };
 
        AuthenticationUtil.runAs(raw, AuthenticationUtil.getAdminUserName());
    }