SBT上下文错误时使用fileService.updatefile调用



我一直在建立一个客户端以替换我们拥有的Connections社交网站上的某些内容。我曾通过遵循GitHub repo的示例代码写了Java客户端:com/ibm/sbt/services/client/connections/files

,还使用本教程作为创建端点然后将其传递给其他服务的参考。http://bastide.org/2014/01/28/how-to-devervep-avelop-a-simple-java-inmple--------------------------------------------------------------/----------/---------------/----------------/-----/--simple-java-inmple-java-integration-with-the-the-ben-ibm-social-social-business-toolkit-toolkit-sdk/

要清楚,我正在社区上发布内容,因此我使用社区服务来上传内容和文件服务来更新社区文件。

此方法正常工作:fileService.updatecommunityfile(istream,fileid,title,communityLibraryId,params)这在服务器上创建了多个版本,这不是我想要的。

但是,我想使用这个-FileService.updateFile(inputstream,file,params)如果我在代码中使用以上一个,则会导致以下错误:

Error updating the file
com.ibm.sbt.services.client.connections.files.FileServiceException: Error updating the file
    at com.ibm.sbt.services.client.connections.files.FileService.updateFile(FileService.java:2686)
    at sbt.sample.standalone.java.StandaloneDemo.ReplacePhoto(StandaloneDemo.java:332)
    at sbt.sample.standalone.java.StandaloneDemo.main(StandaloneDemo.java:239)
Caused by: java.lang.IllegalStateException: SBT context is not initialized for the request
    at com.ibm.commons.runtime.Context.get(Context.java:57)
    at com.ibm.sbt.services.endpoints.BasicEndpoint.authenticate(BasicEndpoint.java:151)
    at com.ibm.sbt.services.client.ClientService.forceAuthentication(ClientService.java:296)
    at com.ibm.sbt.services.client.ClientService.processResponse(ClientService.java:1154)
    at com.ibm.sbt.services.client.ClientService._xhr(ClientService.java:1072)
    at com.ibm.sbt.services.client.ClientService.execRequest(ClientService.java:1037)
    at com.ibm.sbt.services.client.ClientService.xhr(ClientService.java:1003)
    at com.ibm.sbt.services.client.ClientService.put(ClientService.java:937)
    at com.ibm.sbt.services.client.ClientService.put(ClientService.java:933)
    at com.ibm.sbt.services.client.base.BaseService.updateData(BaseService.java:439)
    at com.ibm.sbt.services.client.connections.files.FileService.updateFile(FileService.java:2683)

注意:我在程序中使用的用户是社区的管理员,以发布内容的位置。此外,有什么方法可以在SBTSDK API中指定以替换文件其他而无需创建其他版本?

我发现这是相似的 - Liferay Portal&IBM SBT SDK:SBT上下文未针对请求初始化但是我不明白是否有任何解决方案。

谢谢。

首先很难理解为什么您看到" sbt上下文不是为请求初始化",因为您可以运行一个文件服务API而不是另一个文件。

fileservice.updateCommunityFile(iStream, fileId, title, communityLibraryId, params)fileservice.updateFile(inputStream, file, params)都创建新版本。他们不会替换最新版本。此API有一个参数,可以控制是否创建新版本。

这是您需要做的:

使用带有值" false"的参数createversion。这样:

Map<String, String> paramsMap = new HashMap<String, String>(); 
paramsMap.put("createVersion", "false");

现在在UpdateCommunityfile API中使用此参数示例:

fileservice.updateCommunityFile(iStream, fileId, title, communityLibraryId, paramsMap) 

相关内容

  • 没有找到相关文章

最新更新