Java
S2JDBCを使って DBのデータ数十万件をまとめてDLしようとしたらエラーになった。 getResultList()じゃなくてiterate()使ったら結果をまとめて保持しなくなるからメモリを使わなくなるんじゃないの?と思ったけどダメ。 WicketのResourceStream系がキャッシュ…
S2JDBCでPostgreSQLのhstoreを使う - より良い環境を求めて の続き。 S2JDBCのwhereメソッドに指定するクラスは、Whereクラスを継承して作れる。 abstract class PgsqlOperator<PARAM_TYPE> implements Where { protected final CharSequence propertyName; protected fi</param_type>…
PostgreSQLにはKVSのような型 hstore ( http://www.postgresql.jp/document/8.4/html/hstore.html ) がある。 横に巨大なExcelをデータベースに突っ込む場合、いちいちカラム作らなくていいんじゃね?ということでhstoreにごっそり入れてみる試み。 そういう…
S2JDBCはJavaを修正→DB修正っていう方針だけれど、使い始めてからずっと逆向きでやっている。 やり方をメモ。 制作中のワークフローは EclipseのERMasterでERD作成 DDL生成 DBリビルドスクリプト実行 ※1 Java更新スクリプト実行 ※2 S2JDBCのタスク実行 とい…
アンデプロイ時にエラーが出る。 S2Wicketの場合。 2011/12/13 16:57:37 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 致命的: The web application [/app] appears to have started a thread named [ModificationWatcher Task] bu…
Wicket+Seasar(S2Container、S2Wicket、S2JDBC)で一通り開発したけれど、なんだか合わないなと感じた。不満だったのは以下の点。 S2JDBC-Genで生成したサービスクラスが使いにくい。 S2ContainerとWicketの両方にオブジェクト生成機能がある HOT Deployが…
GlassFishに限らずポート1024未満でサーバーを動かす場合に authbind が使えるようだ。http://jars.de/english/how-to-set-up-glassfish-2-on-debian-or-ubuntu http://linuxchef.blogspot.com/2008/11/tomcat-glassfish-auf-port-80.html apt-get install a…
GWT上でModelRefが利用出来ることが分かったが、サーバー側で一度もgetModel()を実行せずにGWTで初めてgetModel()するともnullが返る。 気を付けていても忘れることがあって思わぬところでエラーが出る。 そんなときはテスト。 ModelRefは内部にModelインス…
Slim3 + GWT でクライアント側のテストをするために、Gin はちょっとオーバースペックな気がしたので mockito を使ってみてる。 private ItemServiceImpl itemService = spy(new ItemServiceImpl()); @Test public void myTest() throws Exception { ClientF…
直感的にはModelにKeyのリストを保持しておいて、Datastore.get(Child.class, keys)をやった方が速いと思っていたがInverseModelListRefを使ったqueryの方が速かった。 と言っても大した量でテストしてないんだけど、一応メモを残しておく。 ツリー構造のデ…
昨日書いた *1 ときにはModelRefはGWTで使えないと思っていたんだけど、modelRef.getKey().getName() は実行出来る。 ModelRefはタイプセーフを実現するためのクラスで、実際にはKeyを持っている。 そして普通にGWT側で modelRef.getModel() を実行してもも…
ちょっと混乱したのでメモ。昨日書いた *1 ことは若干勘違いが入っていた。 keyToString、stringToKey と 文字列のキーかどうかは関係ないんだね。 文字列のキーをkeyToStringしたところで、Keyインスタンス自体のエンコード済み文字列(?)が返ってくる。…
WicketとSeasar2でのテストの書き方メモ。 S2WicketのS2WicketFilterを使っている。 HTMLファイルをWEB-INFなどに入れている場合はMarkupNotFoundExceptionが発生するのでEclipseのJUnitのプロパティで作業ディレクトリをsrc/main/webappなどにしておく。 pu…
一昨日書いたこの本。オープンソース徹底活用Slim3によるWebアプリケーション開発作者: 山田健一出版社/メーカー: 秀和システム発売日: 2011/01/28メディア: 単行本 クリック: 20回この商品を含むブログ (10件) を見る1/3までじっくり読んであとは流しでしか…
オープンソース徹底活用Slim3onGoogleAppEngineforJava作者: ひがやすを,小川信一出版社/メーカー: 秀和システム発売日: 2010/07/30メディア: 単行本購入: 12人 クリック: 462回この商品を含むブログ (36件) を見る後半はWebの資料で十分だが、7章あるうちの…
よく忘れて毎回見に行っているので自分のところにもメモ。 homma 2007/10/14 05:38 Java言語仕様によると、sunのお勧めは public protected private abstract static final transient volatile synchronized native strictfp interface の順番のようなので、…
GWT + Seasar2 で困ったことが一つ。 S2JDBCのentityをGWTのクライアントに受け渡せない。 で、今まではDTOを作って詰め替えをしていたのだけれど…。 Slim3を少し触ってみたら、こっちはGWTに完全対応なのでDatastoreからのModel(S2JDBCでいうEntityのよう…
or検索を調べる → ComplexWhereを見つける → ソースを書き直す → SimpleWhereだけで出来るというコメントを見つける → ソースを書き直す → タイプセーフAPIを使うならSimpleWhereはよくないという記述を見つける orz 最初にここを読んだ。 http://d.hatena.n…
Tomcatで動かないからbundleバージョンを使ってみたんだけど、こっちも動きが怪しい。 jvm 1 | 2011-03-12 21:01:30 WARN [@qtp-9518166-11] - org.apache.shiro.mgt.DefaultSecurityManager - Delegate RememberMeManager instance of type [org .apache.sh…
runjettyrunを使おうと思って少し試してみると、終了がうまくいかない。jetty6だとXAConnectionImpl でLinkageErrorが出るし、jetty7だと終了がエラーになる。終了はできているみたいなんだけども…WindowsのEclipseだと特にエラーも出なかったがDebianだと動…
大ざっぱに http://www26.atwiki.jp/memotech/pages/90.html ここの通りに設定してるんだけど、ログが二重に出る。 http://www7a.biglobe.ne.jp/~junmix/diary/diary0906_01.html 検索したらこれぐらいしかヒットしなかった。 Notice the duplicated output.…
非常に読みにくい。 Javaをやり始めたところなので、自分のJavaの力がないのかソースの書き方がおかしいのかの判断がつかない。 しかし、ざっと眺めつつ読んでるんだけど、継承の使い方があまりよろしくないような。 例えば 50 /** 51 * The abstract class …
SignInPanelで使われていたので、それを見ながら同じコードを書いたら警告が出た。 WARNING: Couldn't resolve model type of Model:classname= [org.apache.wicket.model.PropertyModel]:nestedModel= ... , please set the type yourself.ValueMapのAPIを…
GWTを使いつつ、たまに静的ページも出したい。 ということでWicketを使ってみることにした。 まずWicketの設定。 wicket-*.jar をビルドパス、WEB-INF/lib に追加。http://wicket.apache.org/learn/examples/helloworld.htmlここの通りにサンプルを作成。 次…
サーバーサイドのEntityをクライアントで使えるように出来るらしいのでやってみる。 S2JDBCのEntityを利用した。 http://code.google.com/intl/ja/webtoolkit/doc/latest/DevGuideRequestFactory.html ここの通りにファイルを作っていく。 テーブルはidとtex…
理想通り動きすぎて凄い! s2jdbc-genを使って生成したEntityは特に変更する必要もなく、サービスに再帰SQLのコードを書くだけだった。 public class Category implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(…
Javaで一時的なデータをどこに保存しようかと調べていた。 File.createTempFile はサーバーでは使えなさそうだし…ということで、EHCacheを試す。 http://journal.mycom.co.jp/articles/2010/05/19/ehcache/index.html 簡単な使い方はここ。 ダウンロードは h…
http://d.hatena.ne.jp/n314/20101118/1290101208 Postfixが遅かった。 原因は不明。 下に追記 開発マシン time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.032s user 0m0.004s sys 0m0.008s サーバー time /usr/sbin/sendmail -t < /tmp/body.txt rea…
SMTPを喋ってるから遅いのかな?と思ってsendmail実行に切り替えてみた。 class MailService { ... private final boolean useSendMail; public MailService(){ if (new File(SENDMAIL_PATH).exists()) useSendMail = true; else useSendMail = false; } ...…
http://d.hatena.ne.jp/n314/20101026/1288070773 ここでRPC処理も含めてjarを作れば簡単に共通化できるよねと書いたんだけど、うまくいかない。 これを書いたときはうまくいってたのかな…ちょっと覚えてない。 jarの中のServiceAsyncを呼び出すと、Incompat…