You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/02/20 03:50:13 UTC

svn commit: r912070 - in /cxf/trunk: rt/core/src/main/java/org/apache/cxf/transport/ rt/transports/http/src/main/java/org/apache/cxf/transport/http/ rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/ rt/transports/jms/src/test/java/org/apach...

Author: dkulp
Date: Sat Feb 20 02:50:12 2010
New Revision: 912070

URL: http://svn.apache.org/viewvc?rev=912070&view=rev
Log:
[CXF-183] Get decoupled Ws-A working with JMS transport

Added:
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java   (with props)
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml   (with props)
Modified:
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
    cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
    cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
    cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
    cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportFactory.java
    cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java
    cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
    cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java Sat Feb 20 02:50:12 2010
@@ -37,7 +37,10 @@
  */
 public abstract class AbstractDestination
     extends AbstractObservable implements Destination, DestinationWithEndpoint {
-
+    
+    public static final String PARTIAL_RESPONSE = AbstractDestination.class.getName()
+        + ".partial.response";
+    
     protected final EndpointReferenceType reference;
     protected final EndpointInfo endpointInfo;
     protected final Bus bus;
@@ -92,6 +95,9 @@
                     backChannel = getInbuiltBackChannel(inMessage);
                 }
             } else {
+                //this is a response targeting a decoupled endpoint.   Treat it as a oneway so
+                //we don't wait for a response.
+                inMessage.getExchange().setOneWay(true);
                 ConduitInitiatorManager mgr = bus.getExtension(ConduitInitiatorManager.class);
                 if (mgr != null) {
                     ConduitInitiator conduitInitiator 
@@ -135,9 +141,15 @@
      */
     protected boolean markPartialResponse(Message partialResponse,
                                           EndpointReferenceType decoupledTarget) {
-        return false;
+        
+        partialResponse.getExchange().put(EndpointReferenceType.class, decoupledTarget);
+        partialResponse.put(PARTIAL_RESPONSE, Boolean.TRUE);
+        return true;
     }
-    
+    protected boolean isPartialResponse(Message m) {
+        return Boolean.TRUE.equals(m.get(PARTIAL_RESPONSE));
+    }
+
     /**
      * @param inMessage the incoming message
      * @return the inbuilt backchannel

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Sat Feb 20 02:50:12 2010
@@ -88,8 +88,6 @@
     public static final String HTTP_CONFIG = "HTTP.CONFIG";
     public static final String PROTOCOL_HEADERS_CONTENT_TYPE = Message.CONTENT_TYPE.toLowerCase();
         
-    public static final String PARTIAL_RESPONSE = AbstractMultiplexDestination.class.getName()
-        + ".partial.response";
     public static final String RESPONSE_COMMITED = "http.response.done";
     public static final String REQUEST_REDIRECTED = "http.request.redirected";
     
@@ -390,15 +388,11 @@
     protected final boolean markPartialResponse(Message partialResponse,
                                        EndpointReferenceType decoupledTarget) {
         // setup the outbound message to for 202 Accepted
+        super.markPartialResponse(partialResponse, decoupledTarget);
         partialResponse.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_ACCEPTED);
-        partialResponse.getExchange().put(EndpointReferenceType.class, decoupledTarget);
-        partialResponse.put(PARTIAL_RESPONSE, Boolean.TRUE);
         return true;
     }
     
-    protected boolean isPartialResponse(Message m) {
-        return Boolean.TRUE.equals(m.get(PARTIAL_RESPONSE));
-    }
 
     private void initConfig() {
         PolicyEngine engine = bus.getExtension(PolicyEngine.class);

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Sat Feb 20 02:50:12 2010
@@ -139,7 +139,9 @@
     public void sendExchange(final Exchange exchange, final Object request) {
         LOG.log(Level.FINE, "JMSConduit send message");
 
-        final Message outMessage = exchange.getOutMessage();
+        final Message outMessage = exchange.getOutMessage() == null 
+            ? exchange.getOutFaultMessage() 
+            : exchange.getOutMessage();
         if (outMessage == null) {
             throw new RuntimeException("Exchange to be sent has no outMessage");
         }

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java Sat Feb 20 02:50:12 2010
@@ -47,6 +47,7 @@
 import org.apache.cxf.transport.jms.wsdl.PriorityType;
 import org.apache.cxf.transport.jms.wsdl.ReplyToNameType;
 import org.apache.cxf.transport.jms.wsdl.TimeToLiveType;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
 import org.springframework.jms.support.destination.JndiDestinationResolver;
 import org.springframework.jndi.JndiTemplate;
 
@@ -61,14 +62,6 @@
     private ServerBehaviorPolicyType serverBehavior;
     private AddressType address;
 
-    public JMSConfiguration createJMSConfigurationFromEndpointInfo(Bus bus,
-                                                                   EndpointInfo endpointInfo,
-                                                                   boolean isConduit) 
-        throws IOException {
-        createJMSConfigurationFromEndpointInfoForSpecification(bus, endpointInfo, isConduit);
-        return jmsConfig;
-    }
-
     public void setAddress(AddressType ad) {
         address = ad;
     }
@@ -128,12 +121,14 @@
     /**
      * Get the extensors from the wsdl and/or configuration that will
      * then be used to configure the JMSConfiguration object 
+     * @param target 
      */
     private JMSEndpoint getExtensorsAndConfig(Bus bus,
                            EndpointInfo endpointInfo,
+                           EndpointReferenceType target,
                            boolean isConduit) throws IOException {
         JMSEndpoint endpoint = null;
-        String adr = endpointInfo.getAddress();
+        String adr = target == null ? endpointInfo.getAddress() : target.getAddress().getValue();
         try {           
             endpoint = StringUtils.isEmpty(adr) || "jms://".equals(adr) || !adr.startsWith("jms") 
                 ?  new JMSEndpoint()
@@ -156,7 +151,7 @@
                                                         SessionPoolType.class);
         serverBehavior = endpointInfo.getTraversedExtensor(new ServerBehaviorPolicyType(),
                                                            ServerBehaviorPolicyType.class);
-        String name = endpointInfo.getName().toString()
+        String name = endpointInfo.getName() == null ? null : endpointInfo.getName().toString()
                       + (isConduit ? ".jms-conduit" : ".jms-destination");
 
         // Try to retrieve configuration information from the spring
@@ -165,7 +160,12 @@
 
         Configurer configurer = bus.getExtension(Configurer.class);
         if (null != configurer) {
-            configurer.configureBean(name, this);
+            if (name != null) {
+                configurer.configureBean(name, this);
+            }
+            if (adr != null) {
+                configurer.configureBean(adr, this);
+            }
         }
         return endpoint;
     }
@@ -176,11 +176,12 @@
      * @param isConduit
      * @return
      */
-    private JMSConfiguration createJMSConfigurationFromEndpointInfoForSpecification(Bus bus,
-                                                                                    EndpointInfo endpointInfo,
-                                                                                    boolean isConduit) 
+    public JMSConfiguration createJMSConfigurationFromEndpointInfo(Bus bus,
+                                                                   EndpointInfo endpointInfo,
+                                                                   EndpointReferenceType target,
+                                                                   boolean isConduit) 
         throws IOException {
-        JMSEndpoint endpoint = getExtensorsAndConfig(bus, endpointInfo, isConduit);
+        JMSEndpoint endpoint = getExtensorsAndConfig(bus, endpointInfo, target, isConduit);
 
         if (address != null) {
             mapAddressToEndpoint(address, endpoint);

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportFactory.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportFactory.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportFactory.java Sat Feb 20 02:50:12 2010
@@ -70,7 +70,10 @@
      */
     public Conduit getConduit(EndpointInfo endpointInfo, EndpointReferenceType target) throws IOException {
         JMSOldConfigHolder old = new JMSOldConfigHolder();
-        JMSConfiguration jmsConf = old.createJMSConfigurationFromEndpointInfo(bus, endpointInfo, true);
+        JMSConfiguration jmsConf = old.createJMSConfigurationFromEndpointInfo(bus,
+                                                                              endpointInfo,
+                                                                              target,
+                                                                              true);
         return new JMSConduit(endpointInfo, target, jmsConf, bus);
     }
 
@@ -79,7 +82,7 @@
      */
     public Destination getDestination(EndpointInfo endpointInfo) throws IOException {
         JMSOldConfigHolder old = new JMSOldConfigHolder();
-        JMSConfiguration jmsConf = old.createJMSConfigurationFromEndpointInfo(bus, endpointInfo, false);
+        JMSConfiguration jmsConf = old.createJMSConfigurationFromEndpointInfo(bus, endpointInfo, null, false);
         return new JMSDestination(bus, endpointInfo, jmsConf);
     }
     

Modified: cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java (original)
+++ cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java Sat Feb 20 02:50:12 2010
@@ -116,7 +116,7 @@
         }
         
         JMSConfiguration jmsConfig = new JMSOldConfigHolder()
-            .createJMSConfigurationFromEndpointInfo(bus, endpointInfo, true);
+            .createJMSConfigurationFromEndpointInfo(bus, endpointInfo, null, true);
         JMSConduit jmsConduit = new JMSConduit(endpointInfo, target, jmsConfig, bus);
         if (send) {
             // setMessageObserver

Modified: cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java (original)
+++ cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java Sat Feb 20 02:50:12 2010
@@ -86,7 +86,7 @@
 
     public JMSDestination setupJMSDestination(boolean send) throws IOException {
         JMSConfiguration jmsConfig = new JMSOldConfigHolder()
-            .createJMSConfigurationFromEndpointInfo(bus, endpointInfo, false);
+            .createJMSConfigurationFromEndpointInfo(bus, endpointInfo, null, false);
         JMSDestination jmsDestination = new JMSDestination(bus, endpointInfo, jmsConfig);
 
         if (send) {

Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Sat Feb 20 02:50:12 2010
@@ -752,7 +752,11 @@
         DestinationFactory factory =
             factoryManager.getDestinationFactoryForUri(address);
         if (factory != null) {
+            Endpoint ep = message.getExchange().get(Endpoint.class);
+            
             EndpointInfo ei = new EndpointInfo();
+            ei.setName(new QName(ep.getEndpointInfo().getName().getNamespaceURI(),
+                                 ep.getEndpointInfo().getName().getLocalPart() + ".decoupled"));
             ei.setAddress(address);
             destination = factory.getDestination(ei);
             Conduit conduit = ContextUtils.getConduit(null, message);

Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java?rev=912070&view=auto
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java (added)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java Sat Feb 20 02:50:12 2010
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.ws.addressing;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jws.WebService;
+
+import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * Tests the addition of WS-Addressing Message Addressing Properties
+ * in the non-decoupled case.
+ */
+public class DecoupledJMSTest extends MAPTestBase {
+    private static final String ADDRESS = "jms:jndi:dynamicQueues/testqueue0001?"
+        + "jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory"
+        + "&jndiConnectionFactoryName=ConnectionFactory&jndiURL=tcp://localhost:61500";
+    
+    
+    private static final String CONFIG =
+        "org/apache/cxf/systest/ws/addressing/jms_decoupled.xml";
+
+    public String getConfigFileName() {
+        return CONFIG;
+    }
+    
+    @Test
+    @Override
+    public void testImplicitMAPs() throws Exception {
+        super.testImplicitMAPs();
+    }
+    
+    public String getAddress() {
+        return ADDRESS;
+    }
+    
+    public URL getWSDLURL() {
+        return null;
+    }
+
+    @BeforeClass
+    public static void startServers() throws Exception {
+        
+        Map<String, String> props = new HashMap<String, String>();
+        if (System.getProperty("activemq.store.dir") != null) {
+            props.put("activemq.store.dir", System.getProperty("activemq.store.dir"));
+        }
+        props.put("java.util.logging.config.file", System
+            .getProperty("java.util.logging.config.file"));
+        assertTrue("server did not launch correctly", launchServer(EmbeddedJMSBrokerLauncher.class,
+                                                                   props, null));
+
+        assertTrue("server did not launch correctly", 
+                   launchServer(Server.class, null, 
+                                new String[] {ADDRESS, GreeterImpl.class.getName()}, false));
+    }
+    
+    @WebService(serviceName = "SOAPServiceAddressing", 
+                portName = "SoapPort", 
+                endpointInterface = "org.apache.hello_world_soap_http.Greeter", 
+                targetNamespace = "http://apache.org/hello_world_soap_http")
+    public static class GreeterImpl extends org.apache.cxf.systest.ws.addressing.AbstractGreeterImpl {
+        
+    }
+}
+

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/DecoupledJMSTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml?rev=912070&view=auto
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml (added)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml Sat Feb 20 02:50:12 2010
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:jaxws="http://cxf.apache.org/jaxws"
+       
+       xsi:schemaLocation="
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+    <import resource="wsa_interceptors.xml"/>
+    <jaxws:client name="{http://apache.org/hello_world_soap_http}GreeterPort"
+        createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="org.apache.cxf.ws.addressing.replyto" value="jms:jndi:dynamicQueues/testreplyto?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiConnectionFactoryName=ConnectionFactory&amp;jndiURL=tcp://localhost:61500" />
+        </jaxws:properties>
+    </jaxws:client>
+</beans>
+

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/jms_decoupled.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml?rev=912070&r1=912069&r2=912070&view=diff
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml (original)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml Sat Feb 20 02:50:12 2010
@@ -30,6 +30,7 @@
     </bean>
     <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
     <bean id="loggingIn" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+    <bean id="loggingOut" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
 
     <!-- We are adding the interceptors to the bus as we will have only one endpoint/service/bus. -->
 
@@ -45,27 +46,30 @@
             <list>
                 <ref bean="mapAggregator"/>
                 <ref bean="mapCodec"/>
+                <ref bean="loggingIn"/>
             </list>
         </property>
         <property name="outInterceptors">
             <list>
                 <ref bean="mapAggregator"/>
                 <ref bean="mapCodec"/>
+                <ref bean="loggingOut"/>
             </list>
         </property>
         <property name="outFaultInterceptors">
             <list>
                 <ref bean="mapAggregator"/>
                 <ref bean="mapCodec"/>
+                <ref bean="loggingOut"/>
             </list>
         </property>
     </bean>
 
-    <jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort" 
+    <!--jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort" 
                   createdFromAPI="true">
         <jaxws:conduitSelector>
             <bean class="org.apache.cxf.endpoint.DeferredConduitSelector"/>
         </jaxws:conduitSelector>
-    </jaxws:client>
+    </jaxws:client-->
     
 </beans>