Исключение конфигурации оси Apache

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

org.apache.axis.ConfigurationException: No service named <web service name> is available

любая идея?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
16
0
28 707
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
    service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
    e.printStackTrace();
}
Ответ принят как подходящий

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

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

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

Это исключение, используемое потоком управления Axis.

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions -> org.apache.axis.ConfigurationException: служба с именем XXX недоступна

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

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

Другие вопросы по теме