Dump HTTP-requests in WildFly 8
Debuggen von HTTP-Anforderungen während der Entwicklung, ich möchte meine WildFly 8 application server-dump HTTP-Anforderungen, einschließlich der request-Methode und-Header, um eine log-Datei. server.log
wäre in Ordnung.
In den Quellen der WildFly ist HTTP-subsystem, fand ich RequestDumpingHandler und die entsprechende Protokollierung der Kategorie io.undertow.request.dump
Aber ich kann nicht herausfinden, wie zu installieren, header, so dass es wird angewendet für alle Anforderungen bedient, die von meiner Anwendung (ein KRIEG mit einigen statischen Ressourcen und die JAX-RS-handler).
In der entsprechenden Dokumentation Seite (Sog web-subsystem Konfiguration) nicht wirklich erklären-Handler. Es ist ein <handler>
element in der Konfiguration Abschnitt
<?xml version="1.0" ?>
<server xmlns="urn:jboss:domain:2.1">
...
<profile>
...
<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<!-- <dump-request /> ?? or something?-->
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
...
</profile>
...
</server>
aber soweit ich das beurteilen kann, nur <file>
- und proxy-rechnen(?).
Wie kann ich mich anmelden vollständigen details der eingehenden HTTP-requests in WildFly? Ich weiß, dass ich installieren konnte, einige logging-Mechanismus auf die JAX-RS-layer, aber ich hätte gerne eine dump-Mechanismus, die beiden Griffe REST-API-Aufrufe und statisch serviert Ressourcen.
InformationsquelleAutor der Frage Christian Klauser | 2014-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Würden Sie brauchen, um hinzuzufügen, RequestDumpingHandler zu Ihrem handler-Kette.
Als Teil von wildfly 8.1, das ist noch nicht möglich, in einer freundlichen Art und Weise.
Dies ist verbessert, 8.2 und 9, so werden Sie in der Lage, konfigurieren Sie dies, indem Sie so etwas wie dieses:
in 8.1 einzige option wäre jetzt hinzufügen ServletExtension http://undertow.io/undertow-docs/undertow-docs-1.2.0/#servlet-extensions
möchte hinzufügen, dass diese RequestDumpingHandler der äußeren Kette.
FWIW 8.2-release ist fast fertig, so konnte man warten, oder einfach nur bauen-Quellen für 8.x-Zweig.
Hinzufügen über config über die CLI, die Sie verwenden können:
InformationsquelleAutor der Antwort ctomc
Gibt es eine Reihe von Menschen Fragen, wie man die gesamte HTTP-body abgemeldet, nicht nur die Header.
Scheint es eine Antwort gibt: https://8bitplatoon.blogspot.com/2017/02/dumping-http-requests-and-responses-in.html
Kurz gesagt, wenn Sie, dass link nicht überleben, wird eine einfache Ergänzung zu Ihrem standalone.xml wird der trick:
<system-properties>
<property name="com.sun.xml.ws.transport.http.HttpAdapter.dump" value="true"/>
</system-properties>
Ich fügte hinzu, diese nach der
<extensions>...</extensions>
und vor<management>...</management>
neu gestartet, wildfly, und war in der Lage, vollständige HTTP-Körper in meinen server-logs (server.log-in meinem Fall).Dieser interagiert nicht mit oder abhängig von der Sog "Anfrage dumper" an alle, soweit ich das beurteilen kann, können Sie eine, die andere oder beide.
InformationsquelleAutor der Antwort John Henry Downing
Auf Wildfly 9 und 10.1.0, es funktioniert nur durch das hinzufügen
InformationsquelleAutor der Antwort Karthik Murugan