ふたつの川うるおう日記
2006-08-01 (Tue)
_ [Seasar][Admin][Server] リポジトリブラウザとRSSフィード
導入しました。
- リポジトリブラウザ
- RSSフィード
RSSフィードはテスト時、拡張子を.rssにしてたのを.xmlに変更しました。また、SVNコミット時、RSSフィードを生成し終わるのを待たずに応答が返るようにしました。
_ [Seasar][Admin][Server] メールキュー
MLに所属している方で、メールが配送できない方がちらほらいて、50通程度キューに溜まり続けています。同時配送キューの上限(デフォルト20)に引っ掛かり始めて通常配送に影響が出始めているので、上限を上げました。
根本的には、該当者のメールアドレスを排除するなりしないとダメです。見てると同じ人(ホスト)が何通も引っ掛かってたりする。。
_ [Server][Admin] DNSの設定をより良く
いわゆるOpen DNSと呼ばれてDDoS攻撃の踏み台にされてしまう状態にあったのがあったので直しました。ついでにDNS Reportというサービスで可能な限りPASSとなるようにSOAレコードなど僕の管理下にある全DNSサーバを調整しました。Open DNSについては、JPRSからもアナウンスが出ていました。また、警察庁から検証レポートまで出てました。
だけど、今年より前に書かれた記事などではOpen DNSを許すようになっている記事が結構あるので、結構な数のDNSサーバがまずい設定になってる気がします。というわけで、気になったらDNS Reportでチェックして、まずかったら設定を見直しましょう。
2006-08-04 (Fri)
_ [大学] メアド変更されるの?
えー、メアド勝手に変わるの??論文にメアド書いてる先生方とか超困っちゃうけど良いのかな?
苦情よろしく・・・。 [追記] でも、@サブドメイン が @ドメイン に変わるなら別に変わっても良いかもな。@新サブドメインに変わるなら微妙だけど。。
学部のメアド使えば学部の名前が変わらない限り変わらないから、この機会にそっち使ってもらっても良いかもな。でも、先生も移籍することがあるわけで、どちらかというと個人に付随する論文に書くメアドなどは、機関に依存しないで使う用途の一生涯使える独自ドメインのものが必要なのかもね。同様に学生でも社会人でも誰でも。
でも、僕も自分用に 名前@苗字ドメイン のメアド持ってるものの、一生涯スパムに悩まされることを考えてしまい、結局滅多に使ってないという。。。
2006-08-05 (Sat)
_ [Seasar] SeasarWiki整理
SeasarWikiが長らく放置されまくりなので、ちょっと整理しました。ついでにCSSも勝手ながらいじりました。そして、コミッタが出来ることをまとめようと、「コミッタはじめの一歩」というのを書くつもりが、なぜか「Seasarファウンデーションのコミッタになろう」とかいうのを書いちゃいました(;´ー`)。
こういうのも必要だから結果オーライということで・・・。おかしなとこは勝手に修正しちゃってください。
というわけで出かけてこよ。
2006-08-06 (Sun)
2006-08-09 (Wed)
_ [Seasar][Admin] グローバルネットワークは救われた・・・はずなんだけど。。様子
0:38にアラートが飛んできてる・・・。実はapp01の方がたまたまトラブった・・・なんてことはないかも。。
明日一日様子見で。
ただ、今の構成でグローバルネットワークがダメだと、プロバイダ(基本的にありあえない)とかしかもう思い浮かばなかったり。。
うーん、なんなんだろぅ。
激しくおねむなので、MLに溜まってるのは明日の午前中に処理します(;´ー`)。
[11:46] その後、一晩アラート飛んできませんでした。やっぱし大丈夫っぽいかも?もっと様子見。
[01:26] 一日経過してアラート飛んできませんでした。ということで大丈夫そうですヽ(´ー`)ノ。
2006-08-10 (Thu)
_ [Seasar] Mavenサイト化
横田さんが作られたテンプレートをちょっと編集してみました。
まだ、英語を /en/ に生成したいのと、リダイレクトするindex.html.en index.html.ja を生成するのと、英語日本語切り替えリンクがちゃんと出来てないです。ちょっとmaven-site-pluginのドキュメントを見た感じすべて /ロケール/ 以下に生成するのは出来ないのかもしれない。
2006-08-11 (Fri)
_ [大学] 困った
今日がIPSJ PROの締め切り日でした。でも、担当教授と連絡取れてません(;´ー`)。
というか、締め切り忘れてた僕がだめだめなんだけど_| ̄|○。。
[追記] 一応出した。発表会は過去のみると、とっても場違いな気もするけど、論文誌みるとそうでもないので、どうなるかな。
_ [Seasar] Mevenサイトカスタム
Mevenサイトカスタムを更新してみました。/en/ にするのに、maven-antrun-plugin使っちゃいました。
メニューは、site.xmlとsite_ja.xmlに定義を追加することでMavenが生成する以外のページも自由に作れるようです。
新規プロジェクト開設用には、そのあとプロジェクトがMavenサイトを使うか判らないということと非Javaプロジェクトもあり、あまり初期状態でコミットしないようにしたいので、追加メニューなし + 画像類も最低限にしたいです。
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してただけでした_| ̄|○。というわけで解決しました。
2006-08-20 (Sun)
_ [Java][Seasar] S2DirectoryのHotDeploy対応
S2Directoryは基本的に初期時の処理は、S2DaoのResultSetを処理する部分をNamingEnumerationを処理するようにしているだけなので、S2Daoのやり方と同じようにしておきました。ValueTypesもValueTypeFactoryを経由するようにしたものの、S2Directoryの場合、データ取得後もValueTypes使って処理するところがあるので、ちょっと微妙かもしれない。とりあえずtrunkにコミットしておきました。
_ [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) ...
なんとなくエラーが言いたいことは感じる・・・。
_ [Java][Seasar] S2StrutsQualified 0.7 beta 1
s2-struts-1.3.0-beta-2-SNAPSHOT.jar用。これでさっきのJoSQLの問題以外は移植してHotDeployで動いた(*゜ー゜)。
今回からDefaultActionPathNamingRuleを継承してパスをちょこっと変えるだけで良くなりました。とっても楽です>kanagashiさん。
HotDeployだと動かしながらサクサク編集できて良いですね〜。JoSQLが動かないかいろいろ試すのが楽。結局まだ動いてないけど(w。
というわけで、お出かけ。
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持たせても良いのかも
- コンポーネント名を必ず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側でどうにかすべきものなのかな??
_ [Java][Seasar] S2StrutsQualified 0.7 beta 1 + COOL deploy
見事にCOOL deploy時に動かないわけだが(;´Д`)。試してなかった。。
_ [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時のみエラーが出るみたいです。
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の修正も不要です。ひがさん修正ありがとうございました。
_ [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インスタンスが異なるのが原因のようです。
_ [Java][Seasar] いろいろと
ここのところ自分好みのURIでS2StrutsとHOT deployを動かそうと右往左往していろいろコード見てるわけですがどれも勉強になります。今更ながらやっとほんのちょっぴりSeasar2コンテナの仕組みが判ってきた気がしてたり。。。というか僕にプログラム書くのが向いてない疑惑が以前より・・・。そんなわけで問題があっても小手先の回避先で右往左往し続けてる(;´ー`)ダメダメ。
19歳ぐらいからサーバ漬けで小手先に慣れすぎたかなー。
_ [Java][Seasar] COOL deploy時のサブアプリケーションのコンポーネント名はちっともまずくない
ちっともまずくありませんでしたー。お騒がせしました。
_ [Java][Ashikunep] Ikushipeわくわく
Seasar2対応のコードが入ったようです。S2Strutsに慣れ親しんでるところで何ですが、リリースされたら移行でしょうか(;´ー`)。コミットログにいろいろ書かれてるのでわくわくしながら見てたりしますw。
_ [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を使って何かするライブラリを使う際は同様の注意が必要そうです。
_ ひが [最新版では、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個↓に書きましたー。
_ [Java][Seasar] S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない が解決しました
ひがさんのアドバイスに従い、Interceptorの登録をコンポーネントに定義しないで、Creatorに任せれば期待通り動作しました。
上手く動作しない理由は、コメントに書かれている通り明示的にapp_aop.diconなどで定義してしまうと、コンポーネントの登録は非HOT deployのクラスローダで登録されてしまい、実行時にHOT deployのクラスローダで探そうとしてしまい見つからないようです。
というわけで、下手に明示的な定義はしないでHOT/COOLそれぞれのCreatorに全部丸ごとお任せしてしまえば幸せになれます。
これで僕が抱えていた問題はすべて解決しました!ひがさんいろいろとありがとうございましたm(_ _)m。
_ [Java][Seasar] HOT deploy時のFAQ
SeasarWikiのFAQ/S2Containerに3つ追加しておきました。
誤りや将来不要になった場合は気づいた方、修正よろしくお願いしますm(_ _)m。
_ [Java][Ashikunep] Ikushipe 0.4.0リリース
リリースされましたー。今週末にいろいろ試してみようヽ(´ー`)ノ。
2006-08-25 (Fri)
2006-08-28 (Mon)
_ [Java][Seasar] S2Axis用アノテーションリーダ
合間でS2Axis2いじってました。DTOのgetterからリクエストパラメータ作るのが素敵なんですが、Amazon WEBサービスにはdev-tパラメータという - が入ってる必須パラメータがあり、さらにJavaでは - 付きの変数・関数が定義できないので、PARAMETERアノテーションがあると素敵だと思います。とりあえず時間が無いので、キャッシュも置かずにRESTConnectorにS2DaoのAnnotationReaderFactoryの仕組みを入れてみました。
で、それはそれで上手くいったものの、Axis2のRESTCallで実行すると、targetURLの最後に何か謎な「?」が勝手に付いちゃうみたいです。Amazonさんそれが気に入らないみたいでエラーメッセージ返してきます。
ここでもとりあえず動かしたかったので、Amazon WEBサービスで使わないダミーパラメータを最後に付けたら結果はちゃんと返ってきました。
S2Axis2、WEBサービスクライアント作るの楽々になって良いですね。
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の設定かなんかがあると嬉しいかもしれません(試してない、、)。
っと、見ていただいてることを良いことに好き勝手書いてすいません(;´ー`)。
_ [Java][Seasar] Axis2のRESTSenderでGETメソッドに余計な?マーク
昨日のtargetURLの最後に何か謎な「?」が勝手に付いちゃうのは、Axis2側の問題でした。OMElementで提供されるパラメータが無い時、RESTSenderでGETメソッドの最後に「?」を付与しないように修正すればOKのようです。
もしくは、S2AxisのRESTConnectorでパラメータをtargetURLに文字列で付与しないで、OMElementを組み立ててcall.sendReceive(OMElement)で実行すれば一応問題はないですが、どっちにしろAxis2が良くないですね。Axis2のtrunkではOMElementを渡さないと実行できなくなっているようなので、次のが出たらS2Axisも修正が必要そうです。
_ [Java][Seasar] S2Axis2 で Amazon WEBサービス
アノテーションリーダの追加要望を出すついでに、Amazon WEBサービスのサンプルを添付しておきました。興味のある方どうぞ。ただ、実用するアプリに組み込む場合は、アソシエイトIDとデベロッパー・トークン(特にこっち)は変えましょう。
あと、インタフェースにビーン定義しといて、XMLの結果をそのビーンの対応するフィールドごとにセットして返してくれたら素敵だなっとか思ったり。複数結果ある場合はList型で。階層的になってるXMLをどうするって話もあるけどね。。WEBサービスもDaoっぽくなって楽々!
_ [Java][大学] Rational Systems Developer
Rational Systems Developer V6.01はEclipse 3.0にRationalの機能を持ったPluginを300個以上入れた製品でした。実体がPluginなので好きなPluginを足せるので良いよねっと。それにしてもものすごいPluginの数だ。これを使いこなせる人はいるのだろうか。




_ 通りすがりのカルビ [突然の告知だけど,日本語わかんない系の教授たちは知ってるのかね?]
_ jfut [どうなんでしょうね、来週どうなってるのか聞いてみます。実はあのメールは書き間違えで、認証時のユーザIDが変わるだけで..]