[ https://issues.apache.org/jira/browse/CXF-2045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Beryozkin resolved CXF-2045. ----------------------------------- Resolution: Fixed Fix Version/s: 2.1.5 2.2 Hi Gabo - I have a test now (and a fix) showing how a custom output interceptor can add headers to the outbound message, this interceptor is registered at Phase.MARSHAL > Custom headers lost when using Cxf Interceptors > ----------------------------------------------- > > Key: CXF-2045 > URL: https://issues.apache.org/jira/browse/CXF-2045 > Project: CXF > Issue Type: Bug > Components: Core, REST > Affects Versions: 2.2 > Environment: Java 1.5 > Jetty 6.1 > Reporter: Gabo Manuel > Fix For: 2.2, 2.1.5 > > > All changes to the header through the Message object in the out interceptor > are not received by client. > Server.java > public class RetestRestServer { > String basepath = "/someValue"; > int port = 8080; > @SuppressWarnings("unchecked") > protected RetestRestServer() throws Exception { > JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); > sf.setResourceClasses(AccountService.class); > sf.setResourceProvider(AccountService.class, > new SingletonResourceProvider(new AccountService())); > sf.setAddress("http://localhost:"+port+basepath+"/rest/Accounts/"); > > List<Interceptor> out = new ArrayList<Interceptor>(1); > in.add(new RestOutHandler()); > sf.setOutInterceptors(in); > > sf.create(); > } > public static void main(String args[]) throws Exception { > new RetestRestServer(); > System.out.println("Server ready..."); > } > } > RestOutInterceptor.java > public class RestOutHandler extends AbstractPhaseInterceptor<Message>{ > private static Logger logger = Logger.getLogger(RestOutHandler.class); > public RestOutHandler() { > super(Phase.POST_PROTOCOL); > } > public void handleMessage(Message message) throws Fault { > Map<String, List<String>> responseHeaders = (Map<String, > List<String>>)message.get(Message.PROTOCOL_HEADERS); > > if (responseHeaders == null) { > responseHeaders = new HashMap<String, List<String>>(); > message.put(Message.PROTOCOL_HEADERS, responseHeaders); > } > > responseHeaders.put("header1", Arrays.asList(new > String[]{"headerValue"})); > logger.debug("out message headers: " + responseHeaders); > } > } > AccountService.java > @Consumes("*/xml") > @Produces("text/xml") > @WebService(serviceName="AccountService", portName="AccountServicePort") > public class AccountService{ > private static Logger logger = Logger.getLogger(AccountService.class); > @GET > @Path("/") > @WebMethod > public String getAccount( > @QueryParam("serialNumber") > @WebParam(name="serialNumber") > long serialNumber) { > logger.info("get Account received: " + serialNumber); > return "get Account received: " + serialNumber; > } > } > Please advise if more info is needed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.