Frage

Ich bin mit Apache Axis meiner Java-Anwendung auf einen Web-Server zu verbinden. Ich benutzte wsdl2java die Stubs für mich zu schaffen, aber wenn ich versuche, die Stubs zu verwenden, erhalte ich die folgende Ausnahme:

  

org.apache.axis.ConfigurationException: Kein Dienst namens <web service name> ist verfügbar

irgendeine Idee?

War es hilfreich?

Lösung

Nur eine Vermutung, aber es sieht so aus, dass Fehlermeldung meldet, dass Sie den Service-Namen leer gelassen haben. Ich stelle mir die Code, der diese Fehlermeldung erzeugt sieht wie folgt aus:

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

Andere Tipps

Nach dem Dokumentation von @arnonym verknüpft , ist diese Ausnahme ist etwas irreführend. Im ersten Versuch, den Dienst ein Configuration geworfen zu finden und gefangen. Es befindet sich auf DEBUG Ebene durch die Configuration Klasse angemeldet. Dann wird ein weiterer Versuch mit einer anderen Methode vorgenommen, den Dienst zu finden, die dann erfolgreich sein können. Die Abhilfe für diese ist nur die Protokollebene in Ihrem log4j.properties zu INFO auf der Configuration Klasse zu ändern:

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

Es ist eine Ausnahme von Axis Steuerfluss verwendet.

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions -> org.apache.axis.ConfigurationException: Kein Dienst mit dem Namen XXX ist verfügbar

Dies ist, was mein Code aussieht. Es scheint gut zu funktionieren. Sind Sie ein Service-Locator verwenden oder einfach nur die Erstellung Ihres Service?

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

Ich weiß nicht, welche Version von Achsen Sie verwenden, aber ich bin mit Axis2 für Server und Client und die Java2WSDL einen Standard-Endpunkt für den Dienst auf localhost erstellen. Wenn Sie die Client-Stub mit WSDL2Java erstellen, wird das Standard-Konstruktor des Stutzens dann auf localhost verweisen. Wenn der Dienst auf anderem Endpunkt ist, müssen Sie den Konstruktor mit dem Endpunkt als Parameter verwenden ... Vielleicht ist das Problem nicht, dass überhaupt, sondern als auf anderen Antworten, sagte, ohne die WSDL Sie verwenden als WSDL2Java Eingang ist es schwer zu sagen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top