Я использую сервер профиля WebSphere Liberty, версия 8.5.5.3. У меня есть ухо, содержащее множественные войны. Я развертываю их все взорван (ухо и война с модулями внутри него).Профиль WebSphere Liberty JAXBContext ClassCastException
При развертывании его я получаю следующее исключение класса произнесения:
java.lang.RuntimeException: javax.xml.bind.JAXBException:
ClassCastException: attempting to cast bundleresource://67.fwk-1166858817/javax/xml/bind/JAXBContext.class
to jar:file:/C:/ws/IBM/java_1.7_64/jre/lib/rt.jar!/javax/xml/bind/JAXBContext.class.
Please make sure that you are specifying the proper ClassLoader.
я понял, что проблема в том, что мой комплекте jax-api
и jaxb-impl
банки не загружены, поэтому я добавил к server.xml
опцию загрузки parentLast
класса :
<enterpriseApplication id="ear-app" location="C:/ws/ear/exploded/ear-app.ear" name="ear-app" >
<classloader delegation="parentLast" commonLibraryRef="provided-jars" privateLibraryRef="shared-libs"/>
</enterpriseApplication>
Я добавил свои jax-api
и jax-impl
банки к этой папке
<library id="shared-libs">
<fileset dir="${server.config.dir}/lib/global" include="*.jar"/>
</library>
Однако у меня все еще есть ClassCastException
, похоже, что он по-прежнему использует загрузку классов parentFirst
?
Я нашел другие JAXB ClassCastException темы, но не при использовании профиля Liberty ..
Вы пытались удалить эти банки из приложения для загрузки только классов серверов? – Gas
Нет. Я не пробовал это, так как нам нужны новые версии библиотек, а не те, которые предоставляются в WebSphere. – tazzer
У Liberty есть 'jaxb-2.2'. Какой вам нужен? Также какие функции вы включили в 'server.xml'? – Gas