You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/01/25 19:37:59 UTC

svn commit: r615303 - in /incubator/cxf/trunk: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/ rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ rt/transports/http/src/main/java/org/apache/cxf/transport/http/...

Author: dkulp
Date: Fri Jan 25 10:37:58 2008
New Revision: 615303

URL: http://svn.apache.org/viewvc?rev=615303&view=rev
Log:
[CXF-1405] Move setting up the incoming message into AbstractHTTPDestination so that jetty and servlet should always be consistent.
Update JAXRS to properly parse the Accept header
Fix a BUNCH of JAXRS tests that were not setting an Accept header so were now getting the default */* on the server side and getting json back.



Modified:
    incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
    incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedOutsideBookTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringBookTest.java

Modified: incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java Fri Jan 25 10:37:58 2008
@@ -21,6 +21,8 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.logging.Logger;
 
 import javax.activation.MimeType;
@@ -41,7 +43,7 @@
 import org.apache.cxf.phase.Phase;
 
 public class JAXRSOutInterceptor extends AbstractOutDatabindingInterceptor {
-    private static final Logger LOG = LogUtils.getL7dLogger(JAXRSInInterceptor.class);
+    private static final Logger LOG = LogUtils.getL7dLogger(JAXRSOutInterceptor.class);
 
     public JAXRSOutInterceptor() {
         super(Phase.MARSHAL);
@@ -111,16 +113,31 @@
         String[] methodMimeTypes = exchange.get(OperationResourceInfo.class).getProduceMimeTypes();
         String acceptContentType = (String)exchange.get(Message.ACCEPT_CONTENT_TYPE);
 
+        List<String> types = new ArrayList<String>();
         if (acceptContentType != null) {
-            try {
-                MimeType mt = new MimeType(acceptContentType);
-                acceptContentType = mt.getBaseType();
-            } catch (MimeTypeParseException e) {
-                // ignore
+            while (acceptContentType.length() > 0) {
+                String tp = acceptContentType;
+                if (acceptContentType.contains(",")) {
+                    tp = acceptContentType.substring(0, acceptContentType.indexOf(','));
+                    acceptContentType = acceptContentType
+                        .substring(acceptContentType.indexOf(',') + 1).trim();
+                } else {
+                    acceptContentType = "";
+                }
+                try {
+                    MimeType mt = new MimeType(tp);
+                    types.add(mt.getBaseType());
+                } catch (MimeTypeParseException e) {
+                    // ignore
+                }
             }
         }
+        if (types.isEmpty()) {
+            types.add("*/*");
+        }
         
-        return JAXRSUtils.intersectMimeTypes(methodMimeTypes, acceptContentType);        
+        return JAXRSUtils.intersectMimeTypes(methodMimeTypes,
+                                             types.toArray(new String[types.size()]));        
     }
     
     private String computeFinalContentTypes(String[] requestContentTypes, EntityProvider provider) {

Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Fri Jan 25 10:37:58 2008
@@ -19,11 +19,9 @@
 package org.apache.cxf.transport.http_jetty;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.security.GeneralSecurityException;
-import java.security.Principal;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -34,17 +32,12 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.helpers.HttpHeaderHelper;
 import org.apache.cxf.message.ExchangeImpl;
-import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
-import org.apache.cxf.security.SecurityContext;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.ConduitInitiator;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 import org.apache.cxf.transport.http.HTTPSession;
-import org.apache.cxf.transport.https.SSLUtils;
 import org.apache.cxf.transports.http.QueryHandler;
 import org.apache.cxf.transports.http.QueryHandlerRegistry;
 import org.apache.cxf.transports.http.StemMatchingQueryHandler;
@@ -172,7 +165,7 @@
         return conduitInitiator;
     }
     
