2

私たちのチームは、ベロシティ テンプレートで繰り返し発生する問題に直面しています。レンダリング時に、「Template.merge() の失敗 - Velocity テンプレート '/template.vm' をレンダリングできません」というメッセージとともに RuntimeException をスローするものがあります。問題を再現できず、Web 上のドキュメントはかなり不十分です。この問題は一貫して再現できるわけではありません。同じテンプレートをレンダリングするとエラーが発生することがありますが、それ以外の場合は問題なく表示されます。Template クラスのソース コードもほとんど役に立ちません。前もって感謝します。


編集: Nathan Bubna の回答に基づいて、Velocity バージョン 1.4 を使用していることを明確にする必要があります。


編集:スタックトレースが有益であることが指摘されたので、ここにあります:

2008-09-15 11:07:57,336 エラー速度 - Template.merge() の失敗。ドキュメントが null です。解析エラーが原因である可能性があります。2008-09-15 11:07:57,336 ERROR VelocityResult - Velocity テンプレートをレンダリングできません, '/search/[template-redacted].vm' java.lang.Exception: Template.merge() 失敗。ドキュメントが null です。解析エラーが原因である可能性があります。org.apache.velocity.Template.merge(Template.java:277) で com.opensymphony.webwork.dispatcher.VelocityResult.doExecute(VelocityResult.java:91) で com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport) .java:109) で com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258) で com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182) で com.opensymphony.xwork.interceptor.

4

5 に答える 5

3

どのバージョンのVelocityを使用していますか?これを引き起こした古いバージョンにはいくつかの競合状態がありました。ほとんどはVelocity1.5リリースで押しつぶされました。個人的にはVelocity1.6-beta1の使用をお勧めしますが。パフォーマンス(メモリと速度)が大幅に向上し、1.5にはならなかった多くのマイナーなバグ修正が行われました。

編集:1.4を使用しているとおっしゃっていますが、そうです、これが私たちが修正した競合状態であると確信しています。アップグレードを検討してください。1.6は、バグが修正され、パフォーマンスが向上しているため、間違いなく最善の策です。1.6ファイナルは間もなくリリースされるはずです。

于 2008-10-17T22:00:23.167 に答える
1

私は今、私たちのウェブサイトで同じバグに取り組んでいます。

競合状態のようです。同じページをフェッチする複数のプロセスを使用して一貫して再現できますが、リクエストをシリアル化した場合は再現できません。

私はvelocity-1.5を使用しています。1.6-beta1に移行しようとしましたが、他のエラーが表示されます。

解決済み:以下のコメントを参照してください

于 2008-10-28T00:54:22.757 に答える
0

コードの作成者に電子メールを送信して、洞察を提供できるかどうかを確認しました。学んだことは必ず共有します。

于 2008-09-23T02:36:47.720 に答える
0

ソースのコメントで、これは起きてはならないと既に述べられているので、これは Template ソフトウェアのバグだと思います。バグレポートを書いた人に提出してください。

于 2008-09-16T21:47:41.657 に答える
0

RuntimeException とその原因の完全なスタック トレースを取得する必要があります。

回答を編集してその情報を追加してください。

于 2008-09-16T23:42:04.190 に答える