トップ 最新 追記

ふたつの川うるおう日記

Seasar Conference 2008 Autumn - 9/6(SAT), Tokyo

2006-08-01 (Tue)

_ [Seasar][Admin][Server] リポジトリブラウザとRSSフィード

導入しました。

RSSフィードはテスト時、拡張子を.rssにしてたのを.xmlに変更しました。また、SVNコミット時、RSSフィードを生成し終わるのを待たずに応答が返るようにしました。

| Bookmark:

_ [Seasar][Admin][Server] メールキュー

MLに所属している方で、メールが配送できない方がちらほらいて、50通程度キューに溜まり続けています。同時配送キューの上限(デフォルト20)に引っ掛かり始めて通常配送に影響が出始めているので、上限を上げました。

根本的には、該当者のメールアドレスを排除するなりしないとダメです。見てると同じ人(ホスト)が何通も引っ掛かってたりする。。

| Bookmark:

_ [Server][Admin] DNSの設定をより良く

いわゆるOpen DNSと呼ばれてDDoS攻撃の踏み台にされてしまう状態にあったのがあったので直しました。ついでにDNS Reportというサービスで可能な限りPASSとなるようにSOAレコードなど僕の管理下にある全DNSサーバを調整しました。Open DNSについては、JPRSからもアナウンスが出ていました。また、警察庁から検証レポートまで出てました。

だけど、今年より前に書かれた記事などではOpen DNSを許すようになっている記事が結構あるので、結構な数のDNSサーバがまずい設定になってる気がします。というわけで、気になったらDNS Reportでチェックして、まずかったら設定を見直しましょう。

| Bookmark:

2006-08-03 (Thu)

_ [大学] 打ち合わせ

来年度に向けて無難にまとまった感じ。

それより、頭痛が激しい・・・。夏風邪っぽい。

| Bookmark:

2006-08-04 (Fri)

_ [大学] メアド変更されるの?

えー、メアド勝手に変わるの??論文にメアド書いてる先生方とか超困っちゃうけど良いのかな?

苦情よろしく・・・。 [追記] でも、@サブドメイン が @ドメイン に変わるなら別に変わっても良いかもな。@新サブドメインに変わるなら微妙だけど。。

学部のメアド使えば学部の名前が変わらない限り変わらないから、この機会にそっち使ってもらっても良いかもな。でも、先生も移籍することがあるわけで、どちらかというと個人に付随する論文に書くメアドなどは、機関に依存しないで使う用途の一生涯使える独自ドメインのものが必要なのかもね。同様に学生でも社会人でも誰でも。

でも、僕も自分用に 名前@苗字ドメイン のメアド持ってるものの、一生涯スパムに悩まされることを考えてしまい、結局滅多に使ってないという。。。

| Bookmark:
本日のツッコミ(全2件) [ツッコミを入れる]

_ 通りすがりのカルビ [突然の告知だけど,日本語わかんない系の教授たちは知ってるのかね?]

_ jfut [どうなんでしょうね、来週どうなってるのか聞いてみます。実はあのメールは書き間違えで、認証時のユーザIDが変わるだけで..]


2006-08-05 (Sat)

_ [Seasar] SeasarWiki整理

SeasarWikiが長らく放置されまくりなので、ちょっと整理しました。ついでにCSSも勝手ながらいじりました。そして、コミッタが出来ることをまとめようと、「コミッタはじめの一歩」というのを書くつもりが、なぜか「Seasarファウンデーションのコミッタになろう」とかいうのを書いちゃいました(;´ー`)。

こういうのも必要だから結果オーライということで・・・。おかしなとこは勝手に修正しちゃってください。

というわけで出かけてこよ。

| Bookmark:

_ [雑記] 免疫力低下中

今週に入ってから体調不良中です。何か当たったのか口の周りにできものができて、他の場所にもいくつか。そんでもって、目も結膜炎っぽく、口内炎も出来てて、いたるところ不調です。。何か当たったとしたら思い当たるとのはこないだ大阪行った時に食ったサバかなぁ。サーバ管理は好きだけど鯖は苦手_| ̄|○。

もしくは単なる夏バテだろうか。

| Bookmark:

2006-08-06 (Sun)

_ [Seasar][Admin] サーバ復旧

休日にも関わらず、復旧していただきました。グルージェントの皆様ありがとうございますm(_ _)m。

| Bookmark:

_ [Seasar][Admin][Server] anet.ne.jpも終了してた

anet.ne.jpっていつの間にかInfoseekのサービスになってて、さらにサービス終了してたんですね。かなり昔に使ってました。

MLに何人か@anet.ne.jpで登録している人がいて、送信できずにキューに溜まってたので強制退会させました。

| Bookmark:

2006-08-09 (Wed)

_ [Seasar][Admin] グローバルネットワークは救われた・・・はずなんだけど。。様子

0:38にアラートが飛んできてる・・・。実はapp01の方がたまたまトラブった・・・なんてことはないかも。。

明日一日様子見で。

ただ、今の構成でグローバルネットワークがダメだと、プロバイダ(基本的にありあえない)とかしかもう思い浮かばなかったり。。

うーん、なんなんだろぅ。

激しくおねむなので、MLに溜まってるのは明日の午前中に処理します(;´ー`)。