-    private String getBasePath(String addr) {
+    protected String getBasePathForFullAddress(String addr) {
         try {
             return new URL(addr).getPath();
         } catch (MalformedURLException e) {
@@ -193,7 +186,8 @@
         // only update the EndpointAddress if the base path is equal
         // make sure we don't broke the get operation?parament query 
         String address = removeTrailingSeparator(endpointInfo.getAddress());
-        if (getBasePath(address).equals(removeTrailingSeparator(getStem(getBasePath(addr))))) {
+        if (getBasePathForFullAddress(address)
+            .equals(removeTrailingSeparator(getStem(getBasePathForFullAddress(addr))))) {
             endpointInfo.setAddress(addr);
         }
         return address;
@@ -273,41 +267,9 @@
             }
 
             MessageImpl inMessage = new MessageImpl();
-            inMessage.setContent(InputStream.class, req.getInputStream());
-            inMessage.put(HTTP_REQUEST, req);
-            inMessage.put(HTTP_RESPONSE, resp);
-            inMessage.put(HTTP_CONTEXT, context);
-            inMessage.put(Message.HTTP_REQUEST_METHOD, req.getMethod());
-            inMessage.put(Message.PATH_INFO, req.getContextPath() + req.getPathInfo());
-            String normalizedEncoding = HttpHeaderHelper.mapCharset(req.getCharacterEncoding());
-            if (normalizedEncoding == null) {
-                String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
-                                                                  LOG, req.getCharacterEncoding()).toString();
-                LOG.log(Level.WARNING, m);
-                throw new IOException(m);   
-            }
-            inMessage.put(Message.ENCODING, normalizedEncoding);
-            inMessage.put(Message.QUERY_STRING, req.getQueryString());
-            inMessage.put(Message.CONTENT_TYPE, req.getContentType());
-            inMessage.put(Message.ACCEPT_CONTENT_TYPE, req.getHeader("Accept"));
-            if (!StringUtils.isEmpty(endpointInfo.getAddress())) {
-                inMessage.put(Message.BASE_PATH, new URL(endpointInfo.getAddress()).getPath());
-            }
-            inMessage.put(Message.FIXED_PARAMETER_ORDER, isFixedParameterOrder());
-            inMessage.put(Message.ASYNC_POST_RESPONSE_DISPATCH, Boolean.TRUE);
-            inMessage.put(SecurityContext.class, new SecurityContext() {
-                public Principal getUserPrincipal() {
-                    return req.getUserPrincipal();
-                }
-                public boolean isUserInRole(String role) {
-                    return req.isUserInRole(role);
-                }
-            });
+            setupMessage(inMessage, context, req, resp);
             
-            setHeaders(inMessage);
             inMessage.setDestination(this);
-            
-            SSLUtils.propogateSecureSession(req, inMessage);
 
             ExchangeImpl exchange = new ExchangeImpl();
             exchange.setInMessage(inMessage);

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Fri Jan 25 10:37:58 2008
@@ -20,9 +20,12 @@
 package org.apache.cxf.transport.http;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.net.ServerSocket;
+import java.net.URL;
+import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Enumeration;
@@ -33,6 +36,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.namespace.QName;
@@ -49,12 +53,14 @@
 import org.apache.cxf.io.AbstractWrappedOutputStream;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
+import org.apache.cxf.security.SecurityContext;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.AbstractDestination;
 import org.apache.cxf.transport.AbstractMultiplexDestination;
 import org.apache.cxf.transport.Conduit;
 import org.apache.cxf.transport.ConduitInitiator;
 import org.apache.cxf.transport.http.policy.PolicyUtils;
+import org.apache.cxf.transport.https.SSLUtils;
 import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
 import org.apache.cxf.ws.addressing.EndpointReferenceType;
 import org.apache.cxf.ws.policy.Assertor;
@@ -225,6 +231,68 @@
         } else {
             response.setContentType(ct);
         }
+    }
+    
+    protected void setupMessage(Message inMessage,
+                                  final ServletContext context, 
+                                  final HttpServletRequest req, 
+                                  final HttpServletResponse resp) throws IOException {
+
+        inMessage.setContent(InputStream.class, req.getInputStream());
+        inMessage.put(HTTP_REQUEST, req);
+        inMessage.put(HTTP_RESPONSE, resp);
+        inMessage.put(HTTP_CONTEXT, context);
+        inMessage.put(Message.HTTP_REQUEST_METHOD, req.getMethod());
+        String contextPath = req.getContextPath();
+        if (contextPath == null) {
+            contextPath = "";
+        }
+        inMessage.put(Message.PATH_INFO, contextPath + req.getPathInfo());
+        
+        // work around a bug with Jetty which results in the character
+        // encoding not being trimmed correctly.
+        String enc = req.getCharacterEncoding();
+        if (enc != null && enc.endsWith("\"")) {
+            enc = enc.substring(0, enc.length() - 1);
+        }
+        String normalizedEncoding = HttpHeaderHelper.mapCharset(enc);
+        if (normalizedEncoding == null) {
+            String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
+                                                              LOG, enc).toString();
+            LOG.log(Level.WARNING, m);
+            throw new IOException(m);   
+        }
+        
+        inMessage.put(Message.ENCODING, normalizedEncoding);
+        
+        inMessage.put(Message.QUERY_STRING, req.getQueryString());
+        inMessage.put(Message.CONTENT_TYPE, req.getContentType());
+        inMessage.put(Message.ACCEPT_CONTENT_TYPE, req.getHeader("Accept"));
+        String basePath = getBasePath(contextPath);
+        if (!StringUtils.isEmpty(basePath)) {
+            inMessage.put(Message.BASE_PATH, basePath);
+        }
+        inMessage.put(Message.FIXED_PARAMETER_ORDER, isFixedParameterOrder());
+        inMessage.put(Message.ASYNC_POST_RESPONSE_DISPATCH, Boolean.TRUE);
+        inMessage.put(SecurityContext.class, new SecurityContext() {
+            public Principal getUserPrincipal() {
+                return req.getUserPrincipal();
+            }
+            public boolean isUserInRole(String role) {
+                return req.isUserInRole(role);
+            }
+        });
+        
+        setHeaders(inMessage);
+        
+        SSLUtils.propogateSecureSession(req, inMessage);
+    }
+    
+    protected String getBasePath(String contextPath) throws IOException {
+        if (StringUtils.isEmpty(endpointInfo.getAddress())) {
+            return "";
+        }
+        return new URL(endpointInfo.getAddress()).getPath();
     }
     
     protected static EndpointInfo getAddressValue(EndpointInfo ei) {       

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties Fri Jan 25 10:37:58 2008
@@ -23,3 +23,4 @@
 NULL_RESPONSE_MSG = Response object is null
 DECOUPLED_RESPONSE_FAILED_MSG = Decouple response failed
 MISSING_PATH_INFO = PATH_INFO not present in message context, multiplex id is unavailable. Ensure the portName passed to getCurrentEndpointReferenceId is correct if the service has multiple ports
+INVALID_ENCODING_MSG = Invalid character set {0} in request.

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java Fri Jan 25 10:37:58 2008
@@ -19,9 +19,7 @@
 package org.apache.cxf.transport.servlet;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
-import java.security.Principal;
 import java.util.Collection;
 import java.util.Set;
 import java.util.logging.Level;
@@ -34,15 +32,7 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.helpers.HttpHeaderHelper;
-import org.apache.cxf.message.ExchangeImpl;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.message.MessageImpl;
-import org.apache.cxf.security.SecurityContext;
 import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.transport.http.AbstractHTTPDestination;
-import org.apache.cxf.transport.http.HTTPSession;
-import org.apache.cxf.transport.https.SSLUtils;
 import org.apache.cxf.transports.http.QueryHandler;
 import org.apache.cxf.transports.http.QueryHandlerRegistry;
 import org.xmlsoap.schemas.wsdl.http.AddressType;
@@ -220,50 +210,13 @@
         }
 
         try {
-            MessageImpl inMessage = new MessageImpl();
-            inMessage.setContent(InputStream.class, request.getInputStream());
-            inMessage.put(AbstractHTTPDestination.HTTP_REQUEST, request);
-            inMessage.put(AbstractHTTPDestination.HTTP_RESPONSE, response);
-            inMessage.put(AbstractHTTPDestination.HTTP_CONTEXT, cxfServlet.getServletContext());
-            inMessage.put(Message.HTTP_REQUEST_METHOD, request.getMethod());
-            inMessage.put(Message.PATH_INFO, request.getPathInfo());
-            inMessage.put(Message.QUERY_STRING, request.getQueryString());
-            inMessage.put(Message.CONTENT_TYPE, request.getContentType());
-            inMessage.put(Message.BASE_PATH, d.getAddress().getAddress().getValue());            
-            inMessage.put(SecurityContext.class, new SecurityContext() {
-                public Principal getUserPrincipal() {
-                    return request.getUserPrincipal();
-                }
-                public boolean isUserInRole(String role) {
-                    return request.isUserInRole(role);
-                }
-            });
-            
-            // work around a bug with Jetty which results in the character
-            // encoding not being trimmed correctly.
-            String enc = request.getCharacterEncoding();
-            if (enc != null && enc.endsWith("\"")) {
-                enc = enc.substring(0, enc.length() - 1);
-            }
-
-            String normalizedEncoding = HttpHeaderHelper.mapCharset(enc);
-            if (normalizedEncoding == null) {
-                String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
-                                                                  LOG, enc).toString();
-                LOG.log(Level.WARNING, m);
-                throw new IOException(m);   
-            }
-            
-            inMessage.put(Message.ENCODING, normalizedEncoding);
-            SSLUtils.propogateSecureSession(request, inMessage);
-            
-            ExchangeImpl exchange = new ExchangeImpl();
-            exchange.setInMessage(inMessage);
-            exchange.setSession(new HTTPSession(request));
-            
-            d.doMessage(inMessage);
+            d.invoke(cxfServlet.getServletContext(), request, response);
         } catch (IOException e) {
             throw new ServletException(e);
+        } finally {
+            if (LOG.isLoggable(Level.FINE)) {
+                LOG.fine("Finished servicing http request on thread: " + Thread.currentThread());
+            }
         }
 
     }

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java Fri Jan 25 10:37:58 2008
@@ -20,17 +20,22 @@
 package org.apache.cxf.transport.servlet;
 
 import java.io.IOException;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.ConduitInitiator;
 import org.apache.cxf.transport.MessageObserver;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
