あきらるブログる なかなかひとつに絞れない大好きなものを日記として残してます。 ・ソロギター ・IT ・マクロス Seasar2 SAStruts Jdk6 tomcat7 の稼動環境で、コンテキストをアンデプロイしてもメモリリークが発生しておりPermGenを食いつぶす 【現象】 JDBCで使用しているクラス群がTOMCATのクラスローダーによって使用されたため、 コンテキストのアンデプロイを実施してもクラスが解放されないため、 PermGenを食いつぶしていた。 ・jdk1.6.0_31 ・apache-tomcat-7.0.27 ・s2-framework-2.4.45 ・sa-struts-1.0.4-sp9 調査にあたり、jvisualvm.exeでメモリ状況を確認する為、TomcatConfigurationに下記を追加。 -Dcom.sun.management.jmxrem
SAStruts と S2JDBC を利用したMavenプロジェクトの pom.xml のサンプルである。 今回は、 Super Agile Strutsチュートアル と S2JDBCのチュートリアル を利用している。フォルダ構成やdiconファイルは、既に用意されているという前提で話を進める。 どちらのチュートリアルもmavenプロジェクトになっていないので、こちらでmavenプロジェクト化する必要がある。 今回は、開発用のリソースフォルダと公開用のリソースフォルダを分けて、ビルドの際にプロファイル指定で リソースファイルを切り替えられるようにした。 プロジェクトのフォルダ構成 src/main/javaJavaソースフォルダ(共通) src/test/javaJavaソースフォルダ(テスト用) src/main/resourcesリソースフォルダ(開発用) src/test/resou
1)プラグインをインストール。http://www.skirnir.net/eclipse/updates/3.2/ 2)プロジェクト→プロパティ→Maven2 Additional で設定を有効にする。 3−1)バイナリのコピーディレクトリを指定する。 ※デフォルトは src/main/webapp/WEB-INF/lib 。3−2)除外対象のバイナリを指定する。 ※デフォルトは servlet-api とか junit 。3−3)クラスパスコンテナ変数を指定する。 ※デフォルトはm2eclipse向けになってる。 4)プロジェクト→Maven2→Refresh WEB-INF/lib を実行。 これで Maven のクラスパスコンテナから src/main/webapp/WEB-INF/lib 配下に jar をコピーしてくれます。もちろん m2eclipse も q4e ともに ok
まずEclipse, Apache Tomcat, Subversiveを入れましょう。 sa-struts-tutorialを入手する プロジェクトのお手本を入手します。zipを解凍したら、Eclipseにプロジェクトをインポートします。 Super Agile Strutsチュートリアル sa-struts-tutorial-1.0.x.zip http://sastruts.seasar.org/download.html m2eclipse Plugin EclipseからMaven2を使うためのプラグインを入れます。 下記のアップデートサイトからプラグインをダウンロードします。 http://m2eclipse.codehaus.org/update/ http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn11/eclipseplg
ActionFormに次のようなプロパティがあったとします。 public Map<String, Object> map;このmapプロパティにStruts的には、次のような感じでアクセスします。 <html:text property="map(aaa)"/>SAStruts 1.0.4-sp5ではこのパターンに対応できていないので、Mapのプロパティにアクセスするときには、Strutsのタグは使えません。かわりに次のように普通のinputタグを使ってください。 <input type="text" name="map.aaa" value="${f:h(map.aaa)}"/>さっき修正したので、SAStruts 1.0.4-sp6(次のリリース)から、Strutsのタグでも使えるようになります。 https://www.seasar.org/issues/browse/SASTRU
久々にSAStrutsねた。 SAStrutsに限らずWebアプリ一般で、データの更新・作成処理と表示処理を分割するためにリダイレクトが使われる。HogeAction#saveで保存が完了した後に、FugaAction#indexへリダイレクトするようにした。 public class HogeAction { @Execute public String save() { // ... 何か保存処理 return "/fuga?redirect=true"; } } で、saveが成功すると302ステータスを返しリダイレクトするのだが、Cookieが使えないブラウザではLocationヘッダの値にjsessionidが付加される。 Location: http://localhost:8080/test/fuga;jsessionid=xxxxxxxxxxxxxxxxxxxxxxここでU
SAStruts アクションにJSONを返すメソッドを作成してみる - 130単位 ↑で書いたコードに対し、気になった点があって直そうと思いました。が、あまりに修正点が多かったので新たに記事にしてみます。 以前のコード Ajaxでリクエストされ、従業員のリストをJSON形式で返すメソッドです。 @Execute(validator = false) public String ajaxEmployeeList() { List<Employee> employeeList = employeeService.findByDeptId(form.departmentId); HashMap<String, String> map = new HashMap<String, String>(); for (Employee emp: employeeList) { map.put(emp.id
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く