Исключение конфигурации оси Apache
Вопрос
Я использую Apache Axis для подключения своего Java-приложения к веб-серверу.Я использовал wsdl2java для создания заглушек, но когда я пытаюсь использовать заглушки, я получаю следующее исключение:
org.apache.axis.ConfigurationException:Служба не названа
<web service name>
доступен
Есть идеи?
Решение
Это всего лишь предположение, но похоже, что в этом сообщении об ошибке сообщается, что вы оставили имя службы пустым.Я предполагаю, что код, генерирующий это сообщение об ошибке, выглядит следующим образом:
throw new ConfigurationException("No service named" + serviceName + " is available");
Другие советы
Согласно документация связанное с @arnonym, это исключение несколько вводит в заблуждение.При первой попытке найти службу генерируется и перехватывается исключение ConfigurationException.Оно регистрируется на уровне DEBUG классом ConfigurationException.Затем предпринимается еще одна попытка, используя другой метод, чтобы найти службу, которая может оказаться успешной.Обходной путь — просто изменить уровень журнала в классе ConfigurationException на INFO в вашем log4j.properties:
log4j.logger.org.apache.axis.ConfigurationException = INFO
Это исключение, используемое потоком управления Axis.
http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions--> org.apache.axis.ConfigurationException:Служба с именем XXX недоступна.
Вот как выглядит мой код.Кажется, работает нормально.Вы используете локатор сервисов или просто создаете свой сервис?
SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
e.printStackTrace();
}
Я не знаю, какую версию Axis вы используете, но я использую Axis2 как для сервера, так и для клиента, а Java2WSDL создает конечную точку по умолчанию для службы на локальном хосте.Если вы создаете клиентскую заглушку с помощью WSDL2Java, конструктор заглушки по умолчанию будет указывать на localhost.Если служба находится на другой конечной точке, вы должны использовать конструктор с конечной точкой в качестве параметра...Возможно, проблема совсем не в этом, но, как сказано в других ответах, без WSDL, который вы используете в качестве входных данных WSDL2Java, трудно сказать.