[jbossws-commits] JBossWS SVN: r9590 - in framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test: java/org/jboss/test/ws/jaxws/samples/exception and 1 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu Mar 12 08:57:35 EDT 2009


Author: darran.lofthouse at jboss.com
Date: 2009-03-12 08:57:35 -0400 (Thu, 12 Mar 2009)
New Revision: 9590

Added:
   framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.java
   framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml
Modified:
   framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/ant-import/build-jars-jaxws.xml
   framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/ExceptionTestCase.java
   framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpointImpl.java
Log:
[JBPAPP-1772] Fault handler chain is not called when user application exceptions are thrown.

Modified: framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/ant-import/build-jars-jaxws.xml
===================================================================
--- framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/ant-import/build-jars-jaxws.xml	2009-03-12 12:57:23 UTC (rev 9589)
+++ framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/ant-import/build-jars-jaxws.xml	2009-03-12 12:57:35 UTC (rev 9590)
@@ -90,6 +90,8 @@
         <include name="org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpoint.class"/>
         <include name="org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpointImpl.class"/>
         <include name="org/jboss/test/ws/jaxws/samples/exception/server/UserException.class"/>
+      	<include name="org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.class"/>
+      	<include name="org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml"/>
       </classes>
     </war>
 

Modified: framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/ExceptionTestCase.java
===================================================================
--- framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/ExceptionTestCase.java	2009-03-12 12:57:23 UTC (rev 9589)
+++ framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/ExceptionTestCase.java	2009-03-12 12:57:35 UTC (rev 9590)
@@ -91,7 +91,7 @@
       catch (SOAPFaultException e)
       {
          String faultString = e.getFault().getFaultString();
-         assertTrue(faultString.indexOf("oh no, a runtime exception occured.") >= 0);
+         assertTrue(faultString.indexOf("OH NO, A RUNTIME EXCEPTION OCCURED.") >= 0);
       }
    }
 
@@ -104,7 +104,7 @@
       }
       catch (SOAPFaultException e)
       {
-         assertEquals("this is a fault string!", e.getFault().getFaultString());
+         assertEquals("THIS IS A FAULT STRING!", e.getFault().getFaultString());
          assertEquals("mr.actor", e.getFault().getFaultActor());
          assertEquals("FooCode", e.getFault().getFaultCodeAsName().getLocalName());
          assertEquals("http://foo", e.getFault().getFaultCodeAsName().getURI());
@@ -128,7 +128,7 @@
       catch (UserException_Exception e)
       {
          UserException ue = e.getFaultInfo();
-         assertEquals("Some validation error", ue.getMessage());
+         assertEquals("SOME VALIDATION ERROR", ue.getMessage());
          assertEquals("validation", ue.getErrorCategory());
          assertEquals(123, ue.getErrorCode());
       }

Modified: framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpointImpl.java
===================================================================
--- framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpointImpl.java	2009-03-12 12:57:23 UTC (rev 9589)
+++ framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/ExceptionEndpointImpl.java	2009-03-12 12:57:35 UTC (rev 9590)
@@ -21,6 +21,7 @@
  */
 package org.jboss.test.ws.jaxws.samples.exception.server;
 
+import javax.jws.HandlerChain;
 import javax.jws.WebService;
 import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPException;
@@ -30,6 +31,7 @@
 
 
 @WebService(endpointInterface = "org.jboss.test.ws.jaxws.samples.exception.server.ExceptionEndpoint")
+ at HandlerChain(file = "jaxws-handlers-server.xml")
 public class ExceptionEndpointImpl implements ExceptionEndpoint
 {
    public void throwRuntimeException()

Copied: framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.java (from rev 9515, framework/branches/jbossws-framework-2.0.1.GA_CP/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.java)
===================================================================
--- framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.java	                        (rev 0)
+++ framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/TestHandler.java	2009-03-12 12:57:35 UTC (rev 9590)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.exception.server;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+
+import org.jboss.wsf.test.GenericSOAPHandler;
+
+/**
+ * A simple server side handler applying uppercase function to the error message strings.
+ *
+ * @author alessio.soldano at jboss.org
+ * @since 12-Feb-2008
+ */
+public class TestHandler extends GenericSOAPHandler
+{
+   @SuppressWarnings("unchecked")
+   public boolean handleFault(MessageContext msgContext)
+   {
+      try
+      {
+         SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+         SOAPBody soapBody = soapMessage.getSOAPBody();
+         SOAPBodyElement soapBodyElement = (SOAPBodyElement)soapBody.getChildElements().next();
+         SOAPElement faultStringElement = (SOAPElement)soapBodyElement.getChildElements(new QName("faultstring")).next();
+         faultStringElement.setValue(faultStringElement.getValue().toUpperCase());
+         Iterator<SOAPElement> itDetail = soapBodyElement.getChildElements(new QName("detail"));
+         if (itDetail.hasNext())
+         {
+            Iterator<SOAPElement> itException = itDetail.next().getChildElements(new QName("http://server.exception.samples.jaxws.ws.test.jboss.org/","UserException"));
+            if (itException.hasNext())
+            {
+               SOAPElement messageElement = (SOAPElement)itException.next().getChildElements(new QName("message")).next();
+               messageElement.setValue(messageElement.getValue().toUpperCase());
+            }
+         }
+      }
+      catch (Exception e)
+      {
+         throw  new WebServiceException(e);
+      }
+      return true;
+   }
+}

Copied: framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml (from rev 9515, framework/branches/jbossws-framework-2.0.1.GA_CP/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml)
===================================================================
--- framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml	                        (rev 0)
+++ framework/branches/jbossws-framework-2.0.1.GA_CP03_JBPAPP-1772/src/test/java/org/jboss/test/ws/jaxws/samples/exception/server/jaxws-handlers-server.xml	2009-03-12 12:57:35 UTC (rev 9590)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
+                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee javaee_web_services_1_2.xsd">
+
+   <handler-chain>
+      <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
+      <handler>
+         <handler-name>TestHandler</handler-name>
+         <handler-class>org.jboss.test.ws.jaxws.samples.exception.server.TestHandler</handler-class>
+      </handler>
+   </handler-chain>
+</handler-chains>
\ No newline at end of file




More information about the jbossws-commits mailing list