Author: heiko.braun(a)jboss.com
Date: 2007-04-11 08:14:11 -0400 (Wed, 11 Apr 2007)
New Revision: 2790
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPElementImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSProviderMetaDataBuilder.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
Log:
Fix sloppy implementation
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java
===================================================================
---
trunk/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java 2007-04-11
12:09:17 UTC (rev 2789)
+++
trunk/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java 2007-04-11
12:14:11 UTC (rev 2790)
@@ -179,15 +179,13 @@
return resMessage;
}
- catch(SocketTimeoutException se)
- {
- if(timeout!=null)
- throw new WSTimeoutException("Timeout after: " + timeout +
"ms", new Long(timeout.toString()));
- else
- throw new IOException(se.getMessage());
- }
catch (Throwable th)
- {
+ {
+ if(timeout!=null && (th.getCause() instanceof SocketTimeoutException))
+ {
+ throw new WSTimeoutException("Timeout after: " + timeout +
"ms", new Long(timeout.toString()));
+ }
+
IOException io = new IOException("Could not transmit message");
io.initCause(th);
throw io;
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-04-11
12:09:17 UTC (rev 2789)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-04-11
12:14:11 UTC (rev 2790)
@@ -83,6 +83,9 @@
// while transitioning DOM expansion needs to be locked
private boolean lockDOMExpansion = false;
+ public static final QName PROVIDER_RETURN_VALUE_NAME = new
QName("invokeReturn");
+ public static final QName PROVIDER_PARAM_NAME = new QName("invokeParam");
+
/** Construct a SOAPContentElement
*/
public SOAPContentElement(Name name)
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPElementImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPElementImpl.java 2007-04-11
12:09:17 UTC (rev 2789)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPElementImpl.java 2007-04-11
12:14:11 UTC (rev 2790)
@@ -139,6 +139,11 @@
if (Constants.NS_SOAP11_ENV.equals(getNamespaceURI()) ||
Constants.NS_SOAP12_ENV.equals(getNamespaceURI()))
throw new SOAPException("Changing the name of this SOAP Element is not
allowed: " + getLocalName());
+ return setElementQNameInternal(qname);
+ }
+
+ public SOAPElement setElementQNameInternal(QName qname) throws SOAPException
+ {
elementName = new NameImpl(qname);
Document owner = domNode.getOwnerDocument();
@@ -148,6 +153,7 @@
return this.completeNamespaceDeclaration();
}
+
/**
* Adds an attribute with the specified name and value to this SOAPElement object.
*
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java 2007-04-11 12:09:17
UTC (rev 2789)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java 2007-04-11 12:14:11
UTC (rev 2790)
@@ -23,21 +23,6 @@
// $Id: $
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import javax.activation.DataHandler;
-import javax.activation.DataSource;
-import javax.xml.namespace.QName;
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.transform.Source;
-
import org.jboss.logging.Logger;
import org.jboss.ws.Constants;
import org.jboss.ws.WSException;
@@ -58,6 +43,20 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import javax.activation.DataHandler;
+import javax.activation.DataSource;
+import javax.xml.namespace.QName;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+import javax.xml.transform.Source;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Array;
+import java.lang.reflect.Method;
+import java.util.List;
+
/**
* Represents the XML_VALID state of an {@link SOAPContentElement}.<br>
* Aggregates a {@link XMLFragment}.
@@ -297,17 +296,41 @@
// Make sure the content root element name matches this element name
Name name = container.getElementName();
- if (!contentRootName.equals(name))
+ QName qname = container.getElementQName();
+ boolean artificalElement = (SOAPContentElement.PROVIDER_PARAM_NAME.equals(qname) ||
SOAPContentElement.PROVIDER_RETURN_VALUE_NAME.equals(qname));
+
+ if ( !artificalElement && !contentRootName.equals(name) )
throw new WSException("Content root name does not match element name:
" + contentRootName + " != " + name);
// Remove all child nodes
container.removeContents();
+
+ try
+ {
+ // In some cases we are using artifical element names
+ // These need to be replaced (costly!)
+ if(artificalElement)
+ {
+ QName tmp = null;
+ if (rootPrefix != null)
+ tmp = new QName(rootNS, rootLocalName, rootPrefix);
+ else
+ tmp = new QName(rootNS, rootLocalName);
+ container.setElementQNameInternal(tmp);
+ }
+ }
+ catch (SOAPException e)
+ {
+ WSException.rethrow(e);
+ }
+
+
// Copy attributes
DOMUtils.copyAttributes(container, domElement);
SOAPFactoryImpl soapFactory = new SOAPFactoryImpl();
-
+
try
{
NodeList nlist = domElement.getChildNodes();
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSProviderMetaDataBuilder.java
===================================================================
---
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSProviderMetaDataBuilder.java 2007-04-11
12:09:17 UTC (rev 2789)
+++
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSProviderMetaDataBuilder.java 2007-04-11
12:14:11 UTC (rev 2790)
@@ -39,6 +39,7 @@
import org.jboss.ws.Constants;
import org.jboss.ws.core.MessageAbstraction;
+import org.jboss.ws.core.soap.SOAPContentElement;
import org.jboss.ws.core.jaxrpc.Style;
import org.jboss.ws.core.server.UnifiedDeploymentInfo;
import org.jboss.ws.core.utils.JavaUtils;
@@ -160,13 +161,13 @@
// Setup invoke param
Class paramType = Source.class;
- QName xmlName = new QName("invokeParam");
+ QName xmlName = SOAPContentElement.PROVIDER_PARAM_NAME;
QName xmlType = Constants.TYPE_LITERAL_ANYTYPE;
ParameterMetaData pmd = new ParameterMetaData(opMetaData, xmlName, xmlType,
paramType.getName());
opMetaData.addParameter(pmd);
// Setup invoke return
- xmlName = new QName("invokeReturn");
+ xmlName = SOAPContentElement.PROVIDER_RETURN_VALUE_NAME;
ParameterMetaData retMetaData = new ParameterMetaData(opMetaData, xmlName, xmlType,
paramType.getName());
opMetaData.setReturnParameter(retMetaData);
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
===================================================================
---
trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-04-11
12:09:17 UTC (rev 2789)
+++
trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-04-11
12:14:11 UTC (rev 2790)
@@ -39,7 +39,6 @@
import org.jboss.ws.core.jaxws.JAXBDeserializerFactory;
import org.jboss.ws.core.jaxws.JAXBSerializerFactory;
import org.jboss.ws.core.jaxws.client.DispatchBinding;
-import org.jboss.ws.core.jaxws.client.DispatchSOAPBinding;
import org.jboss.ws.core.utils.JavaUtils;
import org.jboss.ws.integration.UnifiedVirtualFile;
import org.jboss.ws.metadata.config.*;
@@ -622,7 +621,7 @@
}
else if (configurable instanceof DispatchBinding)
{
- DispatchSOAPBinding dpb = (DispatchSOAPBinding)configurable;
+ DispatchBinding dpb = (DispatchBinding)configurable;
dpb.setValidateDispatch(config.hasFeature(EndpointFeature.VALIDATE_DISPATCH));
}
}
Show replies by date