You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2006/02/14 11:08:01 UTC

svn commit: r377681 - in /webservices/axis2/trunk/java/modules: core/src/org/apache/axis2/client/ core/src/org/apache/axis2/description/ core/src/org/apache/axis2/transport/ core/src/org/apache/axis2/transport/http/ core/src/org/apache/axis2/transport/...

Author: chinthaka
Date: Tue Feb 14 02:07:59 2006
New Revision: 377681

URL: http://svn.apache.org/viewcvs?rev=377681&view=rev
Log:
- renaming getReplyToEPR of ListenerManager to getEPRForService
- Adding a test for fault handling, yet to be completed.

Added:
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java
Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ListenerManager.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ClientUtils.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/TransportListener.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPServer.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSListener.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/mail/SimpleMailListener.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/tcp/TCPServer.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ListenerManager.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ListenerManager.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ListenerManager.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ListenerManager.java Tue Feb 14 02:07:59 2006
@@ -110,7 +110,7 @@
             TransportListenerState tsState = (TransportListenerState) listeners.get(transport);
 
             if (tsState != null) {
-                return tsState.listener.getReplyToEPR(serviceName);
+                return tsState.listener.getEPRForService(serviceName);
             } else {
                 throw new AxisFault(Messages.getMessage("replyNeedStarting", transport));
             }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ClientUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ClientUtils.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ClientUtils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ClientUtils.java Tue Feb 14 02:07:59 2006
