Well, the server does not comply with the CMIS spec. You should contact the 
vendor and ask for a fix.

In the meantime, you can use the OpenCMIS bindings layer. It's a bit more 
difficult to use, but it doesn't do any of those checks or any caching.
Try:
session.getBinding().getObjectService().getObject(...)


Florian

----- Original Message -----
From: "Dazhi Jiao" <[email protected]>
To: "Florian Müller" <[email protected]>
Cc: [email protected]
Sent: Monday, October 3, 2011 9:10:17 PM GMT +00:00 GMT Britain, Ireland, 
Portugal
Subject: Re: "Property doesn't exist" error while getting an object using Java 
API

Hi, Florian,

Thanks for the reply. For client developers that don't have controls 
over the servers, this would be frustrating. So without touching the 
server, is there any way to walk around the issue from client side?

Thanks!

David

On 10/03/2011 04:00 PM, Florian Müller wrote:
> Hi David,
>
> My guess is that the property "dc:issued" doesn't exist in the type 
> definition. That would be a server issue.
> The Python API doesn't care, but the Java API tries to match the properties 
> provided for an object with its type definition.
>
>
> Florian
>
> ----- Original Message -----
> From: "Dazhi Jiao"<[email protected]>
> To: [email protected]
> Sent: Monday, October 3, 2011 8:49:55 PM GMT +00:00 GMT Britain, Ireland, 
> Portugal
> Subject: "Property doesn't exist" error while getting an object using Java API
>
> Hi,
>
> I'm new to the OpenCMIS Java API. I got errors when trying to retrieve
> an object (a folder) with some properties with custom extensions. But I
> can retrieve normal CMIS objects without custom properties without any
> problem.
>
> Here is the error message:
>
> Exception in thread "main"
> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException:
> Property 'dc:issued' doesn't exist!
>       at
> org.apache.chemistry.opencmis.client.runtime.repository.ObjectFactoryImpl.convertProperty(ObjectFactoryImpl.java:247)
>       at
> org.apache.chemistry.opencmis.client.runtime.repository.ObjectFactoryImpl.convertProperties(ObjectFactoryImpl.java:270)
>       at
> org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.initialize(AbstractCmisObject.java:108)
>       at
> org.apache.chemistry.opencmis.client.runtime.FolderImpl.<init>(FolderImpl.java:69)
>       at
> org.apache.chemistry.opencmis.client.runtime.repository.ObjectFactoryImpl.convertObject(ObjectFactoryImpl.java:483)
>       at
> org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:397)
>       at
> org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:367)
>       at
> org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:359)
>       at cmispageturner.CMISRequester.checkStatus(CMISRequester.java:85)
>       at cmispageturner.CMISRequester.main(CMISRequester.java:23)
> Java Result: 1
>
> My code where the error was thrown:
>
> ... // build a session object ...
>           SessionFactory f = SessionFactoryImpl.newInstance();
>           Map<String, String>  parameter = new HashMap<String, String>();
>           parameter.put(SessionParameter.USER, user);
>           parameter.put(SessionParameter.PASSWORD, passwd);
>           parameter.put(SessionParameter.ATOMPUB_URL, url);
>           parameter.put(SessionParameter.BINDING_TYPE,
> BindingType.ATOMPUB.value());
>           parameter.put(SessionParameter.REPOSITORY_ID, "content");
>           Session session = f.createSession(parameter);
>           CmisObject obj = session.getObject(objId);  // error thrown!!!
> ...
>
> Is it because the server is not set up correctly or do I need to some
> extra coding on the client side for objects with custom properties? I
> can use the Python API to retrieve the object without any problem. Here
> is what python code would retrieve:
>
> cmis:objectId: L3JlcS90ZXN0L0swMDAyNjguMDAw
> bamboo:source-url:
> http://ramman.grainger.uiuc.edu:8080/fedora/objects/bamboo:K000268.000
> cmis:creationDate: 2011-08-23 11:22:58
> cmis:objectTypeId: bamboo:book
> cmis:lastModificationDate: 2011-08-23 16:22:58
> cmis:baseTypeId: cmis:folder
> cmis:path: /req/test/K000268.000
> dc:title: Every man in his own way: An epistle to a friend. By Stephen Duck.
> dc:issued: 1741.
> cmis:lastModifiedBy: bamboo
> bamboo:source: tcp
> cmis:name: Every man in his own way: An epistle to a friend. By Stephen
> Duck.
> cmis:createdBy: bamboo
> dc:date: 1741.
> dc:identifier: bamboo:K000268.000
> cmis:parentId: L3JlcS90ZXN0
> dc:publisher: printed for J. Roberts; and R. Dodsley,
> dc:creator: Duck, Stephen, 1705-1756.
>
> Apparently there exists an "dc:issued" property. so I am guess it's the
> client Java code. Any ideas?
>
> Thank you very much!
>
> David
>

Reply via email to