【发布时间】:2017-09-12 13:51:03
【问题描述】:
我在 Equinox OSGI 中遇到以下异常: 获取 java.lang.ClassCastException:com.sun.xml.ws.client.sei.SEIStub 无法转换为 org.apache.cxf.frontend.ClientProxy
请指教。
【问题讨论】:
我在 Equinox OSGI 中遇到以下异常: 获取 java.lang.ClassCastException:com.sun.xml.ws.client.sei.SEIStub 无法转换为 org.apache.cxf.frontend.ClientProxy
请指教。
【问题讨论】:
您似乎不小心使用了作为 jdk 一部分的 jax-ws 堆栈,而不是 CXF。我猜原因是您的 OSGi 运行时中的 CXF 部署不正确。
您不需要从框架中导出 jax-ws API 包,而是从 servicemix 包中安装 jax-ws API。您可以尝试在 Apache Karaf 中安装 Apache CXF,看看正确的部署应该是什么样子。
要设置要由框架导出的包,请使用框架属性 org.osgi.framework.system.packages。另见Apache Felix configuration。不幸的是,没有从导出的包中删除包的选项。如果使用此选项,则需要指定框架导出的所有包。默认值可以在属性文件 default.properties 中的 felix jar 中找到。
【讨论】: