You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2006/07/20 19:43:49 UTC
svn commit: r424001 - in /webservices/axis2/trunk/java/modules/jaxws:
src/org/apache/axis2/jaxws/ src/org/apache/axis2/jaxws/client/
src/org/apache/axis2/jaxws/core/controller/
src/org/apache/axis2/jaxws/description/
src/org/apache/axis2/jaxws/handler/...
Author: scheu
Date: Thu Jul 20 10:43:48 2006
New Revision: 424001
URL: http://svn.apache.org/viewvc?rev=424001&view=rev
Log:
AXIS2-905
ExceptionFactory for single point of exception construction and root cause processing.
Contributors: Samuel Isokpunwu & Rich Scheuerle
Added:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ExceptionFactory.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/ExceptionFactoryTests.java
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/MessageException.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java Thu Jul 20 10:43:48 2006
@@ -170,7 +170,7 @@
}catch(AxisFault e){
//TODO
String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
- throw new WebServiceException(e.getMessage() + " " + todo);
+ throw ExceptionFactory.makeWebServiceException(e.getMessage() + " " + todo);
}
}
@@ -198,7 +198,7 @@
} catch(AxisFault e) {
String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
- throw new WebServiceException(e.getMessage() + " " + todo);
+ throw ExceptionFactory.makeWebServiceException(e.getMessage() + " " + todo);
}
}
@@ -258,10 +258,10 @@
getExecutor().submit(response).get();
} catch (InterruptedException e) {
e.printStackTrace();
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e.getMessage());
} catch (ExecutionException e) {
e.printStackTrace();
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e.getMessage());
}
//TODO: Need to figure out who/when the Listener should be shutdown
@@ -271,7 +271,7 @@
}catch(AxisFault e){
String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
- throw new WebServiceException(e.getMessage() + " " + todo);
+ throw ExceptionFactory.makeWebServiceException(e.getMessage() + " " + todo);
}
}
@@ -382,4 +382,4 @@
serviceClient.getOptions().setProperty(key, value);
}
}
-}
+}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java Thu Jul 20 10:43:48 2006
@@ -51,7 +51,7 @@
public <T> JAXBDispatch<T> createJAXBDispatch(JAXWSClientContext<T> clientContext){
if (clientContext == null) {
- throw new WebServiceException(
+ throw ExceptionFactory.makeWebServiceException(
"Internal Error ... JAXWSClientContext not found");
}
this.clientContext = clientContext;
@@ -69,14 +69,14 @@
dispatch.setJAXBContext(clientContext.getJAXBContext());
return dispatch;
}catch(AxisFault e){
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e.getMessage());
}
}
public <T> XMLDispatch<T> createXMLDispatch(JAXWSClientContext<T> clientContext){
if (clientContext == null) {
- throw new WebServiceException(
+ throw ExceptionFactory.makeWebServiceException(
"Internal Error ... JAXWSClientContext not found");
}
this.clientContext = clientContext;
@@ -92,7 +92,7 @@
dispatch.setMode(clientContext.getServiceMode());
return dispatch;
}catch(AxisFault e){
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
@@ -115,7 +115,7 @@
return sei.cast(proxyClass);
}catch(AxisFault e){
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
@@ -126,7 +126,7 @@
ConfigurationContext configCtx = factory.getClientConfigurationContext();
return configCtx;
} catch (Exception e) {
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java Thu Jul 20 10:43:48 2006
@@ -151,7 +151,7 @@
p.setJAXBContext(jaxbContext);
}
} catch (Exception e) {
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
rspParam = fromOM(rspEnvelope, rspParam, axisController.getServiceClient().getOptions().getSoapVersionURI());
@@ -161,37 +161,39 @@
public void invokeOneWay(Object obj) throws WebServiceException{
if(obj == null){
- throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Dispatch Cannot Invoke SEI with null object");
}
try{
Parameter param = ParameterFactory.createParameter(obj);
axisController.invokeOneWay(param, requestContext);
}catch(Exception e){
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
public Future<?> invokeAsync(Object obj, AsyncHandler asynchandler) throws WebServiceException {
if(obj == null){
- throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ throw ExceptionFactory.makeWebServiceException("Dispatch Cannot Invoke SEI with null object");
}
try{
Parameter param = ParameterFactory.createParameter(obj);
return axisController.invokeAsync(param, asynchandler, requestContext);
} catch(Exception e) {
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
public Response invokeAsync(Object obj)throws WebServiceException{
if(obj == null){
- throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Dispatch Cannot Invoke SEI with null object");
}
try{
Parameter param = ParameterFactory.createParameter(obj);
return axisController.invokeAsync(param, requestContext);
}catch(Exception e){
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ExceptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ExceptionFactory.java?rev=424001&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ExceptionFactory.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ExceptionFactory.java Thu Jul 20 10:43:48 2006
@@ -0,0 +1,344 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import java.lang.reflect.InvocationTargetException;
+
+import javax.xml.ws.ProtocolException;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.http.HTTPException;
+import javax.xml.ws.soap.SOAPFaultException;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.jaxws.message.MessageException;
+import org.apache.axis2.jaxws.message.MessageInternalException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * ExceptionFactory is used to create exceptions within the JAX-WS implementation.
+ * There are several reasons for using a factory to create exceptions.
+ * 1. We can intercept all exception creation and add the appropriate logging/serviceability.
+ * 2. Exceptions are chained. ExceptionFactory can lengthen or reduce the cause chains as
+ * necessary to support the JAX-WS programming model.
+ * 3. Prevents construction of the same exception. Uses similar principles as AxisFault.makeException.
+ *
+ * Example Usage:
+ * // Example usage
+ *
+ * public fooMethod() throws WebServiceException {
+ * try{
+ * ...
+ * }
+ * catch(Exception e){
+ * throw ExceptionFactory.makeWebServiceException(e);
+ * }
+ * }
+ *
+ *
+ */
+public class ExceptionFactory {
+
+ protected static Log log =
+ LogFactory.getLog(ExceptionFactory.class.getName());
+
+ /**
+ * Private Constructor
+ * All methods are static. The private constructor prevents instantiation.
+ */
+ private ExceptionFactory() {
+ }
+
+ /**
+ * Create a WebServiceException using the information from a given Throwable instance
+ * and message
+ * @param message
+ * @param throwable
+ * @return WebServiceException
+ */
+ public static WebServiceException makeWebServiceException(String message, Throwable throwable) {
+ try {
+ // See if there is already a WebServiceException (Note that the returned exception could be a ProtocolException or
+ // other kind of exception)
+ WebServiceException e = (WebServiceException) findException(throwable, WebServiceException.class);
+ if (e == null) {
+ e = createWebServiceException(message, throwable);
+ }
+ return e;
+ } catch (RuntimeException re) {
+ // TODO
+ // This is not a good situation, an exception occurred while building the exception.
+ // This should never occur! For now log the problem and rethrow...we may revisit this later
+ if (log.isDebugEnabled()) {
+ log.debug("Exception occurred while creating exception", re);
+ }
+ throw re;
+ }
+ }
+
+ /**
+ * Create a ProtocolException using the information from a Throwable and message
+ * @param message
+ * @param throwable
+ * @return ProtocolException
+ */
+ public static ProtocolException makeProtocolException(String message, Throwable throwable) {
+ try {
+ // See if there is already a ProtocolException
+ ProtocolException e = (ProtocolException) findException(throwable, ProtocolException.class);
+ if (e == null) {
+ e = createProtocolException(message, throwable);
+ }
+ return e;
+ } catch (RuntimeException re) {
+ // TODO
+ // This is not a good situation, an exception occurred while building the exception.
+ // This should never occur! For now log the problem and rethrow...we may revisit this later
+ if (log.isDebugEnabled()) {
+ log.debug("Exception occurred while creating exception", re);
+ }
+ throw re;
+ }
+ }
+
+ /**
+ * Create a MessageException using the information from a Throwable and message
+ * @param message
+ * @param throwable
+ * @return MessageException
+ */
+ public static MessageException makeMessageException(String message, Throwable throwable) {
+ try {
+ // See if there is already a MessgeException
+ MessageException e = (MessageException) findException(throwable, MessageException.class);
+ if (e == null) {
+ e = createMessageException(message, throwable);
+ }
+ return e;
+ } catch (RuntimeException re) {
+ // TODO
+ // This is not a good situation, an exception occurred while building the exception.
+ // This should never occur! For now log the problem and rethrow...we may revisit this later
+ if (log.isDebugEnabled()) {
+ log.debug("Exception occurred while creating exception", re);
+ }
+ throw re;
+ }
+ }
+
+ /**
+ * Create a MessageInternalException using the information from a Throwable and message
+ * @param message
+ * @param throwable
+ * @return MessageInternalException
+ */
+ public static MessageInternalException makeMessageInternalException(String message, Throwable throwable) {
+ try {
+ // See if there is already a HTTPException
+ MessageInternalException e = (MessageInternalException) findException(throwable, MessageInternalException.class);
+ if (e == null) {
+ e = createMessageInternalException(message, throwable);
+ }
+ return e;
+ } catch (RuntimeException re) {
+ // TODO
+ // This is not a good situation, an exception occurred while building the exception.
+ // This should never occur! For now log the problem and rethrow...we may revisit this later
+ if (log.isDebugEnabled()) {
+ log.debug("Exception occurred while creating exception", re);
+ }
+ throw re;
+ }
+ }
+
+ /**
+ * Make a WebServiceException with a given message
+ * @param message
+ * @return WebServiceException
+ */
+ public static WebServiceException makeWebServiceException(String message) {
+ return makeWebServiceException(message, null);
+ }
+
+ /**
+ * Create a WebServiceException using the information from a given Throwable instance
+ * @param throwable
+ * @return WebServiceException
+ */
+ public static WebServiceException makeWebServiceException(Throwable throwable){
+ return makeWebServiceException(null, throwable);
+ }
+
+ /**
+ * Create a MessageException using the information from a given Throwable instance
+ * @param throwable
+ * @return MessageException
+ */
+ public static MessageException makeMessageException(Throwable throwable){
+ return makeMessageException(null, throwable);
+ }
+
+ /**
+ * Make a MessageException with a given message
+ * @param message
+ * @return MessageException
+ */
+ public static MessageException makeMessageException(String message) {
+ return makeMessageException(message, null);
+ }
+
+ /**
+ * Create a WebServiceException
+ * @param message
+ * @param t Throwable
+ * @return WebServiceException
+ */
+ private static WebServiceException createWebServiceException(String message, Throwable t) {
+ Throwable rootCause = null;
+ if (t != null) {
+ rootCause = getRootCause(t);
+ }
+ WebServiceException e = new WebServiceException(message, t);
+ if (log.isDebugEnabled()) {
+ log.debug("Create Exception:", e);
+ }
+ return e;
+ }
+
+ /**
+ * Create a ProtocolException
+ * @param message
+ * @param t Throwable
+ * @return ProtocolException
+ */
+ private static ProtocolException createProtocolException(String message, Throwable t) {
+ Throwable rootCause = null;
+ if (t != null) {
+ rootCause = getRootCause(t);
+ }
+ ProtocolException e = new ProtocolException(message, t);
+ if (log.isDebugEnabled()) {
+ log.debug("create Exception:", t);
+ }
+ return e;
+ }
+
+ /**
+ * Create a MessageException
+ * @param message
+ * @param t Throwable
+ * @return MessageException
+ */
+ private static MessageException createMessageException(String message, Throwable t) {
+ Throwable rootCause = null;
+ if (t != null) {
+ rootCause = getRootCause(t);
+ }
+ MessageException e = new MessageException(message, t);
+ if (log.isDebugEnabled()) {
+ log.debug("create Exception:", t);
+ }
+ return e;
+ }
+
+ /**
+ * Create a MessageInternalException
+ * @param message
+ * @param t Throwable
+ * @return MessageException
+ */
+ private static MessageInternalException createMessageInternalException(String message, Throwable t) {
+ Throwable rootCause = null;
+ if (t != null) {
+ rootCause = getRootCause(t);
+ }
+ MessageInternalException e = new MessageInternalException(message, t);
+ if (log.isDebugEnabled()) {
+ log.debug("create Exception:", t);
+ }
+ return e;
+ }
+
+ /**
+ * Return the exception or nested cause that is assignable from the specified class
+ * @param t Throwable
+ * @param cls
+ * @return Exception or null
+ */
+ private static Exception findException(Throwable t, Class cls) {
+ while(t != null) {
+ if (cls.isAssignableFrom(t.getClass())) {
+ return (Exception) t;
+ }
+ t = getCause(t);
+ }
+ return null;
+ }
+
+ /**
+ * Gets the Throwable cause of the Exception. Some exceptions
+ * store the cause in a different field, which is why this method
+ * should be used when walking the causes.
+ * @param t Throwable
+ * @return Throwable or null
+ */
+ private static Throwable getCause(Throwable t) {
+ Throwable cause = null;
+
+ // Look for a specific cause for this kind of exception
+ if (t instanceof InvocationTargetException) {
+ cause = ((InvocationTargetException) t).getTargetException();
+ }
+
+ // If no specific cause, fall back to the general cause.
+ if (cause == null) {
+ cause = t.getCause();
+ }
+ return null;
+ }
+
+ /**
+ * This method searches the causes of the specified throwable
+ * until it finds one that is acceptable as a "root" cause.
+ *
+ * Example: If t is an AxisFault, the code traverses to the next cause.
+ *
+ * @param t Throwable
+ * @return Throwable root cause
+ */
+ private static Throwable getRootCause(Throwable t) {
+ while (t != null) {
+ Throwable nextCause = null;
+ if (t instanceof InvocationTargetException ||
+ t instanceof AxisFault) {
+ // Skip over this cause
+ nextCause = getCause(t);
+ if (nextCause == null) {
+ return t;
+ }
+ t = nextCause;
+ } else {
+ // This is the root cause
+ return t;
+ }
+ }
+ return t;
+ }
+
+}
+
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java Thu Jul 20 10:43:48 2006
@@ -30,6 +30,7 @@
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.jaxws.AxisController;
import org.apache.axis2.jaxws.BindingProvider;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.core.InvocationContext;
import org.apache.axis2.jaxws.core.InvocationContextFactory;
import org.apache.axis2.jaxws.core.MessageContext;
@@ -212,7 +213,7 @@
Parameter param = ParameterFactory.createParameter(obj);
return axisController.invokeAsync(param, requestContext);
}catch(Exception e){
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
@@ -281,4 +282,4 @@
response.fromEnvelope(mode, env);
return response;
}
-}
+}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java Thu Jul 20 10:43:48 2006
@@ -32,6 +32,7 @@
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.jaxws.AxisCallback;
import org.apache.axis2.jaxws.BindingProvider;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.core.InvocationContext;
import org.apache.axis2.jaxws.core.MessageContext;
import org.apache.axis2.jaxws.impl.AsyncListenerWrapper;
@@ -86,10 +87,10 @@
// Check to make sure we at least have a valid InvocationContext
// and request MessageContext
if (ic == null) {
- throw new WebServiceException("Cannot invoke; InvocationContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; InvocationContext was null");
}
if (ic.getRequestMessageContext() == null) {
- throw new WebServiceException("Cannot invoke; request MessageContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; request MessageContext was null");
}
// Setup the MessageContext for the response
@@ -115,7 +116,7 @@
OMElement reqEnvelope = requestMsgCtx.getMessageAsOM();
rspEnvelope = client.sendReceive(ServiceClient.ANON_OUT_IN_OP, reqEnvelope);
} catch (AxisFault e) {
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
// Set the response message on the response MessageContext
@@ -141,10 +142,10 @@
// Check to make sure we at least have a valid InvocationContext
// and request MessageContext
if (ic == null) {
- throw new WebServiceException("Cannot invoke; InvocationContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; InvocationContext was null");
}
if (ic.getRequestMessageContext() == null) {
- throw new WebServiceException("Cannot invoke; request MessageContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; request MessageContext was null");
}
// Setup the MessageContext for the response
@@ -173,7 +174,7 @@
OMElement reqEnvelope = requestMsgCtx.getMessageAsOM();
client.fireAndForget(ServiceClient.ANON_OUT_ONLY_OP, reqEnvelope);
} catch (AxisFault e) {
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
}
@@ -198,10 +199,10 @@
// Check to make sure we at least have a valid InvocationContext
// and request MessageContext
if (ic == null) {
- throw new WebServiceException("Cannot invoke; InvocationContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; InvocationContext was null");
}
if (ic.getRequestMessageContext() == null) {
- throw new WebServiceException("Cannot invoke; request MessageContext was null");
+ throw ExceptionFactory.makeWebServiceException("Cannot invoke; request MessageContext was null");
}
// Setup the MessageContext for the response
@@ -253,7 +254,7 @@
wrapper.setAsyncHandler(callback);
}
else {
- throw new WebServiceException("Cannot call asynchronous invoke with null callback");
+ throw ExceptionFactory.makeWebServiceException("Cannot call asynchronous invoke with null callback");
}
// Get the request message from the MessageContext and send it
@@ -263,7 +264,7 @@
client.sendReceiveNonBlocking(ServiceClient.ANON_OUT_IN_OP, reqEnvelope, axisCallback);
} catch (AxisFault e) {
e.printStackTrace();
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
// Now that the request has been sent, start the listener thread so that it can
@@ -281,10 +282,10 @@
future.get();
} catch (InterruptedException e) {
e.printStackTrace();
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e.getMessage());
} catch (ExecutionException e) {
e.printStackTrace();
- throw new WebServiceException(e.getMessage());
+ throw ExceptionFactory.makeWebServiceException(e.getMessage());
}
return wrapper;
@@ -325,7 +326,7 @@
AxisOperation operation = service.getOperation(new QName(operationName));
if (operation == null) {
- throw new WebServiceException("Operation not found.");
+ throw ExceptionFactory.makeWebServiceException("Operation not found.");
}
try {
@@ -338,7 +339,7 @@
}
}
else {
- throw new WebServiceException("Operation name not set.");
+ throw ExceptionFactory.makeWebServiceException("Operation name not set.");
}
return client;
@@ -353,4 +354,4 @@
return null;
}
-}
+}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java Thu Jul 20 10:43:48 2006
@@ -36,6 +36,7 @@
import org.apache.axis2.description.RobustOutOnlyAxisOperation;
import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
import org.apache.axis2.engine.AbstractDispatcher;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.util.WSDL4JWrapper;
import org.apache.axis2.jaxws.util.WSDLWrapper;
import org.apache.commons.logging.Log;
@@ -107,13 +108,16 @@
*/
public ServiceDescription(URL wsdlURL, QName serviceQName, Class serviceClass) {
if (serviceQName == null) {
- throw new WebServiceException("Invalid Service QName; cannot be null");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid Service QName; cannot be null");
}
if (serviceClass == null) {
- throw new WebServiceException("Invalid Service Class; cannot be null");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid Service Class; cannot be null");
}
if (!javax.xml.ws.Service.class.isAssignableFrom(serviceClass)) {
- throw new WebServiceException("Invalid Service Class; must be assignable to javax.xml.ws.Service");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid Service Class; must be assignable to javax.xml.ws.Service");
}
this.wsdlURL = wsdlURL;
@@ -148,9 +152,9 @@
try {
wsdlWrapper = new WSDL4JWrapper(this.wsdlURL);
} catch (WSDLException e) {
- // TODO Auto-generated catch block
+ // TODO NLS
e.printStackTrace();
- throw new WebServiceException("caught WSDL Exception" + e.getMessage());
+ throw ExceptionFactory.makeWebServiceException("caught WSDL Exception" + e.getMessage());
}
}
}
@@ -172,7 +176,7 @@
try {
axisService = serviceBuilder.populateService();
} catch (AxisFault e) {
- // TODO Auto-generated catch block
+ // TODO NLS
log.warn("ServiceDescription: Caught exception creating AxisService", e);
}
}
@@ -209,7 +213,8 @@
Definition definition = wsdlWrapper.getDefinition();
Service service = definition.getService(serviceQName);
if (service == null) {
- throw new WebServiceException("Service QName not found in WSDL");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Service QName not found in WSDL");
}
Map ports = service.getPorts();
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java Thu Jul 20 10:43:48 2006
@@ -11,6 +11,8 @@
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
+import org.apache.axis2.jaxws.ExceptionFactory;
+
public class HandlerChainProcessor {
@@ -66,7 +68,7 @@
if (LogicalHandler.class.isAssignableFrom(handlerClass.getClass())) {
if (protocolHandlersStarted)
// TODO: NLS better error message
- throw new WebServiceException("All logical handlers must come before all protocol handlers");
+ throw ExceptionFactory.makeWebServiceException("All logical handlers must come before all protocol handlers");
else {
logicalLength++;
}
@@ -75,10 +77,10 @@
protocolHandlersStarted = true;
else if (Handler.class.isAssignableFrom(handlerClass.getClass())) {
// TODO: NLS better error message
- throw new WebServiceException("cannot implement Handler directly");
+ throw ExceptionFactory.makeWebServiceException("cannot implement Handler directly");
} else {
// TODO: NLS better error message
- throw new WebServiceException("Some error");
+ throw ExceptionFactory.makeWebServiceException("Some error");
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java Thu Jul 20 10:43:48 2006
@@ -10,6 +10,7 @@
import javax.xml.ws.handler.PortInfo;
import javax.xml.ws.handler.soap.SOAPHandler;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
import org.apache.axis2.jaxws.spi.ServiceDelegate;
@@ -78,15 +79,15 @@
} catch (ClassNotFoundException e) {
// TODO: should we just ignore this problem?
// TODO: NLS log and throw
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
} catch (InstantiationException ie) {
// TODO: should we just ignore this problem?
// TODO: NLS log and throw
- throw new WebServiceException(ie);
+ throw ExceptionFactory.makeWebServiceException(ie);
} catch (IllegalAccessException e) {
// TODO: should we just ignore this problem?
// TODO: NLS log and throw
- throw new WebServiceException(e);
+ throw ExceptionFactory.makeWebServiceException(e);
}
// 9.2.1.2 sort them by Logical, then SOAP
@@ -97,10 +98,10 @@
protocolHandlers.add((SOAPHandler)handlerClass);
else if (Handler.class.isAssignableFrom(handlerClass.getClass())) {
// TODO: NLS better error message
- throw new WebServiceException("cannot implement Handler directly");
+ throw ExceptionFactory.makeWebServiceException("cannot implement Handler directly");
} else {
// TODO: NLS better error message
- throw new WebServiceException("Some error");
+ throw ExceptionFactory.makeWebServiceException("Some error");
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/MessageException.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/MessageException.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/MessageException.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/MessageException.java Thu Jul 20 10:43:48 2006
@@ -25,7 +25,7 @@
* (@see org.apache.axis2.jaxws.message.MessageInternalException)
*/
public class MessageException extends Exception {
-
+
/**
* @param message
*/
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java Thu Jul 20 10:43:48 2006
@@ -32,6 +32,7 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.databinding.JAXBBlock;
import org.apache.axis2.jaxws.message.factory.BlockFactory;
@@ -84,7 +85,7 @@
setQName(getQName(jaxb, jc));
return jaxb;
} catch(JAXBException je) {
- throw new MessageException(je);
+ throw ExceptionFactory.makeMessageException(je);
}
}
@@ -121,7 +122,7 @@
m.marshal(busObject, writer);
} catch(JAXBException je) {
// TODO NLS
- throw new MessageException(je);
+ throw ExceptionFactory.makeMessageException(je);
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java Thu Jul 20 10:43:48 2006
@@ -32,6 +32,7 @@
import javax.xml.transform.stream.StreamSource;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.MessageInternalException;
import org.apache.axis2.jaxws.message.databinding.SourceBlock;
@@ -94,7 +95,7 @@
// Okay, these are supported Source objects
} else {
// TODO NLS
- throw new MessageException("Unexpected Source:" + busObject.getClass());
+ throw ExceptionFactory.makeMessageException("Unexpected Source:" + busObject.getClass());
}
}
@@ -151,7 +152,7 @@
return busObject;
} else {
// TODO Missing Impl
- throw new MessageInternalException("Missing Code...Need to make a copy of the Source");
+ throw ExceptionFactory.makeMessageInternalException("Missing Code...Need to make a copy of the Source", null);
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java Thu Jul 20 10:43:48 2006
@@ -23,6 +23,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.Block;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.factory.BlockFactory;
@@ -105,7 +106,7 @@
public Object getBusinessObject(boolean consume) throws XMLStreamException, MessageException {
if (consumed) {
// TODO NLS
- throw new MessageException("The block is already consumed");
+ throw ExceptionFactory.makeMessageException("The block is already consumed");
}
if (busObject != null) {
busObject = _getBOFromBO(busObject, busContext, consume);
@@ -145,7 +146,7 @@
}
return qName;
} catch (XMLStreamException xse) {
- throw new MessageException(xse);
+ throw ExceptionFactory.makeMessageException(xse);
}
}
@@ -164,7 +165,7 @@
XMLStreamReader newReader = null;
if (consumed) {
// TODO NLS
- throw new MessageException("The block is already consumed");
+ throw ExceptionFactory.makeMessageException("The block is already consumed");
}
if (omElement != null) {
if (consume) {
@@ -187,7 +188,7 @@
boolean consume =true; // get the OM consumes the message
if (consumed) {
// TODO NLS
- throw new MessageException("The block is already consumed");
+ throw ExceptionFactory.makeMessageException("The block is already consumed");
}
if (omElement != null) {
newOMElement = omElement;
@@ -232,7 +233,7 @@
public void outputTo(XMLStreamWriter writer, boolean consume) throws XMLStreamException, MessageException {
if (consumed) {
// TODO NLS
- throw new MessageException("The block is already consumed");
+ throw ExceptionFactory.makeMessageException("The block is already consumed");
}
if (omElement != null) {
if (consume) {
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java Thu Jul 20 10:43:48 2006
@@ -25,6 +25,7 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.Attachment;
import org.apache.axis2.jaxws.message.Block;
import org.apache.axis2.jaxws.message.Message;
@@ -56,10 +57,10 @@
this.protocol = protocol;
if (protocol.equals(Protocol.unknown)) {
// TODO NLS
- throw new MessageException("Protocol unknown is not supported");
+ throw ExceptionFactory.makeMessageException("Protocol unknown is not supported");
} else if (protocol.equals(Protocol.rest)) {
// TODO NLS
- throw new MessageException("Protocol rest is not supported");
+ throw ExceptionFactory.makeMessageException("Protocol rest is not supported");
}
XMLPartFactory factory = (XMLPartFactory) FactoryRegistry.getFactory(XMLPartFactory.class);
xmlPart = factory.create(protocol);
@@ -81,7 +82,7 @@
*/
public SOAPMessage getAsSOAPMessage() throws MessageException {
// TODO Missing implementation
- throw new MessageException("Not Implemented Yet");
+ throw ExceptionFactory.makeMessageException("Not Implemented Yet");
}
/* (non-Javadoc)
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java Thu Jul 20 10:43:48 2006
@@ -25,6 +25,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.Block;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.MessageInternalException;
@@ -97,10 +98,10 @@
this.protocol = protocol;
if (protocol.equals(Protocol.unknown)) {
// TODO NLS
- throw new MessageException("Protocol unknown is not supported");
+ throw ExceptionFactory.makeMessageException("Protocol unknown is not supported");
} else if (protocol.equals(Protocol.rest)) {
// TODO NLS
- throw new MessageException("Protocol rest is not supported");
+ throw ExceptionFactory.makeMessageException("Protocol rest is not supported");
}
content = _createSpine(protocol);
contentType = SPINE;
@@ -121,7 +122,7 @@
} else if (qName.getNamespaceURI().equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
protocol = Protocol.soap12;
} else {
- throw new MessageException("Protocol rest is not supported");
+ throw ExceptionFactory.makeMessageException("Protocol rest is not supported");
}
}
@@ -144,7 +145,7 @@
break;
default:
// TODO NLS
- throw new MessageInternalException("Unknown type");
+ throw ExceptionFactory.makeMessageInternalException("Unknown type", null);
}
setContent(om, OM);
return om;
@@ -164,7 +165,7 @@
break;
default:
// TODO NLS
- throw new MessageInternalException("Unknown type");
+ throw ExceptionFactory.makeMessageInternalException("Unknown type", null);
}
setContent(se, SOAPENVELOPE);
return se;
@@ -184,7 +185,7 @@
break;
default:
// TODO NLS
- throw new MessageInternalException("Unknown type");
+ throw ExceptionFactory.makeMessageInternalException("Unknown type", null);
}
setContent(spine, SPINE);
return spine;
@@ -205,7 +206,7 @@
public XMLStreamReader getXMLStreamReader(boolean consume) throws MessageException {
if (consumed) {
// TODO NLS
- throw new MessageException("Already consumed");
+ throw ExceptionFactory.makeMessageException("Already consumed");
}
XMLStreamReader reader = null;
if (contentType == SPINE) {
@@ -229,7 +230,7 @@
public void outputTo(XMLStreamWriter writer, boolean consume) throws XMLStreamException, MessageException {
if (consumed) {
// TODO NLS
- throw new MessageException("Already consumed");
+ throw ExceptionFactory.makeMessageException("Already consumed");
}
if (contentType == SPINE) {
getContentAsXMLSpine().outputTo(writer, consume);
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java Thu Jul 20 10:43:48 2006
@@ -34,6 +34,7 @@
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.Block;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.MessageInternalException;
@@ -93,7 +94,7 @@
protocol = Protocol.soap12;
} else {
// TODO NLS
- throw new MessageInternalException("unrecognized protocol");
+ throw ExceptionFactory.makeMessageInternalException("unrecognized protocol", null);
}
}
@@ -121,7 +122,7 @@
} else {
// Process the Fault
// TODO NLS
- throw new MessageException("Not Implemented Yet");
+ throw ExceptionFactory.makeMessageException("Not Implemented Yet");
}
return;
}
@@ -154,7 +155,7 @@
try {
block = obf.createFrom((OMElement) node, null, null);
} catch (XMLStreamException xse) {
- throw new MessageException(xse);
+ throw ExceptionFactory.makeMessageException(xse);
}
blocks.add(block);
} else {
@@ -171,7 +172,7 @@
soapFactory = new SOAP11Factory();
} else {
// TODO NLS
- throw new MessageInternalException("unsupported protocol");
+ throw ExceptionFactory.makeMessageInternalException("unsupported protocol", null);
}
return soapFactory;
}
@@ -210,12 +211,12 @@
public javax.xml.soap.SOAPEnvelope getAsSOAPEnvelope() throws MessageException {
// TODO NLS
- throw new MessageInternalException("Should never be called");
+ throw ExceptionFactory.makeMessageInternalException("Should never be called", null);
}
public OMElement getAsOMElement() throws MessageException {
// TODO NLS
- throw new MessageInternalException("Should never be called");
+ throw ExceptionFactory.makeMessageInternalException("Should never be called", null);
}
/* (non-Javadoc)
@@ -242,7 +243,7 @@
}
return newBlock;
} catch (XMLStreamException xse) {
- throw new MessageException(xse);
+ throw ExceptionFactory.makeMessageException(xse);
}
}
@@ -276,7 +277,7 @@
}
return newBlock;
} catch (XMLStreamException xse) {
- throw new MessageException(xse);
+ throw ExceptionFactory.makeMessageException(xse);
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java Thu Jul 20 10:43:48 2006
@@ -22,6 +22,7 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.MessageInternalException;
@@ -69,7 +70,7 @@
public void reset() throws MessageInternalException {
if (!resettable) {
// TODO NLS
- throw new MessageInternalException("Can't reset non-resettable XMLStreamReader");
+ throw ExceptionFactory.makeMessageInternalException("Can't reset non-resettable XMLStreamReader", null);
}
reader = newReader();
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java Thu Jul 20 10:43:48 2006
@@ -36,6 +36,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.util.SAAJConverter;
import org.apache.axis2.jaxws.message.util.SOAPElementReader;
@@ -92,7 +93,7 @@
} catch (MessageException e) {
throw e;
} catch (SOAPException e) {
- throw new MessageException(e);
+ throw ExceptionFactory.makeMessageException(e);
}
return soapEnvelope;
}
@@ -137,7 +138,7 @@
}
if (env == null) {
// TODO NLS
- throw new MessageException("SOAPEnvelope is needed!");
+ throw ExceptionFactory.makeMessageException("SOAPEnvelope is needed!");
}
return buildSOAPTree((SOAPEnvelope) env, null, parent, reader, false);
}
@@ -241,9 +242,9 @@
} catch (MessageException e) {
throw e;
} catch (XMLStreamException e) {
- throw new MessageException(e);
+ throw ExceptionFactory.makeMessageException(e);
} catch (SOAPException e) {
- throw new MessageException(e);
+ throw ExceptionFactory.makeMessageException(e);
}
return root;
}
@@ -375,6 +376,6 @@
// Review We need NLS for this message, but this code will probably
// be added to JAX-WS. So for now we there is no NLS.
// TODO NLS
- throw new MessageException("Unexpected XMLStreamReader event:" + event);
+ throw ExceptionFactory.makeMessageException("Unexpected XMLStreamReader event:" + event);
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java Thu Jul 20 10:43:48 2006
@@ -35,6 +35,7 @@
import javax.xml.ws.soap.SOAPBinding;
import org.apache.axis2.jaxws.ClientMediator;
+import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.JAXWSClientContext;
import org.apache.axis2.jaxws.client.JAXBDispatch;
import org.apache.axis2.jaxws.client.XMLDispatch;
@@ -63,13 +64,15 @@
mediator = new ClientMediator();
if(!isValidServiceName()){
- throw new WebServiceException("Invalid Service QName, Service Name cannot be null or empty");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid Service QName, Service Name cannot be null or empty");
}
serviceDescription = new ServiceDescription(url, serviceQname, clazz);
if (isValidWSDLLocation()) {
if(!isServiceDefined(serviceQname)){
- throw new WebServiceException("Service " + serviceQname + " not defined in WSDL");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Service " + serviceQname + " not defined in WSDL");
}
readPorts();
}
@@ -78,13 +81,16 @@
public void addPort(QName portName, String bindingId, String endpointAddress) throws WebServiceException{
// TODO Auto-generated method stub
if(portName == null ){
- throw new WebServiceException("Invalid port, port cannot be null");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid port, port cannot be null");
}
if("".equals(portName)){
- throw new WebServiceException("Invalid port name");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid port name");
}
if (endpointAddress == null) {
- throw new WebServiceException("Invalid endpointAddress, endpointAddress cannot be null");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid endpointAddress, endpointAddress cannot be null");
}
if(bindingId!=null && !bindingId.equals(SOAPBinding.SOAP11HTTP_BINDING)){
@@ -104,8 +110,8 @@
port.setBindingID(bindingId);
port.setEndPointAddress(endpointAddress);
*/
-
- throw new WebServiceException("Port is already added");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Port is already added");
}
}
private <T> JAXWSClientContext<T> createClientContext(PortData portData, Class<T> clazz, Mode mode){
@@ -120,11 +126,13 @@
public <T> Dispatch<T> createDispatch(QName qname, Class<T> clazz, Mode mode) throws WebServiceException {
if(qname == null){
- throw new WebServiceException("Failed to create Dispatch port cannot be null.");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Failed to create Dispatch port cannot be null.");
}
if(!isPortValid(qname)){
- throw new WebServiceException("Failed to create Dispatch, Port "+qname+" not found, add port to Service before calling dispatch.");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Failed to create Dispatch, Port "+qname+" not found, add port to Service before calling dispatch.");
}
PortData portData = (PortData)ports.get(qname);
if(portData == null){
@@ -141,11 +149,13 @@
public Dispatch<java.lang.Object> createDispatch(QName qname, JAXBContext context, Mode mode) {
if (qname == null) {
- throw new WebServiceException("Failed to create Dispatch port cannot be null.");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Failed to create Dispatch port cannot be null.");
}
if (!isPortValid(qname)) {
- throw new WebServiceException("Failed to create Dispatch, Port "+qname+" not found, add port to Service before calling dispatch.");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Failed to create Dispatch, Port "+qname+" not found, add port to Service before calling dispatch.");
}
PortData portData = (PortData) ports.get(qname);
@@ -191,10 +201,11 @@
if(!isValidWSDLLocation()){
//TODO: Should I throw Exception if no WSDL
- //throw new WebServiceException("WSLD Not found");
+ //throw ExceptionFactory.makeWebServiceException("WSLD Not found");
}
if(sei == null){
- throw new WebServiceException("Invalid Service Endpoint Interface Class");
+ // TODO NLS
+ throw ExceptionFactory.makeWebServiceException("Invalid Service Endpoint Interface Class");
}
/*TODO: if portQname is null then fetch it from annotation.
* if portQname is provided then add that to the ports table.
Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/ExceptionFactoryTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/ExceptionFactoryTests.java?rev=424001&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/ExceptionFactoryTests.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/exception/ExceptionFactoryTests.java Thu Jul 20 10:43:48 2006
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws.exception;
+
+import org.apache.axis2.jaxws.ExceptionFactory;
+import javax.xml.ws.ProtocolException;
+import javax.xml.ws.http.HTTPException;
+import org.apache.axis2.jaxws.message.MessageException;
+import org.apache.axis2.jaxws.message.MessageInternalException;
+import junit.framework.TestCase;
+import javax.xml.ws.WebServiceException;
+
+/**
+ * Tests the ExceptionFactory
+ */
+public class ExceptionFactoryTests extends TestCase {
+ private static final String sampleText = "Sample";
+
+ /**
+ * @param name
+ */
+ public ExceptionFactoryTests(String name) {
+ super(name);
+ }
+
+ /**
+ * @teststrategy Tests creation of a WebServiceException
+ */
+ public void testExceptionFactory00() throws Exception {
+ try{
+ throw ExceptionFactory.makeWebServiceException(sampleText);
+ } catch(WebServiceException e){
+ assertTrue(sampleText.equals(e.getMessage()));
+ assertTrue(e.getCause() == null);
+ }
+ }
+
+ /**
+ * @teststrategy Tests creation of a WebServiceException from another WebServiceException
+ */
+ public void testExceptionFactory01() throws Exception {
+ try{
+ WebServiceException wse = (WebServiceException) ExceptionFactory.makeWebServiceException(sampleText);
+ throw ExceptionFactory.makeWebServiceException(wse);
+ } catch(WebServiceException e){
+ // Should only be a single WebServiceException
+ assertTrue(sampleText.equals(e.getMessage()));
+ assertTrue(e.getCause() == null);
+ }
+ }
+
+ /**
+ * @teststrategy Tests creation of a WebServiceException->WebServiceException->ProtocolException
+ */
+ public void testExceptionFactory02() throws Exception {
+ ProtocolException pe = new ProtocolException(sampleText);
+ try{
+ WebServiceException wse = (WebServiceException) ExceptionFactory.makeWebServiceException(pe);
+ throw ExceptionFactory.makeWebServiceException(wse);
+ } catch(WebServiceException e){
+ // Should only be a single WebServiceException with a Protocol Exception
+ assertTrue(sampleText.equals(e.getMessage()));
+ assertTrue(e.getCause() == null);
+ }
+ }
+
+ /**
+ * @teststrategy Tests creation of a WebServiceException->WebServiceException->NullPointerException
+ */
+ public void testExceptionFactory03() throws Exception {
+ NullPointerException npe = new NullPointerException();
+ try{
+ WebServiceException wse = (WebServiceException) ExceptionFactory.makeWebServiceException(npe);
+ throw ExceptionFactory.makeWebServiceException(wse);
+ } catch(WebServiceException e){
+ // Should only be a single WebServiceException with a Protocol Exception
+ assertTrue(e.getMessage() == null);
+ assertTrue(e.getCause() == npe);
+ }
+ }
+
+}
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java?rev=424001&r1=424000&r2=424001&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java Thu Jul 20 10:43:48 2006
@@ -25,6 +25,7 @@
import org.apache.axis2.jaxws.description.ServiceDescriptionTests;
import org.apache.axis2.jaxws.description.WSDLDescriptionTests;
import org.apache.axis2.jaxws.description.WSDLTests;
+import org.apache.axis2.jaxws.exception.ExceptionFactoryTests;
import org.apache.axis2.jaxws.handler.HandlerChainProcessorTests;
import org.apache.axis2.jaxws.message.BlockTests;
import org.apache.axis2.jaxws.message.MessageTests;
@@ -57,6 +58,8 @@
suite.addTestSuite(StringProviderTests.class);
suite.addTestSuite(SourceProviderTests.class);
+
+ suite.addTestSuite(ExceptionFactoryTests.class);
// Start (and stop) the server only once for all the tests
TestSetup testSetup = new TestSetup(suite) {
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org