実行時に自分のコードで何かがうまくいかない。私はapache CXFを使ってSOAPクライアントを実装しました。私はJaxWsProxyFactoryBean
経由でエンドポイントを作成しました。ここに私のコードは次のとおりです。Apache CXF java.lang.StackOverflowError
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(MYAPI.class);
factory.setAddress(service);
api = (MYAPI) factory.create();
私はそれを実装したときに、それがうまく働いていたので、私はいくつかのリファクタリングを行うことを決め、(その上、異なるパッケージ内の別でAPIインターフェイスをスタブクラスを移動し、最初に時間が... )私がそれを再構築して実行すると、間違ったことが起こります。誰もがこの問題を解決するために私を助けることができる
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
....
:アプリケーションは、スタックトレースです。ここapi = (MYAPI) factory.create();
でjava.lang.StackOverflowError
でのに失敗しますか?私は何が問題なのか分からない。私はCXFをビルドするためにJava 8を使用するのが問題かもしれませんが、私はバージョン3.1.7を使用していますが、Java 7を使用してビルドしようとしました(Java 8固有の実装がないため)同じ問題が再び発生しました。
循環参照と思われます。あなたのJAXBモデルを見せていただけますか? – pedrofb
JAXBアノテーションを使ったスタブクラスですか? –
はい。それはどういうわけか、クラスが再帰的に課金しているようです – pedrofb