2016-09-14 1 views
2

J'essaye d'écrire un intercepteur cxf qui transmettra toutes les demandes entrantes de mon application à une autre application. Cependant, pour les requêtes POST, je ne peux pas obtenir le corps de la requête.Récupère le corps de requête Http du message cxf

Le code J'utilise ressemble:

String body = message.getContent(String.class); 

Cependant, le corps est comme nulle. J'ai regardé dans le code cxf & il semble que vous devez spécifier la classe exacte (Ex: ArrayList) pour obtenir le corps. Mon application a plusieurs classes de message de ce type. Je voulais savoir s'il existe une méthode par laquelle je peux éviter d'écrire plusieurs contrôles pour chacune de mes classes POJO & le faire en un seul if.

+1

Message.getContent (InputStream.class), utilisez CXF IOUtils pour lire dans String. Référez http://www.javatips.net/blog/cxf-interceptor-example –

Répondre

2

Vous pouvez appeler message.getContent (InputStream.class) et utiliser CXF IOUtils lire dans une chaîne. Veuillez vous référer à javatips.net/blog/cxf-interceptor-example pour plus de détails

+1

Le code le plus important est Phase.RECEIVE, car il s'assure que le corps est présent dans InputStream –

0

essayer:

XMLStreamReader body = message.getContent(XMLStreamReader.class);