私は、Java 8.0で開発したとTomcat 8.0にデプロイされたWebアプリケーションを持っています。いくつかのシナリオでは、私が慣れていないんだよこれで文字列を使用してエラーを持っています。例えば、私は私のシナリオのいずれかで、以下のように同じエラーを持っています:
Caused by: java.lang.IllegalArgumentException
at sun.reflect.GeneratedMethodAccessor6555.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_102]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_102]
at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:44) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:649) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:205) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4745) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:189) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:128) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1152) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.processResultSet(Loader.java:1011) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.doQuery(Loader.java:949) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2692) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2675) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2507) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.Loader.list(Loader.java:2502) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:392) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1490) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1445) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1414) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at sun.reflect.GeneratedMethodAccessor8215.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_102]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_102]
... 64 more
私は、JavaとTomcatを再インストールしましたが、私はまだ、このエラーを取得してきました。誰もが任意のアイデアや提案を持っていますか?
これは、既製のJavaの通常の動作ではありません。だから我々は、これらのスタックトレースがあなたのコードの呼び出しによって生成されていないと結論しなければなりませんThrowable::printStacktrace()
掘りのビットを行った後、一つの可能な原因は、あなたのロギング用Logbackを使用して、特に使用していることである%xThrowable
という%throwable
にはPatternLayout
パターン。これは、あなたが見ているという構文でスタックトレース内の余分な梱包情報が含まれています。あなたはを参照してくださいLogbackドキュメンテーションパターン言語で可能な多くのバリエーションがあるので、詳細については。
ドキュメントも書かれています:
その潜在的なコストを与えられたことに注意してください、パッケージデータの計算は、デフォルトでは無効になってください。包装データの計算が有効になっている場合、
PatternLayout
自動的に引き継ぎます%xThrowable
接尾辞の代わりに、%throwable
パターン文字列の末尾に接尾辞を。
だから、サフィックスは、これを行うの副作用が考えられます。
<configuration packagingData="true">
...
</configuration>
Logbackの設定インチ
UPDATE:あなたはLog4j2ではなく、Logbackを使用していると述べました。
Log4j2を有する等価パターンベースのロギングレイアウト有する%xThrowable
サポートと、参照https://logging.apache.org/log4j/2.x/manual/layouts.htmlを
この文字列がないことのすべてで、いくつかのスタック・トレースに表示されていることをご検討ください。
アプリケーションまたは使用していることをいくつかのサードパーティ製のライブラリを呼び出している場合には、説明することができるThrowable::printStacktrace
または類似直接いくつかの状況では、他でロガーを経由してスタックトレースを生成します。