[11:46] その後、一晩アラート飛んできませんでした。やっぱし大丈夫っぽいかも?もっと様子見。

[01:26] 一日経過してアラート飛んできませんでした。ということで大丈夫そうですヽ(´ー`)ノ。

| Bookmark:
本日のツッコミ(全6件) [ツッコミを入れる]

_ koichik [アラートは飛んできませんが,www.seasar.org が返ってこない気のせいが. 夕べもこんな感じだったような?]

_ jfut [そうでしたか、、、アラートの閾値を少し厳しくして、SSHを繋ぎっ放しにして明日1日切断されないか試してみます。]

_ koichik [復旧ありがとうございます♪]

_ jfut [10日の13:57に飛んできましたが、その後、SSH接続は切れてないです。とりあえず以前よりは格段にapp02のネッ..]

_ koichik [木・金と順調ですね♪]

_ jfut [順調そうですねー。良かったです。]


2006-08-10 (Thu)

_ [Seasar] Mavenサイト化

横田さんが作られたテンプレートちょっと編集してみました。

まだ、英語を /en/ に生成したいのと、リダイレクトするindex.html.en index.html.ja を生成するのと、英語日本語切り替えリンクがちゃんと出来てないです。ちょっとmaven-site-pluginのドキュメントを見た感じすべて /ロケール/ 以下に生成するのは出来ないのかもしれない。

| Bookmark:
本日のツッコミ(全2件) [ツッコミを入れる]

_ masataka_k [テンプレートのヘッダメニューをなんとかしたいね。ここまできちゃうと機能的じゃない感じ]

_ jfut [そうですね、とりあえずhigaさんのメニュー案を取り入れてMaven使いたい人用ということで、MLに投げてみたいと思..]


2006-08-11 (Fri)

_ [大学] 困った

今日がIPSJ PROの締め切り日でした。でも、担当教授と連絡取れてません(;´ー`)。

というか、締め切り忘れてた僕がだめだめなんだけど_| ̄|○。。

[追記] 一応出した。発表会は過去のみると、とっても場違いな気もするけど、論文誌みるとそうでもないので、どうなるかな。

| Bookmark:

_ [Seasar] Mevenサイトカスタム

Mevenサイトカスタムを更新してみました。/en/ にするのに、maven-antrun-plugin使っちゃいました。

メニューは、site.xmlとsite_ja.xmlに定義を追加することでMavenが生成する以外のページも自由に作れるようです。

新規プロジェクト開設用には、そのあとプロジェクトがMavenサイトを使うか判らないということと非Javaプロジェクトもあり、あまり初期状態でコミットしないようにしたいので、追加メニューなし + 画像類も最低限にしたいです。

| Bookmark:

2006-08-13 (Sun)

_ [雑記] 大阪行き

2〜3日留守にします。ノーパソは一応持ってきます。

| Bookmark:

2006-08-14 (Mon)

_ [雑記] お疲れ

帰るのは16日の夜遅くになりそうです。とりあえずネットは、ビジネスホテルで確保したものの、あんまり触れる時間はなさそうです。

| Bookmark:

_ [Work] 停電

今日の朝の停電で、見てるサーバ2台が巻き込まれて再起動掛かったようです。朝、電話掛かってきて、携帯でWEBサーバ生きてるの確認したものの、どっか壊れてないか心配でした。今接続して確認したところ再起動は掛かったみたいだけど、壊れてはなさそうです。良かた良かた。

| Bookmark:

2006-08-17 (Thu)

_ [雑記] 脱力中

疲労が溜まってて脱力中ー。

| Bookmark:

_ [大学] ネットワーク停止中

いつも使ってるIRCDが使えなくてなんか変な感じ・・・。

| Bookmark:

2006-08-19 (Sat)

_ [Java][Seasar] コンストラクタを探さないでー (解決)

trunk/s2struts-exampleを見ながらHotDeploy試そうと移植してみるも、S2Directory用のDao Interfaceのコンストラクタを探そうとしてエラーになってしまい困り中。trunk/s2struts-exampleのS2DaoのDaoクラスも同じくインタフェースだけなのにこっちはちゃんと動いてるので、S2Dao自体に何か細工されたのかなとChangeLog見ても特になさそう・・・。なんだろこれ。

ERROR 2006-08-19 13:28:19,942 [http-8080-Processor24] handled exception, [ESSR0064]クラス(org.seasar.server.members.directorydao.PosixAccountDtoDao)のコンストラクタ(PosixAccountDtoDao())が見つかりません
org.seasar.framework.exception.NoSuchConstructorRuntimeException: [ESSR0064]クラス(org.seasar.server.members.directorydao.PosixAccountDtoDao)のコンストラクタ(PosixAccountDtoDao())が見つかりません
  at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:135)
  at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:87)
  at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:40)
  at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:50)
  at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:37)
  at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98)
  at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:113)
  at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:149)
  at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51)
  at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:67)
  at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:63)
  at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:38)
  at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98)
  at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:113)
  at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:149)
  at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51)
  at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:67)
  at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:63)
  at org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:62)
  at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98)
  at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:62)
  at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:54)
  at org.seasar.struts.taglib.InitializeTag.doStartTag(InitializeTag.java:41)
  at org.seasar.mayaa.impl.engine.processor.JspProcessor.doStartProcess(JspProcessor.java:260)
...
public interface PosixAccountDtoDao {
  public static final Class BEAN = PosixAccountDto.class;
  public int insertPosixAccount(PosixAccountDto posixAccountDto);
  public int updatePosixAccount(PosixAccountDto posixAccountDto);
  public int deletePosixAccount(PosixAccountDto posixAccountDto);
  public PosixAccountDto getPosixAccount(PosixAccountDto posixAccountDto);
  public List getPosixAccountList();
}

[19:24追記] DirectoryDaoOndemandCreatorってCreatorのsetterをtypoしてただけでした_| ̄|○。というわけで解決しました。

| Bookmark:

_ [Seasar][Java] HotDeploy時のContext設定

reloadable="false"

