2016-04-12 6 views
2

は、私のようなパスでフォルダIDを取得しようとしている:Apache Chemistry CMIS APIで文字セットを設定するには?

/SIGAP/2011/DIRECCIÓN GENERAL DE PRUEBAS/SIN EXPEDIENTE/20100

、あなたが見ることができるように特殊文字Óがあります:

Folder folder = (Folder) getCmisSession().getObjectByPath(folderPath); 

と私は要求していますパスすることはあります文字列、

化学をスローするエラーは、次のとおりです。

STACK TRACE: 
org.cmis.ws.CmisException: Not found an object for the specific path: /SIGAP/2011/DIRECCIÃ?N GENERAL DE PRUEBAS/OFICIOS 
    at com.emc.documentum.fs.cmis.impl.dfs.utils.CmisExceptionFactory.create(CmisExceptionFactory.java:24) 
    at com.emc.documentum.fs.cmis.impl.dfs.utils.CmisExceptionBuilder.build(CmisExceptionBuilder.java:31) 
    at com.emc.documentum.fs.cmis.impl.dfs.action.GetObjectByPathAction.getNonCabinetObjectByPath(GetObjectByPathAction.java:170) 

それは文字列をDIRECCIÓNからDIRECCIÃ?N,

に変更します。どのようにセッションにcharsetをutf-8に設定できますか?どのようにパスをエンコードする必要がありますか?

アップデート1:FlorianMü[email protected]として

がSOAPUIの助けを借りて、推薦し、私はこのようなパスで同じフォルダを要求してみてください。

<soapenv:Body> 
     <ns:getObjectByPath> 
     <ns:repositoryId>LHD_ECM</ns:repositoryId> 
     <ns:path>/SIGAP/2011/DIRECCIÓN GENERAL DE PRUEBAS/SIN EXPEDIENTE/20100</ns:path> 
     </ns:getObjectByPath> 
    </soapenv:Body> 

を、サーバがrigthそれを得ました:

<S:Body> 
     <ns2:getObjectByPathResponse xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/messaging/200908/"> 
     <ns2:object> 
      <properties> 
       <propertyString queryName="cmis:name" displayName="Name" localName="object_name" propertyDefinitionId="cmis:name"> 
        <value>20100</value> 
       </propertyString> 
       <propertyId queryName="cmis:objectTypeId" displayName="Object Type ID" localName="r_object_type" propertyDefinitionId="cmis:objectTypeId"> 
        <value>sigapfolio</value> 
       </propertyId> 
       <propertyId queryName="cmis:baseTypeId" displayName="Base Type Id" localName="" propertyDefinitionId="cmis:baseTypeId"> 
        <value>cmis:folder</value> 
       </propertyId> 
       <propertyId queryName="cmis:objectId" displayName="Object Id" localName="r_object_id" propertyDefinitionId="cmis:objectId"> 
        <value>0b00020280080815</value> 
       </propertyId> 
       <propertyString queryName="cmis:createdBy" displayName="Created By" localName="r_creator_name" propertyDefinitionId="cmis:createdBy"> 
        <value>dmadmin</value> 
       </propertyString> 
       <propertyDateTime queryName="cmis:creationDate" displayName="Creation Date" localName="r_creation_date" propertyDefinitionId="cmis:creationDate"> 
        <value>2016-04-05T04:54:44.000-05:00</value> 
       </propertyDateTime> 
       <propertyString queryName="cmis:lastModifiedBy" displayName="Last Modified By" localName="r_modifier" propertyDefinitionId="cmis:lastModifiedBy"> 
        <value>dmadmin</value> 
       </propertyString> 
       <propertyDateTime queryName="cmis:lastModificationDate" displayName="Last Modification Date" localName="r_modify_date" propertyDefinitionId="cmis:lastModificationDate"> 
        <value>2016-04-05T04:54:44.000-05:00</value> 
       </propertyDateTime> 
       <propertyString queryName="cmis:changeToken" displayName="Change Token" localName="i_vstamp" propertyDefinitionId="cmis:changeToken"> 
        <value>1</value> 
       </propertyString> 
       <propertyId queryName="cmis:parentId" displayName="Parent Id" localName="i_folder_id" propertyDefinitionId="cmis:parentId"> 
        <value>0b00020280005a3b</value> 
       </propertyId> 
       <propertyString queryName="cmis:path" displayName="Folder Path" localName="r_folder_path" propertyDefinitionId="cmis:path"> 
        <value>/SIGAP/2011/DIRECCIÓN GENERAL DE PRUEBAS/SIN EXPEDIENTE/20100</value> 
       </propertyString> 
       <propertyId queryName="cmis:allowedChildObjectTypeIds" displayName="Allowed Child Object Type IDs" localName="" propertyDefinitionId="cmis:allowedChildObjectTypeIds"> 
        <value>cmis:folder</value> 
        <value>cmis:document</value> 
       </propertyId> 
      </properties> 
     </ns2:object> 
     </ns2:getObjectByPathResponse> 
    </S:Body> 
</S:Envelope> 

Apache Chemistryには間違いがあります。(

+0

正しく文字列をJavaに渡していると確信していますか? – Gagravarr

+0

@Gagravarrはい、実行前にコードをデバッグして、文字列が正しいことを確認してください。 –

+1

OpenCMISはすでにUTF-8を使用しています。この問題は、Unicode正規化(NFC/NFD)に関連しています。すべてのCMISバインディングで信頼性が確保されているのはNFCだけです。クライアント側でできることはたくさんありません。リポジトリはこれを管理する必要があります。 –

答えて

3

したがって、問題はバインディングで、AtomPubからWebservicesに切り替わり、問題は解決されました。

parameter.put(SessionParameter.BINDING_TYPE, BindingType.WEBSERVICES.value()); 
+0

FYI ** Apache Chemistry ** webservicesバインディングタイプの0.13.0は** Java **で動作しません。**は6を使用します** –

関連する問題