2014-01-27 3 views
0

Я пытаюсь добавить клиента OpenCmis в веб-приложение, у которого уже есть другие клиенты, использующие CXF. Он будет развернут в Weblogic. У меня есть клиент OpenCMIS, работающий на основе http://chemistry.apache.org/java/opencmis-client-bindings.htmlЗапуск клиента OpenCMIS с CXF

Проблема заключается в том, когда я сопоставляю ее с другими реализациями клиента. Для CXF мне пришлось модифицировать weblogic-application.xml с некоторыми предпочтительными пакетами и при этом клиент OpenCMIS не работает. Исключением я получаю следующее:

Caused By: java.lang.ClassCastException: com.sun.proxy.$Proxy136 cannot be cast to com.sun.xml.ws.developer.WSBindingProvider 
    at org.apache.chemistry.opencmis.client.bindings.spi.webservices.SunRIPortProvider.createPortObject(SunRIPortProvider.java:84) 
    at org.apache.chemistry.opencmis.client.bindings.spi.webservices.AbstractPortProvider.getPortObject(AbstractPortProvider.java:458) 
    at org.apache.chemistry.opencmis.client.bindings.spi.webservices.AbstractPortProvider.getRepositoryServicePort(AbstractPortProvider.java:280) 
    at org.apache.chemistry.opencmis.client.bindings.spi.webservices.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:69) 
    at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:85) 
    at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:109) 
    at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:96) 

Есть ли способ заставить его работать вместе?

ответ

1

Чтобы ответить на мой собственный вопрос. Мне просто нужно, чтобы добавить обязательную библиотеку для opencmis:

<dependency> 
     <groupId>org.apache.chemistry.opencmis</groupId> 
     <artifactId>chemistry-opencmis-client-bindings</artifactId> 
     <version>${version.opencmis}</version> 
    </dependency> 

А затем добавьте в инициализации:

parameter.put(SessionParameter.WEBSERVICES_PORT_PROVIDER_CLASS, CXFPortProvider.class.getName()); 
0

Проверьте версию предоставленных CxF-банки и те, которые необходимы openCMIS. Мне нужно было понизить до openCMIS-0.8.0, поэтому я мог бы использовать CXF-2.2.12 (ограничения версий относятся к другим зависимостям структуры).