Index: trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/AbstractTC.java
===================================================================
--- trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/AbstractTC.java	(revision 1390)
+++ trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/AbstractTC.java	(revision 1392)
@@ -15,4 +15,8 @@
 package de.ugoe.cs.autoquest.httpmonitor;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.BufferedReader;
 import java.io.File;
@@ -35,4 +39,9 @@
 import org.junit.Before;
 
+import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.httpmonitor.exchange.HttpExchange;
+import de.ugoe.cs.autoquest.httpmonitor.exchange.Method;
+import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPEventType;
+import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPTarget;
 import de.ugoe.cs.util.console.TextConsole;
 
@@ -208,4 +217,34 @@
         return message.toString();
     }
+    
+    /**
+     *
+     */
+    protected void assertEvent(Event event, String method, String message, String response) {
+        assertNotNull(event);
+        assertNotNull(event.getType());
+        assertNotNull(event.getTarget());
+        
+        assertTrue(event.getType() instanceof HTTPEventType);
+        assertTrue(event.getTarget() instanceof HTTPTarget);
+        
+        HttpExchange exchange = ((HTTPEventType) event.getType()).getExchange();
+        
+        assertEquals(Method.fromValue(method), exchange.getRequest().getMethod());
+        
+        if (message != null) {
+            assertEquals(message, exchange.getRequest().getContent().getData());
+        }
+        else if (exchange.getRequest().getContent() != null) {
+            System.err.println(exchange.getRequest().getContent().getData());
+        }
+        
+        if (response != null) {
+            assertEquals(response, exchange.getResponse().getContent().getData());
+        }
+        else if (exchange.getResponse().getContent() != null) {
+            System.err.println(exchange.getResponse().getContent().getData());
+        }
+    }
 
     /**
Index: trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java
===================================================================
--- trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java	(revision 1390)
+++ trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java	(revision 1392)
@@ -22,4 +22,5 @@
 import java.io.File;
 import java.io.StringWriter;
+import java.net.URL;
 import java.util.Collection;
 import java.util.Iterator;
@@ -28,4 +29,5 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
+import javax.xml.namespace.QName;
 
 import org.apache.http.HttpEntity;
@@ -46,4 +48,8 @@
 import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPEventType;
 import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPTarget;
+import dummyservice.DummyService;
+import dummyservice.DummyServicePortType;
+import dummyservice.VerifyUserInMsgType;
+import dummyservice.VerifyUserOutMsgType;
 
 /**
@@ -201,15 +207,5 @@
         assertEquals(1, sequence.size());
 
-        assertNotNull(sequence.get(0));
-        assertNotNull(sequence.get(0).getType());
-        assertTrue(sequence.get(0).getType() instanceof HTTPEventType);
-
-        assertNotNull(sequence.get(0).getTarget());
-        assertTrue(sequence.get(0).getTarget() instanceof HTTPTarget);
-
-        HttpExchange exchange = ((HTTPEventType) sequence.get(0).getType()).getExchange();
-        
-        assertEquals(message, exchange.getRequest().getContent().getData());
-        assertEquals(response, exchange.getResponse().getContent().getData());
+        assertEvent(sequence.get(0), "POST", message, response);
     }
 
@@ -295,15 +291,63 @@
         assertEquals(1, sequence.size());
 
-        assertNotNull(sequence.get(0));
-        assertNotNull(sequence.get(0).getType());
-        assertTrue(sequence.get(0).getType() instanceof HTTPEventType);
-
-        assertNotNull(sequence.get(0).getTarget());
-        assertTrue(sequence.get(0).getTarget() instanceof HTTPTarget);
-
-        HttpExchange exchange = ((HTTPEventType) sequence.get(0).getType()).getExchange();
-        
-        assertEquals(message, exchange.getRequest().getContent().getData());
-        assertEquals(response, exchange.getResponse().getContent().getData());
+        assertEvent(sequence.get(0), "POST", message, response);
+    }
+
+    @Test
+    public void test_SOAP_ProxyAndMonitor() throws Exception {
+        monitor = new HttpMonitor(new String[] { LOG_FILE_DIR, MONITOR_PORT + "" });
+
+        monitor.init();
+        monitor.start();
+
+        proxy = new HttpMonitoringProxy
+            (new String[] { LOG_FILE_DIR, PROXY_PORT + "",
+                            "localhost:" + DUMMY_SERVER_PORT, "localhost:" + MONITOR_PORT });
+
+        proxy.init();
+        proxy.start();
+
+        DummyService service = new DummyService
+            (new URL("http://localhost:" + PROXY_PORT + "/dummyWebapp/DummyServiceSOAPPort?wsdl"),
+             new QName("DummyService", "DummyService"));
+
+        DummyServicePortType dummyService = service.getDummyServiceSOAPPort();
+        
+        dummyservice.ObjectFactory factory = new dummyservice.ObjectFactory();
+        VerifyUserInMsgType request = factory.createVerifyUserInMsgType();
+        VerifyUserOutMsgType response = dummyService.verifyUser(request);
+
+        assertNotNull(response);
+        
+        // the monitor needs some time to receive the exchange --> give it
+        Thread.sleep(1000);
+        
+        monitor.stop();
+        monitor = null;
+
+        File logFile = new File(LOG_FILE_DIR + File.separator + "httpmonitor_000.log");
+        
+        assertTrue(logFile.exists());
+        
+        HTTPLogParser parser = new HTTPLogParser();
+
+        parser.parseFile(logFile);
+
+        // check the sequences
+        Collection<List<Event>> sequences = parser.getSequences();
+
+        assertNotNull(sequences);
+
+        Iterator<List<Event>> iterator = sequences.iterator();
+        assertTrue(iterator.hasNext());
+
+        List<Event> sequence = iterator.next();
+        assertFalse(iterator.hasNext());
+
+        assertNotNull(sequence);
+        assertEquals(2, sequence.size());
+
+        assertEvent(sequence.get(0), "GET", null, null); // get WSDL
+        assertEvent(sequence.get(1), "POST", null, null); // send request
     }
     
Index: trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitoringProxyTest.java
===================================================================
--- trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitoringProxyTest.java	(revision 1390)
+++ trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitoringProxyTest.java	(revision 1392)
@@ -49,6 +49,4 @@
 import de.ugoe.cs.autoquest.httpmonitor.proxy.HttpMonitoringProxy;
 import de.ugoe.cs.autoquest.plugin.http.HTTPLogParser;
-import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPEventType;
-import de.ugoe.cs.autoquest.plugin.http.eventcore.HTTPTarget;
 import dummyservice.DummyService;
 import dummyservice.DummyServicePortType;
@@ -445,34 +443,4 @@
         assertNotNull(exchange.getResponse().getContent().getData());
     }
-    
-    /**
-     *
-     */
-    private void assertEvent(Event event, String method, String message, String response) {
-        assertNotNull(event);
-        assertNotNull(event.getType());
-        assertNotNull(event.getTarget());
-        
-        assertTrue(event.getType() instanceof HTTPEventType);
-        assertTrue(event.getTarget() instanceof HTTPTarget);
-        
-        HttpExchange exchange = ((HTTPEventType) event.getType()).getExchange();
-        
-        assertEquals(Method.fromValue(method), exchange.getRequest().getMethod());
-        
-        if (message != null) {
-            assertEquals(message, exchange.getRequest().getContent().getData());
-        }
-        else if (exchange.getRequest().getContent() != null) {
-            System.err.println(exchange.getRequest().getContent().getData());
-        }
-        
-        if (response != null) {
-            assertEquals(response, exchange.getResponse().getContent().getData());
-        }
-        else if (exchange.getResponse().getContent() != null) {
-            System.err.println(exchange.getResponse().getContent().getData());
-        }
-    }
 
     /**
