Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE
Serveurs, conteneurs, et Java EE Forum d'entraide sur la spécification Java EE, les serveurs d'application Java EE (GlassFish, JBoss, JOnAS, Weblogic, Websphere...) ou partiellement Java EE (Tomcat, Jetty, Spring DM...), ainsi que la spécification OSGi et ses implémentations (Equinox, Felix...). Avant de poster -> FAQ Java EE - Les cours OSGi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/10/2012, 09h15   #1
hajer88
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 0
Points : 0
Par défaut Axis 2 et SOAP

Bonjour,
Bon je vous expose mon problème : j'ai crée un module sous axis2 et ce que je compte faire c'est intercepter le message SOAP Request, récupérer les données entrées par le client et obtenir comme retour un SOAP Response différent.
(exple:si un client veux additionner 2 nombres j'aimerais être capable de les changer pour obtenir une autre réponse)
Comment pourrais je faire ça?
Merci d'avance
hajer88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 10h07   #2
pracede2005
Membre confirmé
 
Homme Davy
Ingénieur développement logiciels
Inscription : octobre 2006
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme Davy
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Communication - Médias

Informations forums :
Inscription : octobre 2006
Messages : 287
Points : 228
Points : 228
Salut,
Si ton besoin est d'intercepter une requete envoyé au serveur et de renvoyer la réponse en te faisant passer pour le serveur ? Cela s'appelle man in the middle. C'est réprehensible par la loi .
__________________
Merci de lire les règles du forum et surtout celle là Message clair et précis.
Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.
pracede2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 10h15   #3
hajer88
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 0
Points : 0
Par défaut AXIS2 SOAP

Ce que je compte faire c'est ajouter un module qui traite la confidentialité sans que le client soit au courant du traitement qui s'effectue au sein du serveur.
Le module sous axis2 doit implicitement faire le traitement et retourner de nouvelles données au client donc j'ai besoin de récupérer les données du soap request!
hajer88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 13h27   #4
NoClassDefFound
Membre confirmé
 
Homme
Inscription : octobre 2011
Messages : 156
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 156
Points : 207
Points : 207
A priori je dirais que tu as besoin de définir un Handler au cours de ta chaîne de traitement.
Si je me réfères au site d'axis, ce serait un truc dans ce genre là
Dans module.xml
Code :
1
2
3
4
5
6
7
 
<module name="myService" class="org.apache.axis2.handlers.MyHandler">
    <inflow>
        <handler name="InFlowMyHandler" class="org.apache.axis2.handlers.MyHandler">
            <order phase="myPhase"/>
        </handler>
    </inflow>
Dans axis2.xml
Code :
1
2
3
4
5
6
7
 
  <phaseOrder type="inflow">
        <phase name="TransportIn"/>
        <phase name="PreDispatch"/>       
        ...
        <phase name="myPhase"/>
    </phaseOrder>
NoClassDefFound est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 13h40   #5
hajer88
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 0
Points : 0
Par défaut SOAP AXIS2

en fait je l'ai ajouté ce Handler sous mon module, je suis capable d'afficher le nom du service, de l'opération ou même l'enveloppe soap mais je n'arrive tjr pas à récupérer les données du soap et modifier la réponse
hajer88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 20h04   #6
NoClassDefFound
Membre confirmé
 
Homme
Inscription : octobre 2011
Messages : 156
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 156
Points : 207
Points : 207
J'avoue que je ne comprends pas bien, si tu peux récupérer l'enveloppe , pourquoi pas le header ?

Code :
1
2
3
4
5
6
7
8
9
10
 
public class MyHandler extends AbstractHandler implements Handler{
 
public InvocationResponse invoke(MessageContext ctx) throws AxisFault {
 
SOAPEnvelope env = ctx.getEnvelope();
SOAPHeader hdr = env.getHeader();
...
return InvocationResponse.CONTINUE;
}
NoClassDefFound est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 09h03   #7
hajer88
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 0
Points : 0
Désolé si j'ai pas très bien posé ma problématique. Au fait ce que tu viens d'écrire ne permet pas de récupérer le contenu qui est entre les balises et retourner un nouveau SOAP Response. J'ai mis ci-joint le résultat que j'obtiens si je procède de cette façon. DSL encore
Images attachées
Type de fichier : png Capture.PNG (6,9 Ko, 4 affichages)
hajer88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 16h51   #8
hajer88
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 0
Points : 0
ReSalut,

Sincèrement je galère tjr avec ce truc personne ne peux me répondre? bon j'expose le problème plus en détails: en fait je suis entrain de créer un module sous axis, ce module est destiné à traiter la confidentialité des web services. je m'explique si une personne X veut accéder à des informations d'une personne Y, ces informations seront filtrées. donc du coup le message retourné au client X a subit un changement, ainsi le soap response a aussi changé en fonction du module.
Exemple: une personne veut afficher les informations d'une personne dont le SSN est 0001 or ce dernier ne veux pas divulguer sn nom donc comme reponse cette personne ne peut voir que la date de naissance et le genre mais pas le nom
SVP pouvrriez vous m'aider
Images attachées
Type de fichier : png SoapRequest.PNG (16,3 Ko, 1 affichages)
Type de fichier : png Response.PNG (24,1 Ko, 1 affichages)
hajer88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h32.


 
 
 
 
Partenaires

Hébergement Web