gpt4 book ai didi

java - ContentModel 无法解析为变量

转载 作者:行者123 更新时间:2023-12-01 20:53:44 25 4
gpt4 key购买 nike

我遇到了这个错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
ContentModel cannot be resolved to a variable

at test2CMIS.Test.main(Test.java:39)"

我不明白它从哪里来,这是我的代码:

public class Test {

public static void main(String[] args){
Test atest = new Test();
Session session = atest.iniSession();
AuthenticationService authenticationService=null;
PersonService personService = null;

if (authenticationService.authenticationExists("test") == false)
{
authenticationService.createAuthentication("test", "changeMe".toCharArray());

PropertyMap ppOne = new PropertyMap(4);
ppOne.put(ContentModel.PROP_USERNAME, "test");
ppOne.put(ContentModel.PROP_FIRSTNAME, "firstName");
ppOne.put(ContentModel.PROP_LASTNAME, "lastName");
ppOne.put(ContentModel.PROP_EMAIL, "test"+"@example.com");

personService.createPerson(ppOne);
}
}

我确实导入了:import org.alfresco.model.ContentModel;以及我的代码的许多其他库。

感谢帮助。

我正在使用的代码,我在评论中留下了一些我也尝试过的东西,这样你就可以看到我做了什么:

import java.io.File;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

import org.alfresco.service.cmr.security.*;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;


import java.util.Iterator;

import org.alfresco.repo.jscript.People;
import org.alfresco.repo.security.authentication.AuthenticationException;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.PropertyMap;
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.chemistry.opencmis.client.api.Document;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.enums.BindingType;
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
import org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException;
import org.apache.chemistry.opencmis.client.util.FileUtils;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;

public class Test {

public static void main(String[] args){
Test atest = new Test();
Session session = atest.iniSession();
AuthenticationService authenticationService=new AuthenticationServiceImpl();
PersonService personService = new PersonServiceImpl();


HashMap<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(ContentModel.PROP_USERNAME, "test");
properties.put(ContentModel.PROP_FIRSTNAME, "test");
properties.put(ContentModel.PROP_LASTNAME, "qsdqsd");
properties.put(ContentModel.PROP_EMAIL, "wshAlors@gmail.com");
properties.put(ContentModel.PROP_ENABLED, Boolean.valueOf(true));
properties.put(ContentModel.PROP_ACCOUNT_LOCKED, Boolean.valueOf(false));
personService.createPerson(properties);

authenticationService.createAuthentication("test", "changeme".toCharArray());

authenticationService.setAuthenticationEnabled("test", true);

authenticationService.getAuthenticationEnabled("Admin");

//String testAuthen = authenticationService.getCurrentTicket();
//System.out.println(testAuthen);
//QName username = QName.createQName("test");
//Map<QName,Serializable> propertiesUser = new HashMap<QName,Serializable>();
//propertiesUser.put(ContentModel.PROP_USERNAME,username);
//propertiesUser.put(ContentModel.PROP_FIRSTNAME,"test");
//propertiesUser.put(ContentModel.PROP_LASTNAME,"test");
//propertiesUser.put(ContentModel.PROP_EMAIL, "test@example.com");
//propertiesUser.put(ContentModel.PROP_PASSWORD,"0000");
//personService.createPerson(propertiesUser);



//if (authenticationService.authenticationExists("test") == false)
//{
// authenticationService.createAuthentication("test", "changeMe".toCharArray());

// PropertyMap ppOne = new PropertyMap(4);
// ppOne.put(ContentModel.PROP_USERNAME, "test");
// ppOne.put(ContentModel.PROP_FIRSTNAME, "test");
// ppOne.put(ContentModel.PROP_LASTNAME, "test");
// ppOne.put(ContentModel.PROP_EMAIL, "test@example.com");
//ppOne.put(ContentModel.PROP_JOBTITLE, "jobTitle");

// personService.createPerson(ppOne);
//}
}

public Session iniSession() {
Session session;
SessionFactoryImpl sf = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<String, String>();
Scanner reader = new Scanner(System.in);
System.out.println("Enter your logging : ");
String log = reader.nextLine();
System.out.println("Enter your password : ");
String pass = reader.nextLine();

parameters.put(SessionParameter.USER, log);
parameters.put(SessionParameter.PASSWORD, pass);

parameters.put(SessionParameter.BROWSER_URL, "http://127.0.0.1:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser");
parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());
parameters.put(SessionParameter.REPOSITORY_ID, "-default-");

try{
session = sf.createSession(parameters);
}catch(CmisUnauthorizedException cue){
session = null;
System.out.println("Wrong logging OR password !");
}
return session;
}

最佳答案

您正在编写一个可运行的类,它与 Alfresco 运行的进程不同。从这个意义上说,您的类(class)正在“远程”运行。

因为您的类(class)正在远程运行到 Alfresco,所以您使用 CMIS 的方式是正确的。但 CMIS 只允许您对 Alfresco 中的文档和文件夹执行创建、读取、更新和删除 (CRUD) 功能。 CMIS 不知道如何创建用户或组。

您的类将无法实例化 AuthenticationService 或 PersonService。这些是 Alfresco Foundation API 的一部分,仅当您在与 Alfresco 相同的进程中运行时才起作用,例如在 Action、Behaviour 或 Java 支持的 Web 脚本中。在这些情况下,您将使用 Spring 依赖注入(inject)将这些服务注入(inject)到您的 Java 类中。然后,您可以将类放入 JAR 中,该 JAR 会部署到 Alfresco Web 应用程序中,并由与 Alfresco 相同的类加载器加载。

如果您想远程创建用户,您应该考虑使用 Alfresco REST API 。然后,您的可运行类可以使用 HTTP 客户端调用 REST 调用来创建人员和组。

关于java - ContentModel 无法解析为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com