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