Что-то не так в моем коде во время выполнения. Я реализовал клиент SOAP с помощью apache CXF. Я создал конечную точку через JaxWsProxyFactoryBean
. Вот мой код:Apache CXF java.lang.StackOverflowError
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(MYAPI.class);
factory.setAddress(service);
api = (MYAPI) factory.create();
Первый раз, когда я реализовал его, он работал хорошо, поэтому я решил сделать некоторые рефакторинга, (классы шаг заглушки в другом пакете, интерфейс API в другой и так далее ...) Когда я снова построил его и запустил, что-то случилось. Приложение не в состоянии с java.lang.StackOverflowError
в api = (MYAPI) factory.create();
Вот это StackTrace:
Thread [main] (Suspended (exception StackOverflowError))
ReflectionUtil.getDeclaredFields(Class<?>) line: 169
JAXBContextInitializer.walkReferences(Class<?>) line: 395
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
JAXBContextInitializer.addType(Type, boolean) line: 236
JAXBContextInitializer.addType(Type) line: 226
JAXBContextInitializer.walkReferences(Class<?>) line: 424
JAXBContextInitializer.addClass(Class<?>) line: 317
....
Может кто-нибудь помочь мне решить эту проблему? Я не знаю, в чем проблема. Я основал это, может быть, проблема использования JAVA 8 для сборки CXF, но я с версией 3.1.7, и я также пытался построить ее с помощью Java 7 (потому что у меня нет специфических реализаций Java 8), запустите ее и эта же проблема повторилась.
Кажется круговой ссылкой. Не могли бы вы показать свою модель JAXB? – pedrofb
Вы имеете в виду классы-заглушки с аннотациями JAXB? –
Да. Кажется, что как-то класс берет себя рекурсивно – pedrofb