chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefane Fermigier ...@nuxeo.com>
Subject Problems with opencmis-client
Date Thu, 01 Jul 2010 14:55:49 GMT
Hi,

I'm string to play with opencmis-client against our repository, using the documentation on
http://incubator.apache.org/chemistry/opencmis-client-api.html as a starter.

I'm starting with the code below, I have two questions:

1. I get an exception when trying to connect "java.lang.IllegalArgumentException: prefix cmis
is not bound to a namespace".

Our service document starts with "<service xmlns="http://www.w3.org/2007/app" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">" so I'm a bit puzzled,
specially since this is code generated by Chemistry.

Has the opencmis client code been tested agains the chemistry server code already ?

2. The session factory asks me to give a repository id, I used to not need this information
and go with the default repository. How can I get the default repository, or the list of provided
repositories ?

Thanks,

  S.

--

import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.ItemIterable;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.enums.BindingType;

import java.util.HashMap;
import java.util.Map;

public class test2 {

    //static String URL = "http://localhost:8080/nuxeo/site/cmis/repository";
    static String URL = "http://cmis.demo.nuxeo.org/nuxeo/site/cmis/repository";
    static String LOGIN = "Administrator";
    static String PASSWD = "Administrator";

    public static Session getSession(String url, String login, String passwd) {
        // default factory implementation of client runtime
        SessionFactory f = SessionFactoryImpl.newInstance();
        Map<String, String> parameter = new HashMap<String, String>();

        // user credentials
        parameter.put(SessionParameter.USER, login);
        parameter.put(SessionParameter.PASSWORD, passwd);

        // connection settings
        parameter.put(SessionParameter.ATOMPUB_URL, url);
        parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
        parameter.put(SessionParameter.REPOSITORY_ID, "default");

        // session locale
        //parameter.put(SessionParameter.LOCALE_ISO3166_COUNTRY, "");
        //parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, "de");
        //parameter.put(SessionParameter.LOCALE_VARIANT, "");

        // create session
        Session s = f.createSession(parameter);
        return s;
    }

    public static Folder getRootFolder(String serviceUrl, String login, String password) {
        Folder rootFolder = getSession(serviceUrl, login, password).getRootFolder();
        return rootFolder;
    }

    public static void walk(Folder folder, int level) {
        ItemIterable<CmisObject> children = folder.getChildren();
        for (CmisObject child : children) {
            System.out.println(child.getName());
            if (child.getPropertyValue("cmis:baseTypeId").equals("cmis:folder")) {
                walk((Folder) child, level + 1);
            }
        }
    }

    public static void main(String argv[]) {
        Folder rootFolder = getRootFolder(URL, LOGIN, PASSWD);
        walk(rootFolder, 0);
    }

}

--

Exception in thread "main" org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException:
Parsing exception!
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.parse(AbstractAtomPubService.java:460)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getTypeDefinitionInternal(AbstractAtomPubService.java:740)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getTypeDefinition(RepositoryServiceImpl.java:104)
	at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getTypeDefinition(RepositoryServiceImpl.java:137)
	at org.apache.chemistry.opencmis.client.runtime.PersistentSessionImpl.getTypeDefinition(PersistentSessionImpl.java:558)
	at org.apache.chemistry.opencmis.client.runtime.repository.PersistentObjectFactoryImpl.getTypeFromObjectData(PersistentObjectFactoryImpl.java:260)
	at org.apache.chemistry.opencmis.client.runtime.repository.PersistentObjectFactoryImpl.convertObject(PersistentObjectFactoryImpl.java:565)
	at org.apache.chemistry.opencmis.client.runtime.PersistentSessionImpl.getObject(PersistentSessionImpl.java:403)
	at org.apache.chemistry.opencmis.client.runtime.PersistentSessionImpl.getRootFolder(PersistentSessionImpl.java:508)
	at org.apache.chemistry.opencmis.client.runtime.PersistentSessionImpl.getRootFolder(PersistentSessionImpl.java:483)
	at test2.getRootFolder(test2.java:45)
	at test2.main(test2.java:60)
Caused by: java.lang.IllegalArgumentException: prefix cmis is not bound to a namespace
	at com.sun.xml.bind.DatatypeConverterImpl._parseQName(DatatypeConverterImpl.java:341)
	at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.parseXsiType(XsiTypeLoader.java:89)
	at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.startElement(XsiTypeLoader.java:67)
	at com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:55)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:481)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242)
	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.unmarshalElement(AtomPubParser.java:333)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parseElement(AtomPubParser.java:308)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parseEntry(AtomPubParser.java:249)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parse(AtomPubParser.java:91)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.parse(AbstractAtomPubService.java:458)
	... 11 more

Process finished with exit code 1

--
Stefane Fermigier, Founder and Chairman, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
Web: http://www.nuxeo.com/ - Tel: +33 1 40 33 79 87
Twitter: http://twitter.com/sfermigier
"Knowing is not enough; we must apply. Being willing is not enough; we must do." - Leonardo
da Vinci


Mime
View raw message