Znam jej stary wątek, ale może być przydatny dla osób szukających odpowiedzi.
W przypadku rejestrowania po stronie serwera AXIS-1 zaktualizuj swój numer server-config.wsdd
, jak poniżej. server-config.wsdd
znajduje się pod folderem Twojego pliku wojennego pod numerem WEB-INF
.
Nowa funkcja obsługi dziennika. Nazwa pliku wraz ze ścieżką jest konfigurowalna.
<handler name="log" type="java:org.apache.axis.handlers.LogHandler">
<parameter name="LogHandler.fileName" value="/tmp/req-res-axis.log" />
</handler>
Można również użyć parametru LogHandler.writeToConsole
o wartości co "true"
do logowania w dzienniku konsoli.
następnie zaktualizować sekcja <globalConfiguration>
mieć
<requestFlow>
<handler type="log"/>
</requestFlow>
<responseFlow>
<handler type="log"/>
</responseFlow>
Jeśli requestFlow
i responseFlow
zawiera inne ładowarki, umieścić dziennik jako pierwszy obsługi.
Powinny być używane wyłącznie do celów debugowania, a nie do produkcji. Ponieważ rejestrowanie jest naiwne i wykonuje normalną operację zapisu w pliku bez bufora. Po drugie, plik dziennika wzrośnie do GB, ponieważ nie ma mechanizmu rolowania.
W celu rejestrowania po stronie klienta AXIS-1 zaktualizuj swój numer client-config.wsdd
, jak poniżej. Numer client-config.wsdd
powinien należeć do twojego classpath
bezpośrednio pod folderem głównym skonfigurowanym w classpath
, nie w żadnych podfolderach. Najlepszą lokalizacją jest ten sam katalog, w którym znajduje się plik log4j.xml
lub log4j.properties
(dzięki #MukeshKoshyM post powyżej).
Ten sam problem, o którym mowa w przypadku rejestrowania po stronie serwera, dotyczy również strony klienta.
W przypadku produkcji należy napisać własną procedurę obsługi dziennika, rozszerzając numer org.apache.axis.handlers.BasicHandler
i konfigurując plik klasy w module obsługi. Sprawdź powyższą odpowiedź z #raspayu, aby skonfigurować własną. Aby zarejestrować błędy, należy zastąpić metodę public void onFault(MessageContext msgContext)
w programie obsługi.
Mój wpis był bardzo pomocny. Walczę o uzyskanie odpowiedzi XML. Jestem w stanie uzyskać żądanie, ale odpowiedź SOAP nie jest uzyskiwana, metoda invact inact wywołuje tylko na żądanie fazy. Mam całą sugerowaną konfigurację.Ponadto, gdy dodaję wpisy w konfiguracji globalnej dla żądania i odpowiedzi, tylko otrzymuję zarówno żądanie, jak i odpowiedź, ale wewnątrz znacznika transportu, otrzymuję tylko żądanie i brak odpowiedzi. – Jayesh
Używam TestNG i Selenium. Gdzie powinienem dodać handler? W pom.xml lub TestNG.xml? – R11G
Znalazłem tę odpowiedź bardzo przydatne, ale z tym nie jestem w stanie zalogować soapfault (wyjątek). Proszę zasugerować sposób na to samo.Mam znacznik faultFlow, ale to nie działa –