トップページ⇒php
868コメント367KB

WebObjects nsDictionary.valueForKey("5スレ");

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/02/04 12:21ID:vwrTw9m5
NeXTからAppleComputerに引き継がれたオブジェクト指向
Webアプリ開発環境「WebObjects」について語るスレです。

http://www.apple.co.jp/webobjects/
http://www.apple.com/webobjects/

1スレ目:http://pc.2ch.net/test/read.cgi/php/989562708
2スレ目:http://pc.2ch.net/test/read.cgi/php/1013695600
3スレ目:http://pc.2ch.net/test/read.cgi/php/1024066714
4スレ目:http://pc2.2ch.net/test/read.cgi/php/1033912737

■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・プ社の話題はウザすぎるので全て専用クソスレでおながいします。

・さやかタン (´Д`;)ハァハァ
0002nobodyさん03/02/04 13:04ID:mfJE00kX
NSって大文字にしてほしかった
0003nobodyさん03/02/04 15:19ID:???
1〜3、HTML化済み
0004nobodyさん03/02/06 00:04ID:???
WebObjects 5.1でカスタムのサブコンポーネントから親のコンポーネント
に値を渡すにはどうしたらいいですか?
子の変数を親で処理したいんですが・・・
0005nobodyさん03/02/06 00:29ID:???
言葉の意味がわからん。
ウインドウの親子関係をいっている?Javaクラスの親子関係?
> カスタムのサブコンポーネントから親のコンポーネント
もっと具体的にやりたいことの記述を求む.
0006nobodyさん03/02/06 04:26ID:???
>>4
子コンポーネントでDynamicElement(WOTextFieldとか)に張り付けてる変数を
親コンポーネントで参照したいだけだったら、親コンポーネントのwodに
バインディング(*1)を追加するだけでよいかと思う。

例えば、子コンポーネントProfileEditComponentにWOTextFieldにバインドされた
telephoneという変数があって、そのTextFieldに入力された値を親のコンポーネント
MyProfileEditPageで参照したければ、

 親コンポーネント.wod:

 MyPorfile: ProfileEditComponent {
  telephone = myTelephone; // (*1) ProfileEditComponentのtelephoneをMyProfileEditPageのmyTelephoneにバインド
 }

 親コンポーネント.java:

  public String myTelephone; // MyProfileEditPageのインスタンス変数
 
  publicWOActionResults commitAction() {
  NSLog.debug.appendln("myTelephone = " + myTelephone); // myTelephone
  return null;
  }

アクションメソッドが呼ばれた時にはmyTelephoneに値が入っているのでそれを
参照することが出来る。

もうちょっと複雑なパターンだと、これでは不十分で、setValueForBinding()なんかを
使わないとダメかも知れません。例えば、子コンポーネントのアクションメソッド
で値を生成してからperformParentAction()で親コンポーネントに処理を移している場合
なんかは多分そうなります。
0007nobodyさん03/02/06 11:18ID:K/KxV3En
質問です。

だれかWin版のWO5.2でJikesでコンパイルする方法知りませんか?

C:\WinNT\System32にJikes.exeをコピーして、Jikesそのものは使えるように
なったみたいですが、コンパイラの一覧にJikesが出てきません。

また、Makefileのなかの「WINDOWS_JAVA_COMPILER」をいじってみましたが、
「Jikes.plistがないよー」とおこられました。(あたりまえか)

どのへんをいじればいいでしょうか?
0008703/02/06 11:29ID:K/KxV3En
Webをググッて見たら、tech-artsのMLにWin版のセットアップ方法が
出てました。(w

逝ってきます・・・・・。

(なんかうまくいって無さげだけど、多分大丈夫でしょう)
0009nobodyさん03/02/06 11:36ID:p+nEzdpl
>>5
わかりにくくてごめんなさい。
やりたいことは >>6 で書いてあるようなことでした。

>>6
ありがとうございます。これって、APIエディターで登録してWOビルダーで
バインドしてってやりかたですよね、昨日やったときはうまくできなかったような
気がしたんですけどさっきやってみたら子コンポーネントのフィールドの値を
親で処理できました。
ただ、アクションメソッドは親のものを使ってるんで
ご指摘の、子コンポーネントのアクションメソッドから親コンポーネントに
処理を移すというやり方は、これからもうちょっと勉強してみます。
0010703/02/06 15:21ID:K/KxV3En
7です。

やっぱ駄目でした。(w
まず、やったことから・・・

1)アポーのtech-infoの情報をもとにJikesSpec.plistとJikes.batを所定の場所に
  おこうとしたら、なんと、既にリンク先にファイルがない。

2)仕方ないので、MacOSX10.2から「Jikes.plist」をかっぱらってきて、適当
  に編集(Win版のJavacSpec.plistを見ながら、Executables,OperatingSystem,
  Arcitectureのパラメータを合わせた)Jikes.batはあきらめ。

3)Jikes.exeを%JDK%\binに移動。

4)JikesSpec.plistをC:AppleDeveloperMakefilesResourcesにコピー

5)ProjectBuilderを再起動。これで「Java Compiler」にJikesが出てくる
  とおもいきや、出てきません(泣。

6)しょうがないんで、とりあえずコンパイルの時間だけは知りたかったので
  MakefileのWINDOWS_JAVA_COMPILERの値をJikes.exeに変更。

7)ビルド実行。やっぱはえーェェ!!!!爆速じゃん!!!
  (VirtualPC上のWin2000で実行。コンパイルがいつ終わったか
  わからなかった。普通なら1プロジェクト30分はざら)

  ・・・・あ
  日本語が化けてる(w

てな感じです。
エンコードの部分がおかしいのは何となく分かるんですが、どの辺で指定すれば
いいのか皆目見当が付きません。
0011nobodyさん03/02/06 15:33ID:xlckppIQ
WebObjects 新規に始めようと思っとります。まずはイントラからだけど
将来は大規模サーバAP構築にも使えたらいいな。

WebObjects5.2 は運用環境として Win2k + IIS コネクタの環境で使うのは
安定してますか?
また、Windows Server 2003 RC2 + IIS6.0 で動かしてみた方いらっしゃいますか?
0012nobodyさん03/02/06 21:11ID:???
>>11
安定云々の前に、Windowsを鯖にしようとしていること自体が間違っていると思うのだが。政治的理由でWindowsしか使えないんだったら別だが。

で、本題のIISコネクタ環境の安定度は悪くない。ただし、IIS用アダプタを自前でコンパイル
する必要あるけど(あれ、バイナリもちゃんとあるようだけど。CGIアダプタはちょっとオススメできない。

Windows2003 RC2とIIS6.0の組み合わせはやったことない。つうかお前やってみて報告しる。
0013nobodyさん03/02/06 21:49ID:kXA9BnBi
>>12

11じゃないですけど、Windowsしかないっていうところはまだ沢山あります。
のこるソラリスはいまいち分からないし、Linuxは得体がしれないしって
いうところはいくつも見てる。こればっかりはどうしようもない。
(ちなみにMacOSXは論外ね。)

ただ、あながちWinも悪いと思わない。速度もまぁまぁだし、何もしらない
事務の人でもマニュアル作ればオペレーションぐらいはできる。

セキュリティホールだって不必要なサービスをとめて運用すればそれなりに
運用できます。FWたててポートしぼればなお安心。
(以外とやらないんだ、中小の鯖)

ただ、パッチ当てると動かなくなるツーのは勘弁して欲しいです。
(あと、気違いみたいな量のセキュリティ情報も)

>>11
Winの場合、他のOSとは違ったところに気をつけないといけないです。

ー続くー
00141303/02/06 21:58ID:kXA9BnBi
ー続きー

1)まず、ワトソン博士はとめて下さい。自動復帰が効かなくなります。
2)Monitorのスケジューリング機能で1日1回再起動するようにして下さい。
  (けっこうメモリー漏れるみたいです)
3)iisとWO鯖はできるだけ分けて下さい。
  (アプリによりますが、どちらもメモリーとCPU食います)

あと、このスレでも問題になったport1085占有問題って解決してない
ので(WOが使うPORT:1085を何かのアプリが押さえてしまう問題)
この辺も気をつけた方がいいかもしれません

・・・ってアドバイスになってない?
0015nobodyさん03/02/06 22:17ID:???
WebObjectsアプリの運用は、UNIX系OSがイイと思うのだが。
JDKが安定稼働するプラットフォームに限るな。漏れはSolaris、Linuxがおすすめ。
MacOS X Serverも論外とかいっちゃってるけど、使ってみればわかるよ。けっして悪くない。
0016ぷぷぷっ03/02/06 22:23ID:???
誰がやるのかのぉ。。。
ttp://jp.sun.com/developers/techdays/apple_track.html#t4
00171303/02/06 22:36ID:kXA9BnBi
>>15

自分個人としてはソラリスかMacOSXを推奨したいんですけど
(もち、自社のフォロー付き)、
やはり「Windowsがいい。簡単だもん。」っていわれてるとねぇ。

お客さまご指定じゃぁね。

まぁ、こちらは警告したんで責任は果たしましたけど。
(まさか、んな莫迦には売れませんとはいえないし)
0018nobodyさん03/02/07 00:41ID:???
11っす。

>>12-15 ありがとうございます。
やっぱ Windows はアレだよなぁ・・・ Solaris 使いたいんだけど、
「管理がわからん」とかいう理由で Win ご指定の納入先が結構多くて、
険しい路とは知っていてもあえて Windows での運用ノウハウは必要
なんですよねー。つーか Windows でやるならおとなしく .NET してろと
言いたいが。

Windows Server 2003 は RC2 を注文したので入れたらレポします。
00191703/02/07 15:29ID:Y4hH+BVZ
>>18

よろぴく〜。

そういえば、Win版をVPCで動かそうと四苦八苦していますが、(Jikesの件、
いまだわからず。とほほ)前スレでも問題になっていた”〜”入力不可の件は
WebObjectBuilderだけではなく、ProjectBuilderでもでちまうことが
分かりました。(入力してもエディター上に表示されない)

ちなみに、WOは5.2です。


ますますWin版を使う気なくしてきた。でも客先がなぁ・・・・。
0020nobodyさん03/02/08 16:57ID:ykF6rXPG
>>19
eclipse使え。
0021nobodyさん03/02/08 17:24ID:???
WebObjectsの中の人も大変ですね。
0022nobodyさん03/02/08 18:37ID:aflm/lKP
>>20

Eclipseだと、SubProjectを含んだビルドに失敗してしまいます。

ビルドだけProjectBuilderにまかせれば、という手も考えましたが、
EclipseとProjectBuilderをいっぺんに立ち上げると一気にマシンの
速度がぁ〜、てなわけで躊躇しています。

コード補完とか、すんごーく使いやすいんですがね。

WOのIDEがEclipseにならないかなぁ。
0023nobodyさん03/02/09 00:56ID:sqeM9sRq

Value for column '_rowid' is not unique.
というエラーが出て困っています。
原因がさっぱりわかりません!

何か心当たりのがあればお教えください。
00242303/02/09 01:11ID:sqeM9sRq
長くてすいません。よろしくお願いします。
Error: com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed: :
Next exception:SQL State:42000 -- error code: 0 --
msg: ERROR - Value for column '_rowid' is not unique.
SQL: INSERT INTO ReserveHistory(Notes, IntStatus, LockFlag, StrReserveTerminalID,
IntReservedItemType, LeaseScanDate, IntPenaltyCode, LeaseDate, IntReservedItem,
LastUpdateTime, Str_id_Name, StatusChangeDate, IntReservedVolume, LastUpdater, _rowid,
IntLeasePeriod, IntLectureLeaseFlag, ReserveScanDate, ReturnScanDate) VALUES
('saved from WebObject', 0, NULL, NULL, 1, NULL, NULL, 65923200, 101, 66412228.012,
'1000001', NULL, 1, NULL, 5932, 1, 0, NULL, NULL)

00252303/02/09 01:13ID:sqeM9sRq
Reason: EvaluateExpression failed: <com.webobjects.jdbcadaptor.OpenBasePlugIn$OpenBaseExpression:
"INSERT INTO ReserveHistory(Notes, IntStatus, LockFlag, StrReserveTerminalID, IntReservedItemType, LeaseScanDate,
IntPenaltyCode, LeaseDate, IntReservedItem, LastUpdateTime, Str_id_Name, StatusChangeDate,
IntReservedVolume, LastUpdater, _rowid, IntLeasePeriod, IntLectureLeaseFlag, ReserveScanDate,
ReturnScanDate) VALUES (?, ?, NULL, NULL, ?, NULL, NULL, ?, ?, ?, ?, NULL, ?, NULL, ?, ?, ?,
NULL, NULL)" withBindings: 1:"saved from WebObject"(notes), 2:0(intstatus), 3:1(intreserveditemtype),
4:2003-02-03 09:00:00(leasedate), 5:101(intreserveditem), 6:2003-02-09 00:50:28(lastupdatetime), 7:"1000001"
(strIdName), 8:1(intreservedvolume), 9:5932(rowid), 10:1(intleaseperiod), 11:0(intlectureleaseflag)>: Next exception:
SQL State:42000 -- error code: 0 -- msg: ERROR - Value for column '_rowid' is not unique. SQL: INSERT INTO ReserveHistory
(Notes, IntStatus, LockFlag, StrReserveTerminalID, IntReservedItemType, LeaseScanDate, IntPenaltyCode, LeaseDate,
IntReservedItem, LastUpdateTime, Str_id_Name, StatusChangeDate, IntReservedVolume, LastUpdater, _rowid, IntLeasePeriod, IntLectureLeaseFlag, ReserveScanDate, ReturnScanDate)
VALUES ('saved from WebObject', 0, NULL, NULL, 1, NULL, NULL, 65923200, 101, 66412228.012, '1000001', NULL, 1, NULL, 5932, 1, 0, NULL, NULL)
00262303/02/09 01:57ID:sqeM9sRq

これが動かないと家に帰れません。
もう1週間缶詰です。
どなたかお助け下さい。
0027nobodyさん03/02/09 03:58ID:HGNZuruT
>>23
OpenBaseもWOも知らんが、_rowidというフィールドに挿入しようとした
5932という値が既に存在するから、ユニーク制約に引っかかってinsert
できないということじゃないか?
00282303/02/09 05:00ID:sqeM9sRq
>>27
エラーの意味はわかるんです。
でも_rowidはOpenBaseが勝手に振る連番なはずなんですよ。
なんでWOがあんなSQLを吐くのやら・・・。
0029nobodyさん03/02/09 09:18ID:C2Bk6nhj
>>28
うーん、よくわかりません。こちらでも簡単なテーブルで
やってみましたが、再現しません。

EOModelのAttributeに_rowidがありませんか?
あったらこれを削除するか、非表示にして下さい。
(自動生成の場合には出てきませんが)
0030メリーアン03/02/09 10:06ID:WgfWLREu
>>23
とりあえず、使用しているRDBMSやWebObjectsのバージョンが判らないと、何とも言えないな…

EO_PK_TABLEというのがスキーマ内に生成されてないかな?それがあれば
主キーの生成はEOFがEO_PK_TABLEを使って生成していることになるから、
当該テーブルの主キー最大値と、EO_PK_TABLEのナカミをみて当該テーブルの
最大値が設定されているから、その値を比較して前者が後者を下回っていないか
どうかを確認する。なっていたらUPDATEするなりする、と。

EO_PK_TABLEが使われていない、つまりOracleのシーケンスオブジェクトや
PostgreSQLの_seq(シーケンステーブル)を使って主キーを生成している場合は、
EOModelor上で当該Entityを選択してGenerateSQLウィンドウを開き、
Drop PrimaryKey Support だけをチェックして実行後、もう一回
Create Primary Key Supportを実行し、シーケンスオブジェクトだけを再度生成する。

たぶん、当該テーブルに対し、WebObjectsからではなくて、SQLで直接テーブルを
Insertしたり、MS-accessなどでいじったりしたんで、シーケンスオブジェクト
(EO_PK_TABLE含む)が管理する値と違う値になっていた、というのが
原因じゃぁないかと。シーケンスオブジェクトの値そのものは、
SQLを叩いてユニークな値(主キー)を生成するだけだから、
テーブルとリンクしているようなイメージを持ってはいけない。
たぶん、シーケンスオブジェクトを再設定することで解決すると思います。
がんがれ。
00312903/02/09 11:19ID:C2Bk6nhj
>>30

エラーメッセージからDBはOpenBaseと判ります。(バージョンが
わからないけど)

WOやOSは判らないですね。これがあれば完璧なんですが。

この問題になっている「_rowid」という項目はOpenBaseが自己管理の
ために使用する項目なんで、そもそも外部アプリから操作する項目では
ありません。通常、テーブルからEOModelを自動生成すると「_rowid」を
ふくむOpenBase管理項目(?)はAttributeが生成されません。

よって、何らかの理由でEOModelに「_rowid」が設定されていると思われる
のですが、もし、自分で設定してPK代わりに使用しているのであれば
やめた方がいいです>>23

自動生成されたのであれば、以下の状況を報告して下さい。>>23
1)_rowidにプライマリーキーが設定されているか?
2)OpenBaseのバージョン
0032nobodyさん03/02/09 12:29ID:???
最初はOpenBaseでプロトタイプを作っていたが、PostgreSQLやOracleに展開する時、
EOModelorからそのままSQLGenerateすればプライマリキーは_rowidになりますね、、
>>23の結果待ちだす。
00333103/02/09 13:12ID:C2Bk6nhj
>>32

それってOpenBase側で別のプライマリーキーを設定して、その状態で
Switchすると「_rowid」がプライマリーキーになっちまうって
ことですか?
00343203/02/09 14:23ID:???
>>31
そうだす。_rowidをそのままモデルファイルに取り込んじゃっているということ。
単に作成側の問題です(自分が昔、そうだったんで……単にやりかた悪いだけでつ(;´Д`))
0035とりあえず恒例のもの貼っとくな03/02/09 19:23ID:???
【WebObjects関連会社偏差値ランキング in 2ch PART4】
70 アップルコンピュータ
~~~~~■神と人間の境界線■~~~~~~~~~~~~~~~~~~~~~~~~~
61 キャノン販売
60 NTT-ATテクノコミュニケーションズ
~~~~~■↑人に会社名を言って恥ずかしくないライン■~~~
55 サイバー・ラボ
54 ステラクラフト
50 オブジェクトビジョン
49 フレームワークスソフトウェア
48 千明社
47 テクニカルピット
46 メタテクノ
45 オフビートワークス
44 ステッド
43 ヘリオグラフ
42 アイザック
41 アーチシステムズ
40 アプロポー
~~~~~■↑業界内でのみ会社名を言えるライン■~~~~~~~~
39 ビー・ユー・ジー
38 エムアイ
37 イーリープ
36 ローラン
35 オブジェクトファクトリー
34 ペンギンシステム
33 アイ・ツゥ
32 エイビスシステムソリューション
31 シオン
30 プラネットコンピュータ
~~~~~■↑マカーが趣味でやってる零細企業■~~~~~
0036あぼーんNGNG
あぼーん
0037nobodyさん03/02/09 22:53ID:WgfWLREu
ふぅ、やっとバグがとれた………。
奮闘90分、生きた心地しなかったなぁ。仕様書以外のバグでない
システム的なバグの回避は長くなればなるほどストレスにつながる。
とくにコーディング量が必然的に多くなってしまうミドルウェアや言語というのは
この年齢にはちょっと応える。がむしゃらになって働いていた20代前半が懐かしい。
コーディング量が少ないWebObjectsを選択した時はこの手のストレスが多かったことは事実だ。
がしかし、大分慣れてきた今ではJSP&Servlet&EJBの方が苦痛である場合が多い。
特にコーディング量が多くなってしまうのは致し方ないのだが、情報量が乏しい部分だと
途端に右往左往してしまう。ソフトウェア開発産業が誕生して数十年経過するにもかかわらず
このような非生産的な事態を招いている現場にも嫌気がさす時がある。しかしWebObjectsの
WOBuilderやEOModelorを主軸とした開発環境はこうした問題を出来るだけ回避してくれる
(全て解決とは書けないが)ツールだと感じる。思うに、WebObjects開発環境は天才が
作ったもので、JSP&Servlet&EJBは秀才達が集まって作り上げたもののように感じる。

