J'utilise l'API Axis pour accéder au serveur HTTP Axis. La documentation de l'API peut être trouvée here. J'utilise le code suivant pour ajouter des gestionnaires au serveur. service
est de type java.xml.rpc.ServiceGestionnaire d'ajout d'en-têtes HTTP à la requête HTTP non invoqué lors de l'utilisation de l'API Axis Client
HandlerRegistry registry = service.getHandlerRegistry();
QName serviceName = new QName(url, "MyServiceClass");
List<HandlerInfo> handlerChain = new ArrayList<HandlerInfo>();
HandlerInfo handlerInfo = new HandlerInfo(MyHandler.class, null, null);
handlerChain.add(handlerInfo);
registry.setHandlerChain(serviceName, handlerChain);
Je sais que le nom de service est correct que je reçois la sortie correcte dans les appels suivants à l'objet de service.
D'une certaine manière, le gestionnaire n'est pas appelé. Voici la classe Handler. Mon intention est de ajouter des en-têtes personnalisés à la requête HTTP avant de transmettre la demande au serveur.
import javax.xml.namespace.QName;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
public class MyHandler extends BasicHandler {
@Override
public void init() {
System.out.println("init called");
super.init();
System.out.println("init called");
}
@Override
public void cleanup() {
super.cleanup();
System.out.println("cleanup called");
}
@Override
public void invoke(MessageContext mc) throws AxisFault {
System.out.println("invoke called");
}
public QName[] getHeaders() {
System.out.println("getHeaders");
return new QName[1];
}
}
Quel est le problème avec le code ci-dessus?
Existe-t-il un autre moyen de modifier les en-têtes HTTP à l'aide de l'API Apache Axis?
cela fonctionne pour moi. avec mon client-config.wsdd Heureusement, cet outil génère le bon fichier –
Cela fonctionne pour moi! Merci! – jilt3d