Alfresco:来自Office的带有自定义存储适配器的PUT请求产生409响应

时间:2017-08-31 13:53:11

标签: java alfresco ecm

我有Alfresco社区5.2并且已经构建了一个自定义内容存储库(基于他们对{​​{3}}所做的事情)。

使用该自定义商店,我可以使用share或CMIS创建文档,没问题。但是,当我使用office创建文档时,它不起作用。

Word可以与repo连接,但是当我尝试保存操作失败时。

我已检查访问日志并获取以下内容:

[31/Aug/2017:08:25:15 +0000] "OPTIONS /alfresco/aos/Shared/ HTTP/1.0" 200 -
[31/Aug/2017:08:25:16 +0000] "HEAD /alfresco/aos/Shared/3y24.docx HTTP/1.0" 404 -
[31/Aug/2017:08:25:17 +0000] "OPTIONS /alfresco/aos/Shared/3y24.docx HTTP/1.0" 200 -
[31/Aug/2017:08:25:18 +0000] "PROPFIND /alfresco/aos/Shared/3y24.docx HTTP/1.0" 404 22
[31/Aug/2017:08:25:18 +0000] "OPTIONS /alfresco/aos/Shared/3y24.docx HTTP/1.0" 200 -
[31/Aug/2017:08:25:19 +0000] "HEAD /alfresco/aos/Shared/3y24.docx HTTP/1.0" 401 -
[31/Aug/2017:08:25:19 +0000] "HEAD /alfresco/aos/Shared/3y24.docx HTTP/1.0" 404 -
[31/Aug/2017:08:25:19 +0000] "PUT /alfresco/aos/Shared/3y24.docx HTTP/1.0" 201 -
[31/Aug/2017:08:25:20 +0000] "LOCK /alfresco/aos/Shared/3y24.docx HTTP/1.0" 200 533
[31/Aug/2017:08:25:22 +0000] "PUT /alfresco/aos/Shared/3y24.docx HTTP/1.0" 409 999

alfresco.log,日志记录级别正确提升,给出了以下内容:

2017-08-29 10:36:25,310 DEBUG [org.alfresco.repo.content.AbstractContentStore] [http-apr-8080-exec-1] 
Fetched new writer: 
  Store:   mycomponent.cmis.database.DbContentStore@27c9fb78
  Context: NodeContentContext[ contentUrl=null, existing=false, nodeRef=workspace://SpacesStore/4fe8f573-b19e-4231-9485-ca04c6ca6d47, propertyQName={http://www.alfresco.org/model/content/1.0}content]
  Writer:  ContentAccessor[ contentUrl=db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin, mimetype=null, size=0, encoding=UTF-8, locale=en_US]
2017-08-29 10:36:25,310 DEBUG [mycomponent.cmis.database.LoggingContentStore] [http-apr-8080-exec-1] EXITING getWriter =ContentAccessor[ contentUrl=db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin, mimetype=null, size=0, encoding=UTF-8, locale=en_US]
2017-08-29 10:36:25,311 DEBUG [mycomponent.cmis.database.DbContentWriter] [http-apr-8080-exec-1] Creating temp file [uuid=b74b6d85-1842-4859-a2df-b2f8377ff421]
2017-08-29 10:36:25,312 DEBUG [mycomponent.cmis.database.DbContentWriter] [http-apr-8080-exec-1] Returning write channel to temp file [uuid=b74b6d85-1842-4859-a2df-b2f8377ff421]
2017-08-29 10:36:25,312 DEBUG [org.alfresco.repo.content.AbstractContentWriter] [http-apr-8080-exec-1] 
  Created callback byte channel: 
   original: sun.nio.ch.FileChannelImpl@19f2447e
   new: org.alfresco.repo.content.AbstractContentAccessor$CallbackFileChannel@8907420
2017-08-29 10:36:25,312 DEBUG [org.alfresco.repo.content.AbstractContentWriter] [http-apr-8080-exec-1] 
  Opened channel onto content: 
   content: ContentAccessor[ contentUrl=db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin, mimetype=null, size=0, encoding=UTF-8, locale=en_US]
   channel: org.alfresco.repo.content.AbstractContentAccessor$CallbackFileChannel@8907420
2017-08-29 10:36:25,313 ERROR [org.alfresco.repo] [http-apr-8080-exec-1] Could not find db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin in the repo
2017-08-29 10:36:25,313 DEBUG [org.alfresco.repo.content.AbstractContentWriter] [http-apr-8080-exec-1] 
Writer spawned new reader: 
  writer: ContentAccessor[ contentUrl=db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin, mimetype=null, size=0, encoding=UTF-8, locale=en_US]
  new reader: ContentAccessor[ contentUrl=db://301f9a77-51a2-4986-896d-e4f7f6e63995.bin, mimetype=null, size=0, encoding=UTF-8, locale=en_US]
2017-08-29 10:36:25,314 DEBUG [org.alfresco.repo.content.cleanup.EagerContentStoreCleaner] [http-apr-8080-exec-1] Post-commit deletion of old content URLs: 

我知道我没有提供代码,但我的问题如下: 此EagerContentStoreCleaner正在标记要删除的URL。我不知道为什么。

我的自定义组件创建一个临时文件,然后使用org.alfresco.service.cmr.repository.ContentStreamListener(如https://github.com/Alfresco/alfresco-sdk-samples/tree/alfresco-51/all-in-one/custom-content-store-repo中所示)等待Alfresco通知该文件已被填充,但是该方法永远不会被调用。

我对如何对此进行故障排除感到茫然,监听器没有被调用,文件永远不会被写入,所以当然,它永远不会被发现。我不知道在哪里看。 vanilla Filesystem Content提供程序不会发生这种情况。

0 个答案:

没有答案