9
votes

Comment ajouter une en-tête HTTP personnalisée à la réponse JAX-RS?

J'essaie d'ajouter une en-tête HTTP personnalisée à la réponse à Apache CXF. J'ai besoin de compter MD5 du contenu et de l'ajouter sous forme d'en-tête HTTP. J'ai essayé d'utiliser ResolHandler ou Intercepteur. Mon dernier essai était xxx

mais cela ne fait rien.


0 commentaires

3 Réponses :


11
votes

essayer d'ajouter objet de réponse comme valeur de retour où vous pouvez définir des en-têtes. xxx

Vous n'avez pas besoin d'utiliser des intercepteurs < / p>


0 commentaires

-1
votes

Vérifiez CustomOnterTinterceptor.java Strong> dans le dossier SRC / Systest / JAXRS / SRC / TEST / JAVA / ORG / APACHE / CXF / SYSTEST / JAXRS / STROND> de CXF-2.3.3 Distribution Source forte> pour une démonstration de travail:

import javax.ws.rs.core.MultivaluedMap;

import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;

public class MyOutInterceptor extends AbstractPhaseInterceptor<Message> {

    public MyOutInterceptor() {
        super(Phase.MARSHAL);
    }

    public void handleMessage(Message message) throws Fault {
        MultivaluedMap<String, Object> headers = new MetadataMap<String, Object>();
        headers.putSingle("BookId", "123");
        message.put(Message.PROTOCOL_HEADERS, headers);
    }
}


0 commentaires

6
votes

On dirait que vous pouvez accomplir cela à l'aide de la CXF CachedOutPutStream. xxx

n'oubliez pas de configurer votre intercepteur dans le fichier de configuration CXF: xxx


0 commentaires