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 mais cela ne fait rien. P> p>
3 Réponses :
essayer d'ajouter Vous n'avez pas besoin d'utiliser des intercepteurs p> < / p> objet de réponse code> comme valeur de retour où vous pouvez définir des en-têtes.
Vérifiez 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);
}
}
On dirait que vous pouvez accomplir cela à l'aide de la CXF CachedOutPutStream. n'oubliez pas de configurer votre intercepteur dans le fichier de configuration CXF: p>