じゃないとダメなんですね。どうやっても上手くいかず、trunk/s2struts-exampleにちょっとずつファイルを移植して再起動を繰り返して、ついに全部移植したのにtrunk/s2struts-exampleのプロジェクトではリロードされないので、ドットファイルを比較したら気付きました・・・。気付くのに1日掛かった(;´Д`)。

Tomcat Pluginだと「このコンテキストの再読込を可能にする」のチェックを外してコンテキストの更新をする。

| Bookmark:
本日のツッコミ(全2件) [ツッコミを入れる]

_ Skirnir [ども。Kvasirでもhotdeployでいろいろハマりまくりですが、そういうノウハウを蓄積するWikiとかあればい..]

_ jfut [ですね、まだリリースされてないのでリリースされてもう一度はまったところ全部確認してWikiに書こうと思っています。で..]


2006-08-20 (Sun)

_ [Java][Seasar] S2DirectoryのHotDeploy対応

S2Directoryは基本的に初期時の処理は、S2DaoのResultSetを処理する部分をNamingEnumerationを処理するようにしているだけなので、S2Daoのやり方と同じようにしておきました。ValueTypesもValueTypeFactoryを経由するようにしたものの、S2Directoryの場合、データ取得後もValueTypes使って処理するところがあるので、ちょっと微妙かもしれない。とりあえずtrunkにコミットしておきました。

| Bookmark:

_ [Java][Seasar] HotDeploy + JoSQLが上手くいかない (解決)

[追記] setClassLoader(ClassLoader classLoaderで解決しました。

LogicImplでJoSQL使うとorg.josql.QueryExecutionExceptionが出てしまいました。

  • OK
    • "SELECT * FROM " + PosixGroupDto.class.getName();
  • NG
    • "SELECT * FROM " + PosixGroupDto.class.getName() + " ORDER BY cn";
    • "SELECT * FROM " + PosixGroupDto.class.getName() + " cn != 'www'";
    • "SELECT * FROM " + PosixGroupDto.class.getName() + " WHERE toNumber(gidNumber) > 1000";

Dtoの中身を比較しようとするとダメらしい。ちなみにHotDeploy化する前は動いてたコードです。

org.josql.QueryExecutionException: Unable to get value for LHS of expression: cn[detail: Accessor: cn from class: org.seasar.server.members.dto.PosixGroupDto] != 'www'
  at org.josql.expressions.EqualsExpression.isTrue(EqualsExpression.java:92)
  at org.josql.Query.execute(Query.java:881)
  at org.seasar.server.members.util.JoSQLUtil.getResultList(JoSQLUtil.java:45)
  at org.seasar.server.members.util.JoSQLUtil.getResultList(JoSQLUtil.java:25)
  at org.seasar.server.members.logic.impl.MembersLogicImpl.getProjectGroupList(MembersLogicImpl.java:205)
  at org.seasar.server.members.logic.impl.MembersLogicImpl$$EnhancedByS2AOP$$aa2594.getProjectGroupList$$invokeSuperMethod$$(MembersLogicImpl$$EnhancedByS2AOP$$aa2594.java)
  ...

なんとなくエラーが言いたいことは感じる・・・。

| Bookmark:

_ [Java][Seasar] S2StrutsQualified 0.7 beta 1

s2-struts-1.3.0-beta-2-SNAPSHOT.jar用。これでさっきのJoSQLの問題以外は移植してHotDeployで動いた(*゜ー゜)。

今回からDefaultActionPathNamingRuleを継承してパスをちょこっと変えるだけで良くなりました。とっても楽です>kanagashiさん

HotDeployだと動かしながらサクサク編集できて良いですね〜。JoSQLが動かないかいろいろ試すのが楽。結局まだ動いてないけど(w。

というわけで、お出かけ。

| Bookmark:

2006-08-21 (Mon)

_ [Java][Seasar] COOL deploy時のサブアプリケーションのコンポーネント名がまずいかも (解決)

[追記] これはS2StrutsQualifiedの問題でした。パッチ不要です。。

trunk/s2struts-example で org.seasar.struts.examples.employee.action.util.EmployeeSearchInit2Action があったとして、HOT deploy時とCOOL deploy時で動作するs2strutsのinitタグのアクションクラスのコンポーネント名が異なってしまうようです。

  • HOT deploy: <s2struts:init action="#{util_employeeSearchInit2Action.initialize}" />
  • COOL deploy: <s2struts:init action="#{employeeSearchInit2Action.initialize}" />

サブアプリケーションなので期待するのはHOT deploy時のコンポーネント名です。COOL deploy時でもHOT deployと同じコンポーネント名になってくれないとenv.txtで切り替えた時に動かないのでまずそうです。というわけで、S2Container(s2-framework-2.4.0-rc-1)のソースを見てみたら次のパッチを当てればとりあえず良いみたいです。

  • 適当なパッチ
    • コンポーネント名を必ずnamingConventionを使って決める
      • ConstantAnnotationHandlerにnamingConvention持たせても良いのかも
Index: E:/Java/Eclipse/Workspace/Seasar/seasar2/s2-framework/src/main/java/org/seasar/framework/container/cooldeploy/creator/AbstractCoolCreator.java
===================================================================
--- E:/Java/Eclipse/Workspace/Seasar/seasar2/s2-framework/src/main/java/org/seasar/framework/container/cooldeploy/creator/AbstractCoolCreator.java	(revision 1191)
+++ E:/Java/Eclipse/Workspace/Seasar/seasar2/s2-framework/src/main/java/org/seasar/framework/container/cooldeploy/creator/AbstractCoolCreator.java	(working copy)
@@ -119,9 +119,7 @@
                 .getAnnotationHandler();
         ComponentDef cd = handler.createComponentDef(targetClass, instanceDef,
                 autoBindingDef, externalBinding);
-        if (cd.getComponentName() == null) {
-            cd.setComponentName(composeComponentName(clazz.getName()));
-        }
+        cd.setComponentName(composeComponentName(clazz.getName()));
         handler.appendDI(cd);
         handler.appendAspect(cd);
         handler.appendInitMethod(cd);

でも、teeda-html-exampleはCOOL deployにしてもちゃんと動いてるので、これはS2Struts側でどうにかすべきものなのかな??

| Bookmark:

_ [Java][Seasar] S2StrutsQualified 0.7 beta 1 + COOL deploy

見事にCOOL deploy時に動かないわけだが(;´Д`)。試してなかった。。

| Bookmark:

_ [Java][Seasar] S2StrutsQualified 0.7 beta 2

