Pregunta

Estoy usando Apache Axis para conectar mi aplicación Java a un servidor web.Utilicé wsdl2java para crear los apéndices, pero cuando intento utilizarlos, aparece la siguiente excepción:

org.apache.axis.ConfigurationException:Ningún servicio nombrado <web service name> está disponible

¿alguna idea?

¿Fue útil?

Solución

Solo una suposición, pero parece que el mensaje de error informa que dejaste el nombre del servicio en blanco.Me imagino que el código que genera ese mensaje de error se ve así:

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

Otros consejos

De acuerdo con la documentación vinculada por @arnonym, esta excepción es algo engañosa.En el primer intento de encontrar el servicio, se lanza y detecta una excepción de configuración.La clase ConfigurationException lo registra en el nivel DEBUG.Luego se realiza otro intento utilizando un método diferente para encontrar el servicio que luego pueda tener éxito.La solución para esto es simplemente cambiar el nivel de registro en la clase ConfigurationException a INFO en su log4j.properties:

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

Es una excepción utilizada por el flujo de control de Axis.

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions--> org.apache.axis.ConfigurationException:No hay ningún servicio llamado XXX disponible

Así es como se ve mi código.Parece que funciona bien.¿Estás utilizando un localizador de servicios o simplemente estás creando tu servicio?

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

No sé qué versión de Axis estás usando, pero estoy usando Axis2 tanto para el servidor como para el cliente y Java2WSDL crea un punto final predeterminado para el servicio en localhost.Si crea el código auxiliar del cliente con WSDL2Java, el constructor predeterminado del código auxiliar apuntará a localhost.Si el servicio está en otro punto final, debe usar el constructor con el punto final como parámetro...Tal vez el problema no sea ese en absoluto, pero como se dijo en otras respuestas, sin el WSDL que estás usando como entrada WSDL2Java es difícil decirlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top