Author: thomas.diesler(a)jboss.com
Date: 2007-06-21 11:50:44 -0400 (Thu, 21 Jun 2007)
New Revision: 3679
Modified:
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/common/soap/MessageFactoryTestCase.java
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvc.java
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvcImpl.java
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/JBWS1422TestCase.java
Log:
[JBWS-771] Use part names that are friendly to .NET
Modified:
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -72,7 +72,7 @@
// [JBWS-859] SOAPMessageUnMarshaller doesn't support HTTP server response
[204] - No Content
SOAPMessage soapMsg = null;
- if (resCode != HttpServletResponse.SC_NO_CONTENT)
+ if (resCode != null && resCode != HttpServletResponse.SC_NO_CONTENT)
{
MimeHeaders mimeHeaders = getMimeHeaders(metadata);
soapMsg = new MessageFactoryImpl().createMessage(mimeHeaders, inputStream,
true);
Modified:
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -30,6 +30,7 @@
import java.util.Set;
import java.util.StringTokenizer;
+import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
@@ -104,8 +105,14 @@
this.xmlName = xmlName;
this.opMetaData = opMetaData;
this.mode = ParameterMode.IN;
- this.partName = xmlName.getLocalPart();
this.javaTypeName = javaTypeName;
+
+ // [JBWS-771] Use part names that are friendly to .NET
+ if (opMetaData.getEndpointMetaData().getParameterStyle() ==
ParameterStyle.WRAPPED)
+ partName = "parameters";
+ else
+ partName = xmlName.getLocalPart();
+
}
private static boolean matchParameter(Method method, int index, Class expectedType,
Set<Integer> matches, boolean exact, boolean holder)
Modified:
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/common/soap/MessageFactoryTestCase.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/common/soap/MessageFactoryTestCase.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/common/soap/MessageFactoryTestCase.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -243,9 +243,9 @@
String xmlMessage = " ";
MessageFactory factory = MessageFactory.newInstance();
factory.createMessage(null,new ByteArrayInputStream(xmlMessage.getBytes()));
- fail("IOException expected");
+ fail("Exception expected");
}
- catch (IOException e)
+ catch (Exception e)
{
// ignore
}
Modified:
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvc.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvc.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvc.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -21,15 +21,15 @@
*/
package org.jboss.test.ws.jaxws.jbws1422;
+import javax.jws.WebParam;
import javax.jws.WebService;
-import javax.jws.WebParam;
import javax.jws.soap.SOAPBinding;
-import javax.ejb.Remote;
-@WebService(name="test")
-@SOAPBinding(style= SOAPBinding.Style.DOCUMENT, use= SOAPBinding.Use.LITERAL,
parameterStyle= SOAPBinding.ParameterStyle.WRAPPED)
-@Remote
-public interface IWebsvc {
+@WebService
+@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
+public interface IWebsvc
+{
- String cancel(@WebParam(name="nBarFoo") String myfoobar);
+ String cancel(@WebParam(name = "nBarFoo")
+ String myfoobar);
}
Modified:
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvcImpl.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvcImpl.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/IWebsvcImpl.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -22,25 +22,16 @@
package org.jboss.test.ws.jaxws.jbws1422;
import javax.ejb.Stateless;
-import javax.jws.WebService;
import javax.jws.WebParam;
+import javax.jws.WebService;
-/**
- * @author Heiko.Braun(a)jboss.com
- * @version $Revision$
- */
@Stateless
-@WebService(
- endpointInterface = "org.jboss.test.ws.jaxws.jbws1422.IWebsvc",
- serviceName = "JBWS1422Service",
- targetNamespace = "http://org.jboss.test.ws/jbws1422"
-)
-
+@WebService(endpointInterface = "org.jboss.test.ws.jaxws.jbws1422.IWebsvc",
serviceName = "JBWS1422Service")
public class IWebsvcImpl implements IWebsvc
{
- public String cancel(@WebParam(name = "nBarFoo")String myfoobar)
- {
- return "Cancelled";
- }
+ public String cancel(@WebParam(name = "nBarFoo") String myfoobar)
+ {
+ return "Cancelled-" + myfoobar;
+ }
}
Modified:
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/JBWS1422TestCase.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/JBWS1422TestCase.java 2007-06-21
15:21:13 UTC (rev 3678)
+++
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/jbws1422/JBWS1422TestCase.java 2007-06-21
15:50:44 UTC (rev 3679)
@@ -21,30 +21,35 @@
*/
package org.jboss.test.ws.jaxws.jbws1422;
+// $Id$
+
+import java.net.URL;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Message;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+
import junit.framework.Test;
-import org.jboss.ws.WSException;
+
import org.jboss.wsf.spi.test.JBossWSTest;
import org.jboss.wsf.spi.test.JBossWSTestSetup;
-import javax.xml.namespace.QName;
-import javax.xml.ws.Service;
-import java.net.URL;
-
/**
- * If @WebParam.name starts with one lower-case character followed
- * by an upper-case character a NPE is thrown on deployment.
- *
- *
http://jira.jboss.org/jira/browse/JBWS-1422
- *
- * @version $Revision:1370 $
+ * [JBWS-1422] NPE if @WebParam.name like "mX.."
+ * [JBWS-771] Use part names that are friendly to .NET
+ *
+ * @author Thomas.Diesler(a)jboss.com
*/
public class JBWS1422TestCase extends JBossWSTest
{
- private String targetNS = "http://org.jboss.test.ws/jbws1422";
- private IWebsvc port;
- private URL wsdlURL;
+ private static final String TARGET_NAMESPACE =
"http://jbws1422.jaxws.ws.test.jboss.org/";
+ private static URL wsdlURL;
+ private static IWebsvc port;
- public static Test suite()
+ public static Test suite()
{
return JBossWSTestSetup.newTestSetup(JBWS1422TestCase.class,
"jaxws-jbws1422.jar");
}
@@ -52,31 +57,40 @@
@Override
protected void setUp() throws Exception
{
- super.setUp();
+ if (port == null)
+ {
+ QName serviceName = new QName(TARGET_NAMESPACE, "JBWS1422Service");
+ wsdlURL = new URL("http://" + getServerHost() +
":8080/jaxws-jbws1422/IWebsvcImpl?wsdl");
- QName serviceName = new QName(targetNS, "JBWS1422Service");
- wsdlURL = new URL("http://" + getServerHost() +
":8080/jaxws-jbws1422/IWebsvcImpl?wsdl");
+ Service service = Service.create(wsdlURL, serviceName);
+ port = service.getPort(IWebsvc.class);
+ }
+ }
- Service service = Service.create(wsdlURL, serviceName);
- port = service.getPort(IWebsvc.class);
+ public void testDeployment() throws Exception
+ {
+ String result = port.cancel("myFooBar");
+ assertEquals("Cancelled-myFooBar", result);
}
+
+ // [JBWS-771] Use part names that are friendly to .NET
+ public void testMessagePartNames() throws Exception
+ {
+ Definition wsdl = getWSDLDefinition(wsdlURL.toExternalForm());
+
+ Message wsdlReqMessage = wsdl.getMessage(new QName(TARGET_NAMESPACE,
"IWebsvc_cancel"));
+ assertNotNull("Expected part with name 'parameters' in: " +
wsdlReqMessage, wsdlReqMessage.getPart("parameters"));
+
+ Message wsdlResMessage = wsdl.getMessage(new QName(TARGET_NAMESPACE,
"IWebsvc_cancelResponse"));
+ assertNotNull("Expected part with name 'parameters' in: " +
wsdlResMessage, wsdlResMessage.getPart("parameters"));
+ }
+
+ private Definition getWSDLDefinition(String wsdlLocation) throws Exception
+ {
+ WSDLFactory wsdlFactory = WSDLFactory.newInstance();
+ WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
- /**
- *
- * @throws Exception
- */
- public void testDeployment() throws Exception
- {
- try
- {
- String result = port.cancel("myFooBar");
- assertNotNull(result);
- assertEquals("Cancelled", result);
- }
- catch (Exception ex)
- {
- WSException.rethrow(ex);
- }
- }
-
+ Definition definition = wsdlReader.readWSDL(null, wsdlLocation);
+ return definition;
+ }
}