というわけで、beta 2です。HOT/COOL deploy両方に対応し、サンプルアプリで同じソースで動くことを確認しました。

なお、一応QualifiedZeroConfigActionRuleImplを入れておきましたが、ZeroConfigActionRuleImplをs2struts.diconに設定した状態でも動いたので必要ないかもしれない。

また、S2Container 2.4のCoolComponentAutoRegisterとOndemandBehaviorに複数パッケージルートを設定出来る(素晴らしい!)ので、以前の怪しい正規表現っぽく書くpackageRuleは廃止しました。QualifiedRuleクラスでちょっと強引にCoolComponentAutoRegisterとOndemandBehaviorからパッケージルートを全部取得して処理します。これまたOndemandBehaviorは見る必要ないかもしれない。これも判らないのでとりあえず入れときました。

残るはJoSQLの問題。でも、この問題はどう対策すれば良いのかさっぱり思いつかない。。

ちなみに、HOT/COOL deploy対応したので、試してみたところJoSQL使っていてもCOOL deploy時はちゃんと動きました。HOT deploy時のみエラーが出るみたいです。

| Bookmark:

2006-08-22 (Tue)

_ [Java][Seasar] HOT deploy時のサブアプリケーションのServiceクラスのコンポーネント名setterのメソッド名 (解決)

昨日のコンポーネント名を直すと、(これはS2StrutsQualifiedの問題でした)HOT deploy時にサブアプリケーションのServiceクラスのコンポーネント名が、user_LoginServiceなどとなってしまうので、ActionImplでServiceのsetterを下記のようにしないと動作しない罠がありました。

public void setUser_LoginService(LoginService user_LoginService)

なんとなく不恰好なので下記ので動いて欲しい。

public void setUserLoginService(LoginService userLoginService)
public void setLoginService(LoginService loginService)

前者はServiceCreatorで登録するコンポーネント名を _ なしにするか、コンポーネント名を登録しないようにすればどちらでも動きそう。

[13:14追記] S2Strutsのorg.seasar.struts.pojo.util.BindingUtilに次のパッチを当てればとりあえず下記のsetterで動きました。

public void setLoginService(LoginService loginService)
  • propertyTypeで探してから、propertyNameでクラスを探すパッチ
Index: E:/Java/Eclipse/Workspace/Seasar/s2struts/src/main/java/org/seasar/struts/pojo/util/BindingUtil.java
===================================================================
--- E:/Java/Eclipse/Workspace/Seasar/s2struts/src/main/java/org/seasar/struts/pojo/util/BindingUtil.java	(revision 556)
+++ E:/Java/Eclipse/Workspace/Seasar/s2struts/src/main/java/org/seasar/struts/pojo/util/BindingUtil.java	(working copy)
@@ -63,13 +63,15 @@
         return (Class) primitiveMap.get(primitiveClass);
     }
 