@@ -62,6 +62,8 @@
                 transportIn = ac.getTransportIn(new QName(listenerTransportProtocol));
 
                 if (transportIn == null) {
+                    // TODO : User should not be mandated to give an IN transport. If it is not given, we should
+                    // ask from the ListenerManager to give any available transport for this client.
                     throw new AxisFault(Messages.getMessage("unknownTransport",
                             listenerTransportProtocol));
                 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/TransportListener.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/TransportListener.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/TransportListener.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/TransportListener.java Tue Feb 14 02:07:59 2006
@@ -35,5 +35,5 @@
 
     public abstract void stop() throws AxisFault;
 
-    public abstract EndpointReference getReplyToEPR(String serviceName) throws AxisFault;
+    public abstract EndpointReference getEPRForService(String serviceName) throws AxisFault;
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPServer.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPServer.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPServer.java Tue Feb 14 02:07:59 2006
@@ -246,9 +246,9 @@
      *
      * @param serviceName
      * @return an EndpointReference
-     * @see org.apache.axis2.transport.TransportListener#getReplyToEPR(String)
+     * @see org.apache.axis2.transport.TransportListener#getEPRForService(String)
      */
-    public EndpointReference getReplyToEPR(String serviceName) throws AxisFault {
+    public EndpointReference getEPRForService(String serviceName) throws AxisFault {
         String hostAddress ;
         try {
             hostAddress = SimpleHttpServerConnection.getIpAddress();

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSListener.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSListener.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSListener.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSListener.java Tue Feb 14 02:07:59 2006
@@ -250,7 +250,7 @@
         return properties;
     }
 
-    public EndpointReference getReplyToEPR(String serviceName) throws AxisFault {
+    public EndpointReference getEPRForService(String serviceName) throws AxisFault {
         try {
             JMSURLHelper url = new JMSURLHelper("jms:/" + destination);
             url.getProperties().putAll(properties);

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/mail/SimpleMailListener.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/mail/SimpleMailListener.java Tue Feb 14 02:07:59 2006
@@ -286,7 +286,7 @@
      *  (non-Javadoc)
      * @see org.apache.axis2.transport.TransportListener#replyToEPR(java.lang.String)
      */
-    public EndpointReference getReplyToEPR(String serviceName) throws AxisFault {
+    public EndpointReference getEPRForService(String serviceName) throws AxisFault {
         return new EndpointReference(replyTo + "/services/" + serviceName);
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/tcp/TCPServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/tcp/TCPServer.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/tcp/TCPServer.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/tcp/TCPServer.java Tue Feb 14 02:07:59 2006
@@ -151,7 +151,7 @@
      *  (non-Javadoc)
      * @see org.apache.axis2.transport.TransportListener#replyToEPR(java.lang.String)
      */
-    public EndpointReference getReplyToEPR(String serviceName) throws AxisFault {
+    public EndpointReference getEPRForService(String serviceName) throws AxisFault {
 
         // todo this has to fix
         return new EndpointReference("tcp://127.0.0.1:" + (serversocket.getLocalPort())

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java?rev=377681&r1=377680&r2=377681&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java Tue Feb 14 02:07:59 2006
@@ -25,9 +25,13 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.engine.util.FaultHandler;
 import org.apache.axis2.engine.util.TestConstants;
+import org.apache.axis2.integration.TestingUtils;
 import org.apache.axis2.integration.UtilServer;
+import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.ws.commons.om.OMAbstractFactory;
+import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.soap.SOAP11Constants;
 import org.apache.ws.commons.soap.SOAP12Constants;
 import org.apache.ws.commons.soap.SOAPEnvelope;
@@ -37,6 +41,7 @@
 
 import javax.xml.stream.XMLStreamException;
 import java.io.File;
+import java.util.ArrayList;
 
 public class FaultHandlingTest extends TestCase implements TestConstants {
 
@@ -44,6 +49,32 @@
 
     protected void setUp() throws Exception {
         UtilServer.start();
+    }
+
+    public void testFaultHandling() throws AxisFault {
+        ConfigurationContext configurationContext = UtilServer.getConfigurationContext();
+        ArrayList inPhasesUptoAndIncludingPostDispatch = configurationContext.getAxisConfiguration().getInPhasesUptoAndIncludingPostDispatch();
+        Phase phaseOne = (Phase) inPhasesUptoAndIncludingPostDispatch.get(0);
+        phaseOne.addHandler(new FaultHandler());
+
+
+        OMElement payload = TestingUtils.createDummyOMElement();
+        Options options = new Options();
+        options.setTo(targetEPR);
+        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+        options.setExceptionToBeThrownOnSOAPFault(false);
+        options.setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer(60000 *5));
+
+        ConfigurationContext configContext =
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
+        ServiceClient sender = new ServiceClient(configContext, null);
+        sender.setOptions(options);
+
+        OMElement result = sender.sendReceive(payload);
+
+        System.out.println("result = " + result);
+
+
     }
 
     public void testTwoHeadersSOAPMessage() throws AxisFault, XMLStreamException {

Added: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java?rev=377681&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java (added)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java Tue Feb 14 02:07:59 2006
@@ -0,0 +1,57 @@
+package org.apache.axis2.engine.util;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.handlers.AbstractHandler;
+import org.apache.ws.commons.om.OMAbstractFactory;
+import org.apache.ws.commons.om.OMElement;
+import org.apache.ws.commons.soap.SOAP12Constants;
+import org.apache.ws.commons.soap.SOAPFactory;
+import org.apache.ws.commons.soap.SOAPFaultDetail;
+import org.apache.ws.commons.soap.SOAPFaultReason;
+import org.apache.ws.commons.soap.SOAPFaultText;
+
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */
+
+public class FaultHandler extends AbstractHandler {
+
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        // this handler will be used to check the fault handling of Axis2.
+        // this will create some dummy faults and send
+
+        SOAPFactory soapFac = msgContext.isSOAP11() ? OMAbstractFactory.getSOAP11Factory() : OMAbstractFactory.getSOAP11Factory();
+
+        // I have a sudden fake error ;)
+        SOAPFaultText soapFaultText = soapFac.createSOAPFaultText();
+        soapFaultText.setLang("en");
+        soapFaultText.setText("This is a test fault message which happened suddenly");
+        SOAPFaultReason soapFaultReason = soapFac.createSOAPFaultReason();
+        soapFaultReason.setSOAPText(soapFaultText);
+
+        OMElement detailEntry = soapFac.createOMElement("MoreInfo", null);
+        detailEntry.setText("This error is a result due to a fake problem in Axis2 engine. Do not worry ;)");
+        SOAPFaultDetail faultDetail = soapFac.createSOAPFaultDetail();
+        faultDetail.addDetailEntry(detailEntry);
+
+        msgContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, soapFaultReason);
+        msgContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, faultDetail);
+
+        throw new AxisFault("A dummy exception has occurred");
+
+    }
+}