2009-10-09 7 views
5

Je suis en train de mon environnement de test et je dois enregistrer mon programme gestionnaire/le transport au lieu d'utiliser un client config.wsdd:Débarrassez-vous de client config.wsdd dans l'axe

<?xml version="1.0" encoding="UTF-8"?> 
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> 
<handler name="MyClient" type="java:foo.bar.MyClient"/> 
<transport name="MyTransport" pivot="MyClient"/> 
</deployment> 

Sauriez-vous si c'est possible?

Merci d'avance.

Répondre

10

OK, je l'ai vérifié les sources Axis et le code suivant résolu mon problème:

AxisProperties.setProperty(EngineConfigurationFactory.SYSTEM_PROPERTY_NAME, "foo.bar.MyEngineConfigurationFactory"); 

...

import org.apache.axis.EngineConfiguration; 
import org.apache.axis.EngineConfigurationFactory; 
import org.apache.axis.configuration.BasicClientConfig; 

public class MyEngineConfigurationFactory implements EngineConfigurationFactory { 

    public static EngineConfigurationFactory newFactory(Object param) { 
     return new MyEngineConfigurationFactory(); 
    } 

    public EngineConfiguration getClientEngineConfig() { 
     BasicClientConfig cfg = new BasicClientConfig(); 
     cfg.deployTransport("MyTransport", new MyClient()); 
     return cfg; 
    } 

    public EngineConfiguration getServerEngineConfig() { 
     return null; 
    } 
} 

Voilà. J'espère que ça aide quelqu'un.

+0

L'exemple présenté sur [handler côté client JAX-RPC] (http://users.skynet.be/pascalbotte/rcx-ws-doc/jaxrpchandler.htm) m'a donné un bon aperçu de la résolution d'un problème similaire. Juste partager mes deux cents. – user624558