Подтвердить что ты не робот

Исправление конфигурации Apache AxisException

Я использую Apache Axis для подключения своего Java-приложения к веб-серверу. Я использовал wsdl2java для создания заглушек для меня, но когда я пытаюсь использовать заглушки, я получаю следующее исключение:

org.apache.axis.ConfigurationException: нет службы с именем <web service name>.

любая идея?

4b9b3361

Ответ 1

Просто догадаться, но похоже, что это сообщение об ошибке сообщает, что вы оставили пустое имя службы. Я предполагаю, что код, генерирующий это сообщение об ошибке, выглядит следующим образом:

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

Ответ 2

В соответствии с документацией, связанной с @arnonym, это исключение несколько вводит в заблуждение. В первой попытке найти службу исключение ConfigurationException выбрано. Он регистрируется на уровне DEBUG классом ConfigurationException. Затем выполняется другая попытка с использованием другого метода для поиска службы, которая затем может быть выполнена. Обходной путь для этого состоит в том, чтобы просто изменить уровень журнала в классе ConfigurationException на INFO в вашем файле log4j.properties:

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

Ответ 4

Вот как выглядит мой код. Кажется, он работает нормально. Используете ли вы локатор сервисов или просто создаете свою службу?

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

Ответ 5

Я не знаю, какую версию Axis вы используете, но я использую Axis2 для сервера и клиента, а Java2WSDL создает конечную точку по умолчанию для службы на localhost. Если вы создадите заглушку клиента с помощью WSDL2Java, конструктор по умолчанию заглушки затем укажет на localhost. Если служба находится на другой конечной точке, вы должны использовать конструктор с конечной точкой в ​​качестве параметра... Возможно, проблема не в этом, но, как сказано в других ответах, без WSDL, который вы используете в качестве ввода WSDL2Java, трудно сказать.