使用带有restful Webservices的open cmis在Alfresco中创建文件夹
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.commons.PropertyIds;
@Path("/testClient")
public class TestClient
{
Folder mainFolder;
Folder subFolder;
Folder permission;
@POST
@Path("{createFolder}")
@Consumes("content-type = application/x-www-form-urlencoded")
@Produces(MediaType.APPLICATION_JSON)
public Response createFolder(@PathParam("foldername") String foldername )
{
Session session = Util.getSession();
Folder rootFolder = session.getRootFolder();
Map<String, Object> folderProp = new HashMap<String, Object>();
folderProp.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
folderProp.put(PropertyIds.NAME, ""+foldername.trim());
Response res = null;
mainFolder = rootFolder.createFolder(folderProp);
if(mainFolder.getName()==foldername)
{
res = Response.status(200).entity("Folder Created").build();
System.out.println("Folder Created");
}
else
{
res = Response.status(201).entity("Folder Created").build();
System.out.println("Folder Not Created");
}
return res;
}
}
我如何使用Open Cmis和RESTFul Webservices在Alfresco中创建文件夹?我尝试了,但它显示以下错误:
StackTrace :
Jan 12, 2017 1:03:06 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [AlfrescoRest] in web application [/CreateFolderRESTAPI] threw load() exception
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1269)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1182)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5660)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Jan 12, 2017 1:03:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-7072"]
Jan 12, 2017 1:03:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8010"]
Jan 12, 2017 1:03:06 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7493 ms
`
请提前帮我解决这个错误。。
web.xml网站
`<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>CreateFolderRESTAPI</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.bizruntime.*</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CreateFolderRESTAPI</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>`
我已经测试了这种方法,它对我来说很有效。
public static void createNewFolderIn(String serverUrl, String username, String password, String path, String folderName) {
Folder root = getFolderByPath(serverUrl, username, password, path);
Map<String, Object> properties = new HashMap<>();
properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_FOLDER.value());
properties.put(PropertyIds.NAME, folderName);
List<Ace> addAces = new LinkedList<>();
List<Ace> removeAces = new LinkedList<>();
List<Policy> policies = new LinkedList<>();
Folder newFolder = root.createFolder(properties, policies, addAces, removeAces, getSession(serverUrl, username, password).getDefaultContext());
}
希望这对你有所帮助。
我想知道如何使用OpenCMIS在Alfresco中手动更改文档版本?从现在开始,当我更新文档时,每次alfresco都会改变版本本身,但我想从用户输入中改变版本,如1.0、2.0、2.1等。 为(如)。document.txt 1.0,document.txt 1.1 我想放置版本2.3而不是document.txt1.1
嗨,伙计们,我正在做户外使用opencmis apache化学。我做了许多服务,如创建文件夹,子文件夹,上传,下载与版本更新。现在我试图生成文件夹/文档的链接,无论链接是在Alfresco的仪表板上。有人可以帮助我使用()对链接进行分类吗??提前致谢
我使用open cmis在Alfresco存储库(5.1e)中创建带有附件的文件夹(自定义类型)。文件夹创建成功,但对于将文档(cmis:document-cm:content)创建为附件,我得到以下异常: 下面是将文档添加到文件夹的源代码(方法):
我有一个名为“alfrescodocs:uploadedfrom”的方面,它有一个名为“alfrescodocs:uploadsource”的属性。我正在使用alfresco-opencmis-extension来附加这个方面与创建上的文档,并在其属性中设置一些值。我正在使用下面的代码。 我使用:http://localhost:8080/alfresco/api/-default-/public
我正在尝试动态创建一个zip文件,其中包含一组从servlet返回的csv文件,这非常令人困惑。一点指导就好了。以下是我手头的几段代码,它们需要协同工作:
问题内容: 文件孔是文件中的空白空间,但是不占用任何磁盘空间,并且包含空字节。因此,文件大小大于其在磁盘上的实际大小。 但是,我不知道如何创建带有文件孔的文件进行试验。 问题答案: 将命令与参数一起使用。 这会为您创建一个从字节8192到字节28671的漏洞。 这是一个示例,说明该文件确实存在漏洞(该命令告诉您文件正在使用多少磁盘块): 如您所见,带孔的文件尽管大小相同,但占用的磁盘块较少。 如果