ときに「〜[クラス/ :?]」文字列(または同様な〜などは、[??:])ないJavaスタック・トレースラインの最後に表示されますか?

エサン:

私は、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を再インストールしましたが、私はまだ、このエラーを取得してきました。誰もが任意のアイデアや提案を持っていますか?

スティーブンC:

これは、既製の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または類似直接いくつかの状況では、他でロガーを経由してスタックトレースを生成します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=235863&siteId=1