Question

J'utilise Apache Axis pour connecter mon application Java à un serveur Web. J'ai utilisé wsdl2java pour créer les stubs pour moi, mais lorsque j'essaie d'utiliser les stubs, j'obtiens l'exception suivante:

  

org.apache.axis.ConfigurationException: aucun service nommé <web service name> n'est disponible

une idée?

Était-ce utile?

La solution

Juste une supposition, mais il semble que ce message d'erreur indique que vous avez laissé le nom du service vide. J'imagine que le code qui génère ce message d'erreur ressemble à ceci:

throw new ConfigurationException("No service named" + serviceName + " is available");

Autres conseils

Selon la documentation associée à @arnonym, cette exception est quelque peu trompeuse. Lors de la première tentative de recherche du service, une exception ConfigurationException est levée et interceptée. Il est enregistré au niveau DEBUG par la classe ConfigurationException. Une autre tentative est ensuite effectuée en utilisant une méthode différente pour trouver le service qui peut alors réussir. La solution consiste simplement à modifier le niveau de journalisation de la classe ConfigurationException en INFO dans votre fichier log4j.properties:

log4j.logger.org.apache.axis.ConfigurationException = INFO

C’est une exception utilisée par le flux de contrôle d’Axis.

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions - > org.apache.axis.ConfigurationException: aucun service nommé XXX n'est disponible

Voici à quoi ressemble mon code. Cela semble marcher correctement. Utilisez-vous un localisateur de services ou créez-vous simplement votre service?

SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
    service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
    e.printStackTrace();
}

Je ne sais pas quelle version d'Axis vous utilisez, mais j'utilise Axis2 pour le serveur et le client, et Java2WSDL crée un point de terminaison par défaut pour le service sur localhost. Si vous créez le stub client avec WSDL2Java, le constructeur par défaut du stub pointe alors sur localhost. Si le service est sur un autre noeud final, vous devez utiliser le constructeur avec le noeud final en tant que paramètre ... Le problème n’est peut-être pas du tout le cas, mais comme indiqué dans d'autres réponses, il est difficile de dire sans le WSDL que vous utilisez en tant qu'entrée WSDL2Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top