Eigenartiger Fehler beim Aufruf von soap - llegalAccessError: versucht, auf das Feld org.apache.cxf.staxutils.OverlayW3CDOMStreamWriter.isOverlaid zuzugreifen

8

Ich habe seit einiger Zeit an einem Soap-Client gearbeitet und kann es immer noch nicht herausfinden.

Ich habe diesen Fehler:

%Vor%

Ich sah es irgendwie üblich, aber immer noch kann es nicht funktionieren.

Hier ist mein Code:

%Vor%

Relevante Abhängigkeiten, die verwandt sein könnten:

%Vor%

BEARBEITET:

und diese:

%Vor%

Irgendeine Idee über diesen Fehler?

    
jpganz18 11.10.2017, 10:41
quelle

2 Antworten

3

Wie Sie vielleicht schon bemerkt haben, haben Sie inkompatible Versionen von SAAJStreamWriter und OverlayW3CDOMStreamWriter .

SAAJStreamWriter befindet sich im Paket cxf-rt-bindings-soap , das bereitgestellt wird von:

%Vor%

OverlayW3CDOMStreamWriter befindet sich in pachage cxf-core , was von:

bereitgestellt wird %Vor%

Probieren Sie eine der neuesten Versionen von org.apache.cxf - 3.1.13 oder 3.2.0 - die gleiche Version für beide Abhängigkeiten.

    
Anatoly Shamov 16.10.2017 11:07
quelle
3

Sie ziehen eine falsche Version von OverlayW3CDOMStreamWriter .

SAAJStreamWriter erweitert OverlayW3CDOMStreamWriter mit isOverlaid field.

isOverlaid wurde in der Version 3.2 von package private in protected geändert und in die Version 3.1.7 zurückportiert, sodass auf die Unterklasse SAAJStreamWriter

zugegriffen werden kann

Beide untergeordneten Abhängigkeiten ziehen cxf core mit OverlayW3CDOMStreamWriter

1.

%Vor%

cxf-rt-frontend-jaxws - cxf-rt-bindings-soap - 3.1.11 für SAAJStreamWriter

cxf-rt-transports-http - cxf-core - 3.1.11 für OverlayW3CDOMStreamWriter

2.

%Vor%

cxf-rt-transports-http - cxf-core - 3.1.6 für OverlayW3CDOMStreamWriter

cxf core 3.1.6 wurde über 3.1.11 gewählt, da es näher ist, da maven standardmäßig Versionskonflikte mit einer nearest-wins-Strategie löst.

Also im Wesentlichen 3.1.11 SAAJStreamWriter klasse hat 3.1.11 OverlayW3CDOMStreamWriter erwartet aber gefunden 3.1.6 OverlayW3CDOMStreamWriter wo das isOverlaid Paket privat war und der Grund für Ihren Fehler ist.

Fix Änderung, um 3.1.11 für Jetty-Abhängigkeit zu verwenden oder zumindest Version 3.1.7 für beide obigen Abhängigkeiten zu verwenden.

%Vor%

Dies wird die 3.1.11 sowohl für cxf-Kern- als auch für cxf-Bindungen ziehen und sollte den Fehler beheben.

    
Veeram 16.10.2017 13:35
quelle

Tags und Links