0

我正在尝试将OpenCmis客户端添加到已经有其他客户端使用 CXF 的 Web 应用程序。它将部署在 Weblogic 上。我有基于http://chemistry.apache.org/java/opencmis-client-bindings.html的 OpenCMIS 客户端

问题是当我将它与其他客户端实现放在一起时。对于 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)

有没有办法让它一起工作?

4

2 回答 2

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());
于 2014-01-27T19:47:18.550 回答
0

检查提供的 CXF-jar 的版本以及 openCMIS 所需的版本。我需要降级到 openCMIS-0.8.0,所以我可以使用 CXF-2.2.12(版本限制对其他框架依赖项有影响)。

于 2014-10-16T09:24:02.743 回答