+import org.apache.cxf.transport.http.HTTPSession;
 
 
 public class ServletDestination extends AbstractHTTPDestination {
@@ -69,20 +74,26 @@
     }
 
     
-    protected void doMessage(MessageImpl inMessage) throws IOException {
-        try {
-            
-            setHeaders(inMessage);
-            
-            inMessage.setDestination(this);
-            
-            incomingObserver.onMessage(inMessage);
-            
-        } finally {
-            if (LOG.isLoggable(Level.FINE)) {
-                LOG.fine("Finished servicing http request on thread: " + Thread.currentThread());
-            }
-        }        
+    public void invoke(final ServletContext context, 
+                         final HttpServletRequest req, 
+                         final HttpServletResponse resp) throws IOException {
+        
+        MessageImpl inMessage = new MessageImpl();
+        setupMessage(inMessage,
+                     context,
+                     req,
+                     resp);
+
+        ExchangeImpl exchange = new ExchangeImpl();
+        exchange.setInMessage(inMessage);
+        exchange.setSession(new HTTPSession(req));
+        inMessage.setDestination(this);
+
+        incomingObserver.onMessage(inMessage);
+ 
+    }
+    protected String getBasePath(String contextPath) throws IOException {
+        return contextPath + getAddress().getAddress().getValue();
     }
     
     @Override

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Fri Jan 25 10:37:58 2008
@@ -22,6 +22,7 @@
 import java.io.File;
 import java.io.InputStream;
 import java.net.URL;
+import java.net.URLConnection;
 
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.methods.FileRequestEntity;
@@ -47,7 +48,9 @@
         String endpointAddress =
             "http://localhost:9080/bookstore/books/123"; 
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connect = url.openConnection();
+        connect.addRequestProperty("Accept", "application/xml");
+        InputStream in = connect.getInputStream();
         assertNotNull(in);           
 
         InputStream expected = getClass()
@@ -61,7 +64,9 @@
         String endpointAddress =
             "http://localhost:9080/bookstore/booksubresource/123/chapters/1"; 
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connect = url.openConnection();
+        connect.addRequestProperty("Accept", "application/xml");
+        InputStream in = connect.getInputStream();
         assertNotNull(in);           
 
         InputStream expected = getClass()
@@ -153,7 +158,9 @@
         // Verify result
         endpointAddress = "http://localhost:9080/bookstore/books/123";
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connect = url.openConnection();
+        connect.addRequestProperty("Accept", "application/xml");
+        InputStream in = connect.getInputStream();
         assertNotNull(in);
 
         InputStream expected = getClass().getResourceAsStream("resources/expected_update_book.txt");
@@ -227,7 +234,9 @@
         // Verify result
         endpointAddress = "http://localhost:9080/bookstore/books/123";
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connection = url.openConnection();
+        connection.addRequestProperty("Accept", "application/xml");
+        InputStream in = connection.getInputStream();
         assertNotNull(in);
 
         InputStream expected = getClass().getResourceAsStream("resources/expected_update_book.txt");

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedOutsideBookTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedOutsideBookTest.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedOutsideBookTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedOutsideBookTest.java Fri Jan 25 10:37:58 2008
@@ -24,6 +24,7 @@
 import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.net.URLConnection;
 
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.io.CachedOutputStream;
@@ -44,7 +45,9 @@
         String endpointAddress =
             "http://localhost:9080/bookstore/books/123"; 
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connect = url.openConnection();
+        connect.addRequestProperty("Accept", "application/xml");
+        InputStream in = connect.getInputStream();
         assertNotNull(in);           
 
         InputStream expected = getClass()

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringBookTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringBookTest.java?rev=615303&r1=615302&r2=615303&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringBookTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringBookTest.java Fri Jan 25 10:37:58 2008
@@ -21,6 +21,7 @@
 
 import java.io.InputStream;
 import java.net.URL;
+import java.net.URLConnection;
 
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.io.CachedOutputStream;
@@ -32,7 +33,8 @@
 
     @BeforeClass
     public static void startServers() throws Exception {
-        assertTrue("server did not launch correctly", launchServer(BookServerResourceCreatedOutside.class));
+        assertTrue("server did not launch correctly",
+                   launchServer(BookServerResourceCreatedOutside.class));
     }
     
     @Test
@@ -41,7 +43,9 @@
         String endpointAddress =
             "http://localhost:9080/bookstore/books/123"; 
         URL url = new URL(endpointAddress);
-        InputStream in = url.openStream();
+        URLConnection connect = url.openConnection();
+        connect.addRequestProperty("Accept", "application/xml");
+        InputStream in = connect.getInputStream();
         assertNotNull(in);           
 
         InputStream expected = getClass()