問題タブ [rythm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
159 参照

rythm - rythmengine CompileException "注釈は、ソース レベルが 1.5 以上の場合にのみ使用できます"

Gradle経由でコンパイルおよび実行されたJava 1.8でrythmengineを呼び出しています。

例外は次のとおりです。

org.rythmengine.exception.CompileException: 構文エラー、注釈はソース レベルが 1.5 以上の場合にのみ使用できます

...

関連する Java ソース行:


コードの他の部分では問題なくアノテーションを使用しています。また、Gradle が実際に JRE 1.8 を実行していることを確認しました。この問題は、Rythm の内部コンパイラで発生しているようです。

0 投票する
1 に答える
583 参照

java - RythmEngine と TemplateClassManager がヒープの最大のオブジェクト: メモリ リークの問題

私の会社では、その機能とプロジェクトでの使いやすさから Rythm を使用しています。私たちのプロジェクトでは、いくつかの電子メールを送信しています (1 日に 1000 ~ 2000 通の電子メール)。電子メール テンプレートは、動的構文 (Java コード) を使用した Rythm テンプレートです。パフォーマンスは問題ないようで、統合テストに合格しました。

それでも、3 ~ 4 日後にメモリ リークが発生するいくつかのメモリの問題を実験しました。プロファイリングでは、Spring の ClassLoader や BeanFactory よりも、Rythm がヒープの最大のオブジェクトであることがわかりました (私たちのプロファイリングは約 1 日です)。

ヒープ ツール アナライザーを使用して、RythmEngineTemplateClassManagerが最大のオブジェクトであることを確認しました。

ヒープ アナライザー ツールから、これらのオブジェクトは大きなものであることがわかり、時間の経過とともに増加しているように見えます。

ここに画像の説明を入力

そしてGCルート。

ここに画像の説明を入力

メモリ プールに関して: Par Eden は問題ないようで、CMS Old Generation は増加しないか、少なくともゆっくりと (一部の主要な GC の後でも、メモリが解放されているようです)。ヒープ メモリは問題ないように見えますが (テストとプロファイリングは約 1 日です)、本番環境では最大ヒープに達した後、ゆっくりと増加します。

誰かがこの機能を実験したか (rythm を使用し、数日後にメモリ リークが発生したか)、または実稼働環境で rythm を使用してパフォーマンスを向上させる方法のベスト プラクティスを教えてください。または、深さのメモリリークに対処する方法についてのアイデアは歓迎されます。

重要な注意[2015 年 9 月 30 日] :テンプレート エンジンとして Rythm から FreeMarker に変更しました。 (監視システムが反映しているように)メモリはより安定しており、最大メモリ(-Xmx1024) の約 20% です。詳細は今週中にお知らせします。しかし、Rythm にはいくつかのメモリの問題があり、数日後にメモリ リークが発生する可能性があるようです。

重要な注意[2015 年 6 月 10 日] : 数日間の集中的な監視の後、FreeMarker をテンプレート エンジンとして使用してメモリが安定していることを確認しました。製品の Rythm のすべての依存関係を削除しました。これは、調査によると、数日後 (この場合は 2 日) にヒープの OOME が発生する潜在的なメモリ リークの問題が解決されていないことが反映されているためです。問題はクローズされました。

0 投票する
0 に答える
92 参照

java - リズムテンプレートへの画像の埋め込み

Rythm テンプレート エンジンを使用して、Java コードからテンプレート メールを送信しています。しかし、タグを使って画像を埋め込もうとすると、メールに画像が表示されません。

リズムテンプレートに画像を埋め込む方法を誰か教えてもらえますか? リズム エンジンがこれを処理できない場合は、より優れたテンプレート エンジンを提案してください。

ありがとうございました。

0 投票する
1 に答える
37 参照

rythm - rythm を使用して xml ファイルを生成するときにテキストをエンコードする方法

xml ファイルの生成中に、エラー メッセージ タグ内のテキストをエンコードする必要があります。私のタグは、<>#$%^& "/ErrorMessage" などの特殊文字を含むテキスト "ErrorMessage" です。rythm テンプレート エンジンを使用してファイルを生成するときに、これらの特殊文字をエンコードする方法はありますか?

0 投票する
1 に答える
56 参照

google-app-engine - Rythm Template Engine と GAE は、再起動せずにテンプレートをリロードします (dev モード)

Google App Engine (開発サーバー) では、変更時に Rythm テンプレートをリロードできますか? RythmEngine を engine.file_write.enabled=true および engine.mode=prod で構成してファイル許可エラーを回避していますが、テンプレートを変更するたびに GAE サーバーを再起動する必要があります。

0 投票する
1 に答える
241 参照

java - Rythm で @ 記号をエスケープするにはどうすればよいですか?

Java テンプレート エンジンである Rythm (yup no h) を使用しています。

アイデアは、テンプレート ファイル (テキスト ファイルなど) のプレースホルダーを置き換えることです。

私の場合、JSONを扱っています。Rythm エンジンを呼び出すには、次のことを行うだけです。

出力は

ご覧のとおり"bar"、エンジンがプレースホルダーと間違えた @acme に値が送られました。@ 記号をエスケープするにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
51 参照

rythm - 動的評価のための Rythm 空白行

firstName が null として渡された場合、エンジンは空白行を挿入します。それを回避する方法はありますか?「コンパクト」はここでは機能しません。