summaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/util/LoggingHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/util/LoggingHandler.java')
-rw-r--r--src/main/java/at/gv/util/LoggingHandler.java41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/main/java/at/gv/util/LoggingHandler.java b/src/main/java/at/gv/util/LoggingHandler.java
index f5c63c5..f4f2685 100644
--- a/src/main/java/at/gv/util/LoggingHandler.java
+++ b/src/main/java/at/gv/util/LoggingHandler.java
@@ -18,6 +18,11 @@ package at.gv.util;
import java.io.ByteArrayOutputStream;
import java.io.OutputStreamWriter;
+import java.util.Arrays;
+import java.util.Base64;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
import javax.xml.namespace.QName;
@@ -26,6 +31,7 @@ import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
+import org.apache.cxf.message.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,11 +46,12 @@ public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {
Logger log = LoggerFactory.getLogger(LoggingHandler.class);
+ @Override
public boolean handleMessage(SOAPMessageContext context) {
- SOAPMessage msg = context.getMessage();
- boolean request = ((Boolean) context
+ final SOAPMessage msg = context.getMessage();
+ final boolean request = ((Boolean) context
.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue();
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
if (request) {
@@ -53,27 +60,43 @@ public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {
msg.writeTo(bos);
}
- OutputStreamWriter writer = new OutputStreamWriter(bos);
- String encoding = writer.getEncoding();
-
-
+ final OutputStreamWriter writer = new OutputStreamWriter(bos);
+ writer.getEncoding();
- log.trace(bos.toString());
+ //log.trace(bos.toString());
log.trace(new String(bos.toByteArray()));
+ log.trace("B64: " + Base64.getEncoder().encodeToString(bos.toByteArray()));
+ final Map<String, List> headers = (Map<String, List>) context.get(Message.PROTOCOL_HEADERS);
+ if (headers != null) {
+ for (final Entry<String, List> el : headers.entrySet()) {
+ if (el.getValue() != null)
+ log.trace("Header: " + el.getKey() + " | Value: " + Arrays.toString(el.getValue().toArray()));
+ else
+ log.trace("Header: " + el.getKey() + " | Value: " + "'null'");
+
+ }
+
+
+ } else
+ log.trace("No HTTP headers");
+
- } catch (Exception e) {
+ } catch (final Exception e) {
log.trace(e.getMessage(), e);
}
return true;
}
+ @Override
public boolean handleFault(SOAPMessageContext context) {
return handleMessage(context);
}
+ @Override
public void close(MessageContext context) {
}
+ @Override
public Set<QName> getHeaders() {
return null;
}