-    private static Object getValue(S2Container container, String name) {
+    private static Object getValue(S2Container container, Class clazz, String name) {
         Object var = RequestUtil.getValue(S2StrutsContextUtil.getRequest(container), name);
         if (var != null) {
             return var;
         }
 
-        if (container.hasComponentDef(name)) {
+        if (container.hasComponentDef(clazz)) {
+            return container.getComponent(clazz);
+        } else if (container.hasComponentDef(name)) {
             return container.getComponent(name);
         }
         return null;
@@ -89,8 +91,9 @@
             return;
         }
 
+        Class propertyType = propertyDesc.getPropertyType();
         String propertyName = propertyDesc.getPropertyName();
-        Object value = BindingUtil.getValue(container, propertyName);
+        Object value = BindingUtil.getValue(container, propertyType, propertyName);
         if (BindingUtil.isActionFormProperty(propertyDesc, mapping)) {
             value = ActionFormUtil.getActualForm(S2StrutsContextUtil.getRequest(container), mapping);
         } else {
@@ -100,7 +103,6 @@
             return;
         }
 
-        Class propertyType = propertyDesc.getPropertyType();
         if (propertyType.isPrimitive()) {
             propertyType = getPrimitiveWrappedClass(propertyType);
         }

[15:12追記] トラッキングにHOT deploy時のサブアプリケーションのServiceクラスのsetterのメソッド名で登録しておきました。リリースされてないバージョンなので投げるか迷ってましたが一応投げておきました。見当違いでしたらゴメンナサイ(;´ー`)。

[15:54追記] 右往左往した結果、S2Containerのリビジョン1208の修正で、S2Container#hasComponentDef()で例外を出なくするようにしていただいたところ、この問題は発生しなくなりました。S2StrutsのBindingUtilの修正も不要です。ひがさん修正ありがとうございました。

| Bookmark:

_ [Java][Seasar] S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない (解決)

[追記] 解決しました

COOL deploy時に動作するThrowsInterceptorがHOT deploy時で動作しなかったり。

END org.example.web.user.impl.LoginActionImpl#login() Throwable:org.example.exception.UserNotFoundRuntimeException: ユーザ[ aaa ]は存在しないか、パスワードが正しくありません。
2006-08-22 03:23:29,296 [http-8080-Processor23] WARN  org.apache.struts.action.RequestProcessor - 処理できない例外がスローされました: class org.example.exception.UserNotFoundRuntimeException
2006-08-22 03:23:29,296 [http-8080-Processor23] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/members].[action] - サーブレット action のServlet.service()が例外を投げました
org.example.exception.UserNotFoundRuntimeException: ユーザ[ aaa ]は存在しないか、パスワードが正しくありません。
  at org.example.web.user.impl.LoginServiceImpl.login(LoginServiceImpl.java:60)
  ...

ThrowsInterceptorは、rokugenさんのS2Strutsで元の画面に帰りましょう処理のThrowsInterceptor。

デバックしてみるとCOOL deploy時には呼ばれているThrowsInterceptorが呼ばれてないみたい。何だろな〜。

[21:08追記] methodMapに登録されたhandleThrowableのMethodインスタンスと実行時に取得されたMethodインスタンスが異なるのが原因のようです。

| Bookmark:

_ [Java][Seasar] いろいろと

ここのところ自分好みのURIでS2StrutsとHOT deployを動かそうと右往左往していろいろコード見てるわけですがどれも勉強になります。今更ながらやっとほんのちょっぴりSeasar2コンテナの仕組みが判ってきた気がしてたり。。。というか僕にプログラム書くのが向いてない疑惑が以前より・・・。そんなわけで問題があっても小手先の回避先で右往左往し続けてる(;´ー`)ダメダメ。

19歳ぐらいからサーバ漬けで小手先に慣れすぎたかなー。

| Bookmark:

_ [大学] お盆休み終わり

月曜から研究室開いてます。明日は行こうかな。

| Bookmark:

_ [Java][Seasar] COOL deploy時のサブアプリケーションのコンポーネント名はちっともまずくない

ちっともまずくありませんでしたー。お騒がせしました。

| Bookmark:

_ [Java][Ashikunep] Ikushipeわくわく

Seasar2対応のコードが入ったようです。S2Strutsに慣れ親しんでるところで何ですが、リリースされたら移行でしょうか(;´ー`)。コミットログにいろいろ書かれてるのでわくわくしながら見てたりしますw。

| Bookmark:

_ [Java][Seasar] HOT deploy + JoSQLが上手くいかないが解決しました

原因はJoSQLがクラスインスタンスを操作するのに使っているgentlyWEB-utils-1.1.jarのクラスローダがHOT deploy時に対応できないためでした。で、Queryクラスを確認したらちゃんとsetClassLoader(ClassLoader classLoader)がありました。

Query query = new Query();
query.setClassLoader(Thread.currentThread().getContextClassLoader());

これで後は普段通り使えば動きました。解決!

このクラスはユーティリティクラスなんですが、HOT deploy時は良いとして、COOL deploy時は毎回Thread.currentThread().getContextClassLoader()するんじゃなくて、HOT/COOL deployでDIするのを変えた方が良いのかな。その辺のコスト感覚がさっぱり判らなかったり。

ところで、gentlyWEB-utils-1.1.jarは3rd-party-jarsと書いてあるだけあって、ソースがどこにも見つからない・・・。

とりあえず、ClassLoaderを使って何かするライブラリを使う際は同様の注意が必要そうです。

| Bookmark:
本日のツッコミ(全13件) [ツッコミを入れる]

Before...

_ ひが [最新版では、S2Container#hasComponentDef()で例外が出ないように修正しました(つもりですけ..]

_ jfut [修正ありがとうございます。確認したところ例外出なくなりました。トラッキングに登録しちゃったんですが、BindingU..]

_ ひが [ThrowsInterceptorの件ですが、お使いのThrowsInterceptorのクラス名と例外のクラス名と..]

_ jfut [クラス名: org.seasar.server.members.interceptor.ActionThrowsIn..]

_ masataka_k [お、コミットログ読みはっけん。]

_ jfut [はい、コミットログでどんな変更なのか把握できるようになったので変更点を追いやすくなりました。RSS連携が良い感じです..]

_ ひが [原因が(たぶん)わかりました。 ThrowsInterceptorの登録時には、オンデマンド以外で登録されていますね..]

_ jfut [修正ありがとうございます。試してみましたが、修正版ですとActionなどのコンポーネントが見つからなくなってしまいま..]

_ ひが [HotDeployClassLoader#loadClass()の実装を元に戻しました。]

_ jfut [確認しました。明示的に定義しないでCreatorに任せて使いたいと思います。いろいろとありがとうございました。]


2006-08-24 (Thu)

_ [雑記] 早起き

昨日も早起きして大学に早くに行ったら、なんかいろいろとやることが発生して気付いたら夜でした。帰ってきて超眠かったのでその後、爆睡し今日も早起きです。

そんなわけで、昨日やるといったS2Container 2.4のHOT deploy時のはまり所をWikiへはまだ書いてなかったり。。今日の夜までには書こう。

[追記] 2個↓に書きましたー。

| Bookmark:

_ [Java][Seasar] S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない が解決しました

ひがさんのアドバイスに従い、Interceptorの登録をコンポーネントに定義しないで、Creatorに任せれば期待通り動作しました。

上手く動作しない理由は、コメントに書かれている通り明示的にapp_aop.diconなどで定義してしまうと、コンポーネントの登録は非HOT deployのクラスローダで登録されてしまい、実行時にHOT deployのクラスローダで探そうとしてしまい見つからないようです。

というわけで、下手に明示的な定義はしないでHOT/COOLそれぞれのCreatorに全部丸ごとお任せしてしまえば幸せになれます。

これで僕が抱えていた問題はすべて解決しました!ひがさんいろいろとありがとうございましたm(_ _)m。

| Bookmark:

_ [Java][Seasar] HOT deploy時のFAQ

SeasarWikiのFAQ/S2Containerに3つ追加しておきました。

誤りや将来不要になった場合は気づいた方、修正よろしくお願いしますm(_ _)m。

| Bookmark:

_ [Java][Ashikunep] Ikushipe 0.4.0リリース

リリースされましたー。今週末にいろいろ試してみようヽ(´ー`)ノ。

| Bookmark:
本日のツッコミ(全2件) [ツッコミを入れる]

_ ひが [FAQ 乙です。]

_ jfut [どもです(゜ー゜)ノ。]


2006-08-25 (Fri)

_ [Seasar] イベントサイトリニューアル

Tuigwaaのコミッタであるtksmdさんが移行作業をされて、Seasarのイベントサイトがリニューアルしました。

Tuigwaa 0.9になったことでサイトデザインが自由になってます。Tuigwaaでこんなサイトが作れるという良い例ですヽ(´ー`)ノ。

| Bookmark:

_ [雑記] 時をかける少女

前評判をいろんなとこで見てたのでずっと観たかった。そんでもって大満足でしたヽ(´ー`)ノ。観たいと思ってる方、是非見に行くと良いですよ〜。公開から少し経ってるから空いてるかなーっと思ったけどお客さんたくさんいました。

| Bookmark:
本日のツッコミ(全4件) [ツッコミを入れる]

_ suga [503が……]

_ jfut [あらら、トップページでしょうか?場所教えていただければ、MLに一応投げて報告しておきます。]

_ suga [今は見えていますね。 書いた時間はトップから既にダメでした。]

_ jfut [詳細ありがとうございます。ログを見たら該当時間帯に再起動掛けてたみたいで、全ページ503が返ってきていたようでした。]


2006-08-27 (Sun)

_ [Java][Ashikunep] IkushipeとHOT deploy敗北

土日でちょろちょろいじってみましたが、上手くいきませんでした。COOL deploy時はOK。でも、さっき新しく一からやり直したらtaskアプリが動かなくなっちゃった・・・(;´Д`)。

| Bookmark:

2006-08-28 (Mon)

_ [Work] 1サーバ壊れ、1サーバ突如別サーバに移行

せっかく大学来たのに、なんか緊急物件がたくさん振ってきて捗らなかった。。サーバ移行はまだ終わってないー。

| Bookmark:

_ [Java][Seasar] S2Axis用アノテーションリーダ

合間でS2Axis2いじってました。DTOのgetterからリクエストパラメータ作るのが素敵なんですが、Amazon WEBサービスにはdev-tパラメータという - が入ってる必須パラメータがあり、さらにJavaでは - 付きの変数・関数が定義できないので、PARAMETERアノテーションがあると素敵だと思います。とりあえず時間が無いので、キャッシュも置かずにRESTConnectorにS2DaoのAnnotationReaderFactoryの仕組みを入れてみました。

で、それはそれで上手くいったものの、Axis2のRESTCallで実行すると、targetURLの最後に何か謎な「?」が勝手に付いちゃうみたいです。Amazonさんそれが気に入らないみたいでエラーメッセージ返してきます。

ここでもとりあえず動かしたかったので、Amazon WEBサービスで使わないダミーパラメータを最後に付けたら結果はちゃんと返ってきました。

S2Axis2、WEBサービスクライアント作るの楽々になって良いですね。

| Bookmark:

2006-08-29 (Tue)

_ [Java][Seasar] s2container r:1227

HOT/COOL deploy のCreatorが変更され、HOTでもCOOLでも1個定義すれば良くなってより簡単になりましたー。

ただ、middlePackageNameが無くなったのでちょっと困っちゃうかもしれません。S2DaoとS2DirectoryのDaoクラスのnameSuffixは両方とも*Daoなので、middlePackageNameがないと判別が付かないかもしれないです_| ̄|○。

CreatorにmiddlePackageNameが復活するか、ignoreClassPatternの設定かなんかがあると嬉しいかもしれません(試してない、、)。

っと、見ていただいてることを良いことに好き勝手書いてすいません(;´ー`)。

| Bookmark:

_ [雑記] au携帯

一昨日買い換えたら、昨日新機種発表されました(汗。

| Bookmark:

_ [Java][Seasar] Axis2のRESTSenderでGETメソッドに余計な?マーク

昨日のtargetURLの最後に何か謎な「?」が勝手に付いちゃうのは、Axis2側の問題でした。OMElementで提供されるパラメータが無い時、RESTSenderでGETメソッドの最後に「?」を付与しないように修正すればOKのようです。

もしくは、S2AxisのRESTConnectorでパラメータをtargetURLに文字列で付与しないで、OMElementを組み立ててcall.sendReceive(OMElement)で実行すれば一応問題はないですが、どっちにしろAxis2が良くないですね。Axis2のtrunkではOMElementを渡さないと実行できなくなっているようなので、次のが出たらS2Axisも修正が必要そうです。

| Bookmark:

_ [Java][Seasar] S2Axis2 で Amazon WEBサービス

アノテーションリーダの追加要望を出すついでに、Amazon WEBサービスのサンプルを添付しておきました。興味のある方どうぞ。ただ、実用するアプリに組み込む場合は、アソシエイトIDとデベロッパー・トークン(特にこっち)は変えましょう。

あと、インタフェースにビーン定義しといて、XMLの結果をそのビーンの対応するフィールドごとにセットして返してくれたら素敵だなっとか思ったり。複数結果ある場合はList型で。階層的になってるXMLをどうするって話もあるけどね。。WEBサービスもDaoっぽくなって楽々!

| Bookmark:

_ [Java][大学] Rational Systems Developer

Rational Systems Developer V6.01はEclipse 3.0にRationalの機能を持ったPluginを300個以上入れた製品でした。実体がPluginなので好きなPluginを足せるので良いよねっと。それにしてもものすごいPluginの数だ。これを使いこなせる人はいるのだろうか。

| Bookmark:
本日のツッコミ(全4件) [ツッコミを入れる]

_ せとあずさ [昨日買い換えました。orz]

_ jfut [さらにきわどいタイミングですね(;´ー`)。]

_ ひが [最新の仕様では、クラス名の末尾(Implは除く)から、最初の大文字までをsuffixとみなし、そのsuffixの先頭..]

_ jfut [> suffixの先頭を小文字に変えたのが、個別パッケージ名 なるほどです。NamingConventionImpl..]


2006-08-30 (Wed)

_ [Work] おろおろ

帰宅してお風呂入ってさっぱりして、PC着けたら電話で依頼がいっぱいキター。やっぱ鯖屋だな僕。さくっと作ろっと。

想像以上に激しー。これが事前予告なしに突然夜中に電話一本でくるところが凄いなぁ。それに素直に対応する僕も僕だけど(゜∀゜)アヒャ。

追記: DB dump中〜

追記: 2時間程でおわたー、もう1個別件どうしようかな

| Bookmark:

| Return to page top | Vicuna CMS - WordPress Theme - Vicuna Ninja Style for tDiary |