「大は小を兼ねる」。WebObjectsは大であるか小であるか。私は大であると言いたい。
00383703/02/09 23:23ID:???
信者的発言スマソ.何日も同じバグで悩むかなと予測していたのだが意外に速く終わったのでついつい書いてしもうた(;´Д`)
0039nobodyさん03/02/10 23:58ID:2czVZ9/U
XServe キターーーーーーーーー!!
0040nobodyさん03/02/11 00:06ID:???
EOって、検索系はやりやすいけど、一度に大量のレコードを更新したい
時とかはちょっと面倒な気がする。rawRowsForSQLしちゃうけど。

>>35
これ、いつもお馴染みだけど、今のキヤノン販売はWebSphere信者だぞ。
0041nobodyさん03/02/11 00:12ID:LHqjBdln
>>40

SQLも流せ、EO経由でもデータメンテができるのがWOのいいところ。
ただ、EO(正確には各種Context)がどのようにデータを抱え込んでいるか
を理解しないと、ASPよりはまるという罠。
0042nobodyさん03/02/11 00:17ID:LHqjBdln
>>39

XServeねぇ・・・。

MacOSXServerは評価しているけど、サポート体制がどうも。
新Mac板で語られていることが真実なら、あのうたい文句は
信じられない。

それともやり方を変えたのかな>アポー。

でも、少なくとも今の日本で30万未満のサーバーを出さないのは
商機を逸している。マーケッテイングを勉強し直したまえ。
0043nobodyさん03/02/11 00:33ID:???
>>40
EOAdaptorChannelにある
updateValuesInRowsDescribedByQualifierや
deleteRowDescribedByQualifier
を使えば大量の更新ができるんだが………

Xserve RAID、、あれはあれで、安い方なのかな?
0044nobodyさん03/02/11 00:39ID:???
>>43
安いんじゃないの?
あの容量でちゃんと二重化されていてファイバーチャネルだったら。
肝心のパフォーマンスと信頼性だけは未知数だが。
0045nobodyさん03/02/11 02:54ID:0fPQW4Db
>>35
こういう情報どこから手に入れられるの?
0046nobodyさん03/02/11 02:57ID:0fPQW4Db
>>14
1085番ポートの問題っていつ頃話題になったのでしょうか?
0047nobodyさん03/02/11 03:41ID:???
>>45
脳内デムパです。
0048nobodyさん03/02/11 06:04ID:LHqjBdln
>>46

前スレの444から。

0049あぼーんNGNG
あぼーん
0050nobodyさん03/02/11 14:48ID:???
>>35
最下位がプラネットなのは納得できるが、最上位はなんでアップルなんだ?
アポーはプラネット以下だよ
■ このスレッドは過去ログ倉庫に格納されています