You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2006/10/20 14:15:08 UTC
svn commit: r466085 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/message/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/
rt/bindings/xml/src/main/java/o...
Author: mmao
Date: Fri Oct 20 05:15:06 2006
New Revision: 466085
URL: http://svn.apache.org/viewvc?view=rev&rev=466085
Log:
* Added content-type for soap1.1 soap1.2 and xmlbinding
* Added fault http status code for soap1.1 soap1.2 and xmlbinding.
* Should revisit the soap1.2 part.
* Remove system.out from tests.
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/AbstractWrappedMessage.java
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBinding.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapMessage.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java
incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/rest/RestClientServerTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soap12/Soap12ClientServerTest.java
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/AbstractWrappedMessage.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/AbstractWrappedMessage.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/AbstractWrappedMessage.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/AbstractWrappedMessage.java Fri Oct 20 05:15:06 2006
@@ -156,6 +156,5 @@
public Object getContextualProperty(String key) {
return message.getContextualProperty(key);
- }
-
+ }
}
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Fri Oct 20 05:15:06 2006
@@ -47,6 +47,7 @@
String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
String MTOM_ENABLED = Message.class.getName() + ".isMtomEnabled";
String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
+ String CONTENT_TYPE = Message.class.getName() + ".ContentType";
String getId();
void setId(String id);
@@ -113,5 +114,5 @@
*/
<T> void put(Class<T> key, T value);
- Object getContextualProperty(String key);
+ Object getContextualProperty(String key);
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java Fri Oct 20 05:15:06 2006
@@ -51,7 +51,7 @@
private final QName body = new QName(namespace, "Body", prefix);
- private final QName fault = new QName(namespace, "Fault", prefix);
+ private final QName fault = new QName(namespace, "Fault", prefix);
private Soap11() {
// Singleton
@@ -138,5 +138,9 @@
public QName getDateEncodingUnknown() {
// There is no such fault code in soap11
return null;
+ }
+
+ public String getContentType() {
+ return "text/xml";
}
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java Fri Oct 20 05:15:06 2006
@@ -139,5 +139,7 @@
public QName getDateEncodingUnknown() {
return new QName(SOAP_NAMESPACE, "DataEncodingUnknown");
}
-
+ public String getContentType() {
+ return "application/soap+xml";
+ }
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBinding.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBinding.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBinding.java Fri Oct 20 05:15:06 2006
@@ -51,6 +51,7 @@
public Message createMessage(Message m) {
SoapMessage soapMessage = new SoapMessage(m);
soapMessage.setVersion(version);
+ soapMessage.put(Message.CONTENT_TYPE, version.getContentType());
if (mtomEnabled) {
m.put(Message.MTOM_ENABLED, Boolean.TRUE);
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapMessage.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapMessage.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapMessage.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapMessage.java Fri Oct 20 05:15:06 2006
@@ -51,7 +51,7 @@
public void setVersion(SoapVersion v) {
this.version = v;
}
-
+
public <T> boolean hasHeaders(Class<T> format) {
return headers.containsKey(format);
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java Fri Oct 20 05:15:06 2006
@@ -65,4 +65,6 @@
String getNextRole();
String getSoapMimeType();
+
+ String getContentType();
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java Fri Oct 20 05:15:06 2006
@@ -45,10 +45,12 @@
}
public void handleMessage(SoapMessage message) throws Fault {
+ message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
+
XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
Fault f = (Fault)message.getContent(Exception.class);
- SoapFault fault = SoapFault.createFault(f, message.getVersion());
+ SoapFault fault = SoapFault.createFault(f, message.getVersion());
try {
Map<String, String> namespaces = fault.getNamespaces();
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java Fri Oct 20 05:15:06 2006
@@ -46,11 +46,13 @@
}
public void handleMessage(SoapMessage message) throws Fault {
+ message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
+
XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
Fault f = (Fault)message.getContent(Exception.class);
- SoapFault fault = SoapFault.createFault(f, message.getVersion());
-
+ SoapFault fault = SoapFault.createFault(f, message.getVersion());
+
try {
Map<String, String> namespaces = fault.getNamespaces();
for (Map.Entry<String, String> e : namespaces.entrySet()) {
Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java Fri Oct 20 05:15:06 2006
@@ -34,6 +34,7 @@
}
public Message createMessage(Message m) {
+ m.put(Message.CONTENT_TYPE, "text/xml");
return new XMLMessage(m);
}
}
Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java Fri Oct 20 05:15:06 2006
@@ -49,8 +49,8 @@
setPhase(Phase.MARSHAL);
}
- public void handleMessage(Message message) throws Fault {
-
+ public void handleMessage(Message message) throws Fault {
+ message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
NSStack nsStack = new NSStack();
nsStack.push();
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Fri Oct 20 05:15:06 2006
@@ -37,7 +37,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-
import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.Base64Utility;
@@ -178,6 +177,12 @@
connection.setConnectTimeout((int)getClient().getConnectionTimeout());
connection.setReadTimeout((int)getClient().getReceiveTimeout());
connection.setUseCaches(false);
+
+ if (null != message.get(Message.CONTENT_TYPE)) {
+ connection.setRequestProperty("Content-Type", (String)message.get(Message.CONTENT_TYPE));
+ } else {
+ connection.setRequestProperty("Content-Type", "text/xml");
+ }
if (connection instanceof HttpURLConnection) {
String httpRequestMethod = (String)message.get(Message.HTTP_REQUEST_METHOD);
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java Fri Oct 20 05:15:06 2006
@@ -21,6 +21,7 @@
import java.lang.reflect.UndeclaredThrowableException;
import java.net.URL;
+import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -28,6 +29,7 @@
import javax.xml.namespace.QName;
import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.BindingProvider;
import javax.xml.ws.Endpoint;
import javax.xml.ws.Response;
import javax.xml.ws.Service;
@@ -35,6 +37,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.apache.cxf.message.Message;
import org.apache.cxf.systest.common.ClientServerSetupBase;
import org.apache.cxf.systest.common.ClientServerTestBase;
import org.apache.cxf.systest.common.TestServerBase;
@@ -117,6 +120,10 @@
} catch (UndeclaredThrowableException ex) {
throw (Exception)ex.getCause();
}
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(200, responseCode.intValue());
}
public void testAddPort() throws Exception {
@@ -444,11 +451,17 @@
try {
greeter.testDocLitFault(badRecordFault);
fail("Should have thrown BadRecordLitFault exception");
- } catch (BadRecordLitFault brlf) {
+ } catch (BadRecordLitFault brlf) {
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ String contentType = (String) responseContext.get(Message.CONTENT_TYPE);
+ assertEquals("text/xml", contentType);
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(500, responseCode.intValue());
assertNotNull(brlf.getFaultInfo());
+ assertEquals("BadRecordLitFault", brlf.getFaultInfo());
}
}
-
}
public static void main(String[] args) {
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java Fri Oct 20 05:15:06 2006
@@ -20,8 +20,10 @@
package org.apache.cxf.systest.jaxws;
import java.lang.reflect.UndeclaredThrowableException;
+import java.util.Map;
import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
import javax.xml.ws.Endpoint;
import javax.xml.ws.Service;
@@ -29,6 +31,7 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.apache.cxf.message.Message;
import org.apache.cxf.systest.common.ClientServerSetupBase;
import org.apache.cxf.systest.common.TestServerBase;
import org.apache.hello_world_xml_http.wrapped.Greeter;
@@ -112,8 +115,8 @@
String response1 = new String("Hello ");
String response2 = new String("Bonjour");
- try {
- Greeter greeter = service.getPort(fakePortName, Greeter.class);
+ Greeter greeter = service.getPort(fakePortName, Greeter.class);
+ try {
String username = System.getProperty("user.name");
String reply = greeter.greetMe(username);
@@ -129,21 +132,33 @@
} catch (UndeclaredThrowableException ex) {
throw (Exception) ex.getCause();
}
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(200, responseCode.intValue());
}
public void testXMLFault() throws Exception {
XMLService service = new XMLService(
this.getClass().getResource("/wsdl/hello_world_xml_wrapped.wsdl"), serviceName);
assertNotNull(service);
- try {
- Greeter greeter = service.getPort(portName, Greeter.class);
+ Greeter greeter = service.getPort(portName, Greeter.class);
+ try {
greeter.pingMe();
fail("did not catch expected PingMeFault exception");
} catch (PingMeFault ex) {
assertEquals("minor value", 1, ex.getFaultInfo().getMinor());
assertEquals("major value", 2, ex.getFaultInfo().getMajor());
+
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ String contentType = (String) responseContext.get(Message.CONTENT_TYPE);
+ assertEquals("text/xml", contentType);
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(500, responseCode.intValue());
} catch (Exception ex) {
- fail("did not catch expected PingMeFault exception");
+ assertTrue("did not catch expected PingMeFault exception",
+ !(ex instanceof PingMeFault));
}
}
}
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/rest/RestClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/rest/RestClientServerTest.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/rest/RestClientServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/rest/RestClientServerTest.java Fri Oct 20 05:15:06 2006
@@ -114,8 +114,7 @@
requestContext.put(MessageContext.HTTP_REQUEST_METHOD, new String("GET"));
requestContext.put(MessageContext.QUERY_STRING, "id=1");
//this is the original path part of uri
- requestContext.put(MessageContext.PATH_INFO, path);
- System.out.println("Invoking Restful GET Request with query string ");
+ requestContext.put(MessageContext.PATH_INFO, path);
Source result = d.invoke(null);
assertNotNull("result shoud not be null", result);
String tempstring = source2String(result);
@@ -133,21 +132,4 @@
trans.transform(source, sr);
return bos.toString();
}
-
- void printSource(Source source) {
- try {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- StreamResult sr = new StreamResult(bos);
- Transformer trans = TransformerFactory.newInstance().newTransformer();
- Properties oprops = new Properties();
- oprops.put(OutputKeys.OMIT_XML_DECLARATION, "yes");
- trans.setOutputProperties(oprops);
- trans.transform(source, sr);
- System.out.println("**** Response ******" + bos.toString());
- bos.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
}
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soap12/Soap12ClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soap12/Soap12ClientServerTest.java?view=diff&rev=466085&r1=466084&r2=466085
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soap12/Soap12ClientServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soap12/Soap12ClientServerTest.java Fri Oct 20 05:15:06 2006
@@ -22,11 +22,16 @@
package org.apache.cxf.systest.soap12;
import java.net.URL;
+import java.util.List;
+import java.util.Map;
import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
import junit.framework.Test;
import junit.framework.TestSuite;
+
+import org.apache.cxf.message.Message;
import org.apache.cxf.systest.common.ClientServerSetupBase;
import org.apache.cxf.systest.common.ClientServerTestBase;
import org.apache.hello_world_soap12_http.Greeter;
@@ -56,13 +61,18 @@
String echo = greeter.sayHi();
assertEquals("Bonjour", echo);
}
-
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(200, responseCode.intValue());
}
public void testPingMeFault() throws Exception {
- Greeter greeter = getGreeter();
+ Greeter greeter = getGreeter();
+
try {
greeter.pingMe();
+
fail("Should throw Exception!");
} catch (PingMeFault ex) {
FaultDetail detail = ex.getFaultInfo();
@@ -70,6 +80,16 @@
assertEquals((short)1, detail.getMinor());
assertEquals("PingMeFault raised by server", ex.getMessage());
}
+
+ BindingProvider bp = (BindingProvider)greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ String contentType = (String) responseContext.get(Message.CONTENT_TYPE);
+ assertEquals("application/soap+xml", contentType);
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(500, responseCode.intValue());
+ Map ct = (Map) responseContext.get(Message.PROTOCOL_HEADERS);
+ List contentTypes = (List) ct.get("Content-Type");
+ assertTrue(contentTypes.contains("application/soap+xml"));
}
private Greeter getGreeter() {