You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2010/09/06 16:57:06 UTC

svn commit: r993053 - /cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java

Author: ema
Date: Mon Sep  6 14:57:06 2010
New Revision: 993053

URL: http://svn.apache.org/viewvc?rev=993053&view=rev
Log:
[CXF-2974]:Log warning message instead of ServiceConstructionException in initializeClassInfo()

Modified:
    cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java

Modified: cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?rev=993053&r1=993052&r2=993053&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Mon Sep  6 14:57:06 2010
@@ -702,29 +702,28 @@ public class ReflectionServiceFactoryBea
                 //make it.
                 WSDLServiceBuilder.checkForWrapped(o, true);
             }
-
-            if (o.hasInput()) {
-                MessageInfo input = o.getInput();
-                MessagePartInfo part = input.getMessageParts().get(0);
-                part.setTypeClass(getRequestWrapper(method));
-                part.setProperty("REQUEST.WRAPPER.CLASSNAME", getRequestWrapperClassName(method));
-                part.setIndex(0);
-            }
-
-            if (o.hasOutput()) {
-                MessageInfo input = o.getOutput();
-                MessagePartInfo part = input.getMessageParts().get(0);
-                part.setTypeClass(getResponseWrapper(method));
-                part.setProperty("RESPONSE.WRAPPER.CLASSNAME", getResponseWrapperClassName(method));
-                part.setIndex(0);
-            }
-
-            setFaultClassInfo(o, method);
-            if (o.getUnwrappedOperation() == null) {
-                throw new ServiceConstructionException(new Message("COULD_NOT_UNWRAP", LOG,
-                                                                   o.getName(), method));
+            if (o.getUnwrappedOperation() != null) {
+                if (o.hasInput()) {
+                    MessageInfo input = o.getInput();
+                    MessagePartInfo part = input.getMessageParts().get(0);
+                    part.setTypeClass(getRequestWrapper(method));
+                    part.setProperty("REQUEST.WRAPPER.CLASSNAME", getRequestWrapperClassName(method));
+                    part.setIndex(0);
+                }
+
+                if (o.hasOutput()) {
+                    MessageInfo input = o.getOutput();
+                    MessagePartInfo part = input.getMessageParts().get(0);
+                    part.setTypeClass(getResponseWrapper(method));
+                    part.setProperty("RESPONSE.WRAPPER.CLASSNAME", getResponseWrapperClassName(method));
+                    part.setIndex(0);
+                }
+                setFaultClassInfo(o, method);
+                o = o.getUnwrappedOperation();
+            } else {
+                LOG.warning(new Message("COULD_NOT_UNWRAP", LOG, o.getName(), method).toString());
+                setFaultClassInfo(o, method);
             }
-            o = o.getUnwrappedOperation();
         } else if (o.isUnwrappedCapable()) {
             // remove the unwrapped operation because it will break the
             // the WrapperClassOutInterceptor, and in general makes
@@ -755,14 +754,14 @@ public class ReflectionServiceFactoryBea
         if (o.hasOutput()
             && !initializeParameter(o, method, -1, paramType, genericType)) {
             return false;
-        }
+        }        
         if (origOp.hasOutput()) {
             sendEvent(Event.OPERATIONINFO_OUT_MESSAGE_SET, origOp, method, origOp.getOutput());
         }
 
         setFaultClassInfo(o, method);
         return true;
-    }    
+    }   
     private boolean initializeParameter(OperationInfo o, Method method, int i,
                                      Class paramType, Type genericType) {
         boolean isIn = isInParam(method, i);