2013-03-28 12 views
7

w JBoss EAP 6 (AS 7):Klasa z rt.jar Nie znaleziono

Robię wezwanie do skoku za WebServiceTemplate.marshalSendAndRecieve który z kolei jest problem ze znalezieniem klasę, która exisits w rt.jar

Caused by: java.lang.ClassNotFoundException: com.sun.org.apache.xerces.internal.dom.DocumentImpl 

Nie rozumiem, jak to się może stać? Z pewnością wszystko, co jest w rt.jar, zostanie załadowane podczas uruchamiania?

Wszelkie pomysły?

Dzięki,

Kenny

Odpowiedz

13

Ok znalazłem rozwiązanie (nie wiem, czy jego prawidłowy sposób, ale działa).

zauważyłem uruchamiając java -verbose: klasę, że tylko niektóre z zajęć w rt.jar zostały załadowane, a nie jeden ja potrzebowałem (com.sun.org.apache.xerces.internal.dom.DocumentImpl)

Więc w JBoss EAP 6 (As 7) istnieje moduły katalogu ($ JBOSS_HOME/modules /) i pod tutaj jest słońce/jdk/main/modules.xml

dodałem następujące wpisy:

<path name="com/sun/org/apache/xerces/internal/dom"/> 
<path name="com/sun/org/apache/xerces/internal/xni"/> 
<path name="com/sun/org/apache/xerces/internal/jaxp"/> 

(ostatnie 2 ze względu na kolejną klasę nie znaleziono wyjątków po r dodawanie w dom)

Jak już powiedziałem, nie jestem w 100% pewien, czy to jest właściwy sposób, aby to zrobić. Dowolne wejście jest mile widziane!

Dzięki,

Kenny

+2

Jest to nieco rozwiązania potrzebne. Innym byłoby włączenie go do jboss-deployment-structure.xml. W żadnym wypadku nie powinieneś używać pakietów com.sun * w swojej aplikacji, ponieważ powoduje to, że nie jest on przenośny dla innych jvms i może zostać usunięty bez powiadomienia. – ctomc

+0

Witam ctmoc, dzięki za odpowiedź. Korzystam z webservicetemplate Springa, który używa pakietu com.sun *. Mówisz, że nie powinienem tego używać? Dzięki. – km2000

+0

Wow thanks. Miałem problem z 'com.sun.org.apache.xerces.internal.dom.ElementNSImpl' na Wildfly 9.0.1, to jest teraz rozwiązane. –

Powiązane problemy