moze ktorys z szanownych grupowiczow spotkal sie juz z takim
wyjatkiem:
com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
com.sun.xml.bind.api.JAXBRIContext
na googlach wyszukalem kilka takich przykladow jednak troche sie
rozniacych:
com.sun.xml.INTERNALbind.v2.runtime.JAXBContextImpl cannot be cast to
com.sun.xml.bind.api.JAXBRIContext
lub
com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
com.sun.xml.INTERNAL.bind.api.JAXBRIContext
i wynikaly one z tego ze JDK 6 ma wlasna implementacje JAXB (wlasnie z
INTERNAL w nazwie packagu) i
to bylo problemem.
ja wrzucilem do <java_home>lib\endorsed\ pliki jaxb-api.jar, jaxb-
impl.jar i jaxws-api.jar w (wersjach 2.1). dzieki temu implementacje
te sa "wazjniejsze" niz te z JDK 6.
ale to nie rozwiazuje moge problemu bo teraz nie mam INTERNAL w
sciezce a nadal nie mozna dokonac rzutowania.
dodam ze com.sun.xml.bind.v2.runtime.JAXBContextImpl oczywiscie
dziedziczy po com.sun.xml.bind.api.JAXBRIContext
w projekcie mam sporo zaleznosci, ponadto uzywam wlasnych class-
loaderow i pewnie w tym moze byc problem, czy taki blad moze powstac
gdy dodam ze com.sun.xml.bind.v2.runtime.JAXBContextImpl zostanie
zaczytana z jednego jara a com.sun.xml.bind.api.JAXBRIContext z
drugiego?
mam nadzieje ze to brzmi zrozumiale, licze na pomoc.
poniezej pelen stack trace:
ception in thread "HTTPBC-OutboundReceiver-1"
java.lang.ExceptionInInitializerError
at com.sun.xml.ws.server.provider.SOAPProviderArgumentBuilder
$SOAPMessageParameter.getResponseMessage(SOAPProviderArgumentBuilder.java:
140)
at
com.sun.xml.ws.server.provider.ProviderArgumentsBuilder.getResponse(ProviderArgumentsBuilder.java:
61)
at com.sun.xml.ws.server.provider.AsyncProviderInvokerTube
$AsyncProviderCallbackImpl.sendError(AsyncProviderInvokerTube.java:
116)
at
com.sun.jbi.httpsoapbc.jaxwssupport.AsyncJBIProvider.onReply(AsyncJBIProvider.java:
415)
at
com.sun.jbi.httpsoapbc.MessageExchangeSupport.notifyOfReply(MessageExchangeSupport.java:
108)
at
com.sun.jbi.httpsoapbc.OutboundMessageProcessor.processRequestReplyInbound(OutboundMessageProcessor.java:
423)
at
com.sun.jbi.httpsoapbc.OutboundMessageProcessor.processMessage(OutboundMessageProcessor.java:
241)
at com.sun.jbi.httpsoapbc.OutboundAction.run(OutboundAction.java:63)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassCastException:
com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
com.sun.xml.bind.api.JAXBRIContext
at
com.sun.xml.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.java:
503)
... 11 more
pozdrawiam
Michał
> com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
> com.sun.xml.bind.api.JAXBRIContext
...
> w projekcie mam sporo zaleznosci, ponadto uzywam wlasnych class-
> loaderow i pewnie w tym moze byc problem, czy taki blad moze powstac
> gdy dodam ze com.sun.xml.bind.v2.runtime.JAXBContextImpl zostanie
> zaczytana z jednego jara a com.sun.xml.bind.api.JAXBRIContext z
> drugiego?
Cze��,
com.sun.xml.bind.v2.runtime.JAXBContextImpl jest typu
com.sun.xml.bind.api.JAXBRIContext zgodnie z [1]. Jedyny przypadek jaki
mo�e "por�ni�" te klasy, to za�adowanie ich do r�nych zarz�dc�w klas
(classloader), bo pe�ny identyfikator klasy to
zarz�dcaKlas-pe�naNazwaKlasy. Je�li identyfikatory si� nie zgadzaj�
pojawia siďż˝ CCE.
Jacek
--
Jacek Laskowski
Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl