Исключение при трансляции классов с использованием javax.xml.namespace.Qname и javax.xml.ws.handler.PortInfo - PullRequest
3 голосов
/ 04 апреля 2019

Я подключаюсь к внешнему WSDL, используя IntelliJ.

После подключения к WSDL и создания моих классов Java я пытаюсь получить ответ от службы.

Служба совсем не сложна, просто «Да», «Нет» и«Неверные» ответы на сообщения.

Но я получаю исключение приведения класса, включающее PortInfo и Qname.

Вызов списка методов приведен ниже.

 Service helloService = Service.create(
      helloWsdlUrl, 
      new QName(nameSpaceUri, serviceName));

 List list = helloService.getHandlerResolver().getHandlerChain(
      (PortInfo) new QName(nameSpaceUri, portName));

 list.add(new HandlerInfo((Class) null, (Map)null, (QName[])null));

И сообщение об ошибке, которое я получаю:

Exception in thread "main" java.lang.ClassCastException: 
javax.xml.namespace.QName cannot be cast to javax.xml.ws.handler.PortInfo
at Client.main(Client.java:37)

снимок portinfo удален

Любая помощь будет принята с благодарностью.

Спасибовы

1 Ответ

1 голос
/ 04 апреля 2019

Ваша проблема в том, что QName нельзя привести к PortInfo. Это следующий код, который генерирует ошибку:

(PortInfo) new QName(...)

Почему вы делаете этот актерский состав? getHandlerChain() должен быть в состоянии принять QName экземпляр.

...