トップページphp
1001コメント502KB

WebObjects 3インタンス目

■ このスレッドは過去ログ倉庫に格納されています
0001りお02/06/14 23:58ID:9v1vZuBx
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

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

0680nobodyさん02/09/04 02:49ID:???
>>679のつづき

> お願いだから嘘を書き込むのだけはやめてもらえませんか?

嘘だと誰が決めたの? ぼくちゃんひとりだけ?

> 裏でコッソリAcrobat起動なんていう腐り切った商売をしてる会社は

Acrobatをサーバ側で起動していたとして、それを個人的な好みでダメ技術と
判断するのは勝手だけど、当たり前の一般論みたいに書くのは我慢できないね。
それから私が噛み付いたのは、あくまでAPLの方がAcrobatより高級だ、みたいな
変な思想が論点なので、どこが駄目会社とかそういう話ではないです。

が、それを置いといても、P社は別に裏でコッソリじゃなくて、堂々と
Acrobat起動してるぞ。それを意図的に無視してここまでけなせるってのは、
何か別の利害関係を想像されてもおかしくないね。

> 駄目会社がWOの開発をしているだけでWOの価値が下がります。

独善。根拠無し。
同じ論法を使ってあげよう。

こんないい加減な議論をしているやつがWOスレに書いてるってだけで、
WOの価値なんかたかが知れてるな。

> 話題の会社にはWOから手を引くだけでなく資本主義市場から退場して
> いただきたいと思っています。そのほうが世の中のためです。

いよいよ個人的な恨みを書かずにはいられなくなったみたいね。
ま、スレ違いだし、さっさと帰って寝なさい。
0681nobodyさん02/09/04 02:50ID:???
あれ、>>677ってネタだったの?
スマソ。半分マジレスしてしまった。まあいいや。
0682nobodyさん02/09/04 03:41ID:???
工作員も夜遅くまで大変だな。
DQN会社は早いとこ退職してまっとうな仕事をしたらどうだ?
あっ、辞めたてもどこにも雇ってもらえないんだっけ?
まあ、従業員数人の超零細企業出身じゃどこの会社も敬遠するわな。

>クライアント数*Acrobatの料金とAdobe PDF Libraryのライセンス料と比べたら
>どちらが高いでしょう。顧客に対して安価にソリューション提供する場合に
>どちらが好ましい、または商売になると思う?
PDF Libraryが好ましい。なぜなら利用者がライセンス購入する必要がないから。
通常アプリに比べて操作性などあらゆる面で劣るWebアプリがもてはやされるのは
クライアントを管理する必要がないから。
これはWebシステムの基本中の基本。
クライアントごとにAcrobatのライセンスが必要ならWebアプリにする必要はないし、
Webしてはいけない。なぜならライセンス違反を誘発するからね。

>ただ1社おとしめるのが見てて気分悪い。
生憎こういうフザけた商売してる会社を1社しか知らなくね。
他にもあるならAcrobat起動してPDF加工してる会社名をあげてみろよ。

>P社は別に裏でコッソリじゃなくて、堂々とAcrobat起動してるぞ。
これ見てみ。
ttp://www.planetcomp.com
一言もそんなこと書いてねーよ。
それと今更話を戻して「Acrobat起動なんてやってない」ってのは勘弁してくれよ。

>何か別の利害関係を想像されてもおかしくないね。
勝手に想像しろや。
お前が何を想像しても痛くも痒くもねーからよ。
0683nobodyさん02/09/04 04:47ID:???
 
0684nobodyさん02/09/04 08:30ID:???
> 駄目会社がWOの開発をしているだけでWOの価値が下がります。

これって、あんまりじゃない?木を見て森を見ずの典型例。
暴走族がGTRのってるだけでGTRの価値が下がるといってるようなもんじゃん。
お願いだからこんなめちゃくちゃな理論展開するのはやめてください。
0685nobodyさん02/09/04 10:11ID:z+lQWYIA
漏れはサイバーラボの加藤社長がWO使ってるだけで、WOの価値は史上最高のものになってるんですが、何か?
0686nobodyさん02/09/04 11:41ID:???
WOで開発するイコール開発コストが安くてすむと勘違いしているバカクライアントが後を絶たないのだが、
だれかそれが違うことを論理的に説明してもらえないか。

0687nobodyさん02/09/04 11:48ID:mOs7rSld
WebObjectsは技術的には面白いと思うが、それ以上何を求めるのだろう・・・
0688nobodyさん02/09/04 12:31ID:???
>>686
ソフトウェア開発はいろんな意味で人身売買に等しいからな。値段の付け方なんて、どこもいい加減。
同じシステムをA社とB社とC社に見積もりだしても、使う道具違うし、人間も違うしで
何百マソも違うケースが多い。一番安いところに発注したらPerlで構築して
スパゲッティ状態で機能拡張しようと依頼したらさらに長い後期と莫大な見積もりがきた
という罠。漏れの会社のことだ...鬱志。
いま、別システムをWebLogicを使うというやつらに発注しようとしている。
漏れはJavaもWebObjectも知らぬフリしているので、どういうやりかたをするのか楽しみにしている。
見積もり値段は漏れの年収の5倍ぐらいだーよ。鬱志。
特に業務ルールの移り変わりが多い漏れの会社なんだがこういう柔軟な開発にWOは向いていると思いこんでいるのだが、やっぱ使うやつのスキルによるのか?>識者
068968802/09/04 12:34ID:???
どうでもいいがWebLogicのスレがこの板にたっていたが滑り台から転げ落ちる子供のように下の方に逝ってしまったな。
人気ねぇんだなぁ・・・・
0690nobodyさん02/09/04 12:39ID:???
>>689
2chで人気がないだけだ。煽りじゃないぞ。
逆にいうとWebLogic使ってる奴はここには書かないってことだろう。
2chの情報は貴重だが2chだけが世の中の全てじゃないからな。
俺は今JBoss使ってるよ。
069168802/09/04 13:35ID:???
>>690
たしかに、その通りだな。うむ。
0692nobodyさん02/09/04 17:31ID:z+lQWYIA
今更EOEditingContextのアーキテクチャに感動。。。なかなかないよ、このカラクリは。
0693ぷぷぷっ02/09/04 20:38ID:???
>>656
とりあえず、↓のように修正したんだが、動かん。>>647と同じエラーが発生した。
public develop submitdevelopmod() {
aarticle.willChange();
NSTimestamp myNSTimestamp = new NSTimestamp();
aarticle.takeValueForKey(myNSTimestamp,"upddt");
session().defaultEditingContext().saveChanges();
develop nextPage = (develop)pageWithName("develop");
return nextPage;
}
もうだめぽ。
0694りお ◆/OjWxByc 02/09/04 22:01ID:Nrg4ZZE1
>>693
rocked attribute をハズしてもダメか?
それと、DBはなんだ?ポスグレか?ポスグレの場合は型をdateでなくてtimestampにしたほうが良いかもyo。

>>もうだめぽ。

そんなことをいうな。ソフトウェアに限界はない。解決策はどっかにある。
0695ぷぷぷっ02/09/04 22:14ID:???
>>694
rocked attributeをはずすとwillChangeがなくても動くよ。
ただ、なんかはずさんほうがいいってなことが書いてあったから。。。
っーかカスタムEOとやらにすればこんな面倒なことしなくてよいのかい?
0696nobodyさん02/09/04 22:33ID:???
>>695
とりあえず結果オーライでいいのでは?
たしかテクノロジックアートのMLでTatsuyaKawanoたんがEOのロックについて
長々とスレを展開していたとおもうから検索してみれば?
0697nobodyさん02/09/05 02:07ID:???
>>684
>暴走族がGTRのってるだけでGTRの価値が下がるといってるようなもんじゃん。
この場合、GTRの価値は下がるのが正しい。
だから企業は好感度の高い人間に自分の会社の商品を使ってもらおうとするわけ。
漏れ達も知らず知らずのうちに好きなタレントが使ってる(たとえそれが
CMの中だけでも)商品を選んでているんだよ。

それ考えるとアポーは本当に商売下手だよね。どんな無茶苦茶な会社でも
開発パートナーとかいってとりあえずWebにのっけちゃうんだから。
逆に変な会社と一緒のイメージで見られるのを嫌ってアポーの
パートナーリストに名を連ねない会社も多いと思うよ。
それがイメージ戦略であり営業技術でもある。

このスレの住人は技術だけじゃなくこういうことも勉強すべき。
0698nobodyさん02/09/05 04:00ID:???
>>695
takeValueForKey()をtakeStoredValueForKey()に変えるとどうなりますか?
0699nobodyさん02/09/05 04:11ID:???
>>685
はげどう。
0700ぷぷぷっ02/09/05 07:40ID:???
>>698
だめぽ。
とりあえずrocked attributeをはずす方向でやってこ。。。
0701あおりちゃん02/09/05 07:58ID:???
粘着バカ、ごちゃごちゃうるせーんだよ。
恨み持ってんならそれなりのことしろよ。玉無し。
つまんねーんだよ、てめーの陰気な書き込み。
0702nobodyさん02/09/05 08:40ID:???
>>この場合、GTRの価値は下がるのが正しい。
開いた口がふさがらない。なんて滅茶苦茶な理論なんだろう...
>>699
私もはげどうです。加藤博士マンセー。
0703nobodyさん02/09/05 09:30ID:???
>>700
漏れもずっとまえににたような現象で悩んだが、結局錠前のアイコンを
はずして逃げました。特に大きな問題にはなってないです。
0704nobodyさん02/09/05 10:16ID:???
>>695
カスタムEO作ることに必要以上に不安になってませんか?
基本的にはEOModelerでJavaコードを生成するだけです。
すると、Article.javaが作られて、setUpddt()/upddt()が作られているので、

aarticle.setUpddt(new NSTimestamp());
session().defaultEditingContext().saveChanges();

するだけで基本的にはいけるはず。サブクラス化しているので、型名の
不整合が起こる箇所もあるかもしれないけど、それはEOGenericRecordから
Articleに書き換えるなりすればいいです。

# ところで、気になっているので書いてしまいますが、upddtって、Articleエンティティの
# 属性名(EOModelerでいうNameのカラム)ですよね。
# DBカラム名(EOModelerでいうColumnのカラム)ではないですよね。
# WebObjectsでは属性名のほうで認識するので、こちらをわかりやすい
# 名前(たとえばupdateDate)にしたほうがいいですよ。
# DBが訳わからん名前をつけていても、プログラム上は意味がわかる
# 名前で扱えるというのがWOの利点の一つでもありますし、、。

一人で使うシステムならlock属性をはずしてシステムを組んでも
問題ないでしょうけど、マルチユーザ環境だと問題ありだと思います。
ちなみに悲観的なロックを使うなら、EOEditingContextのlockObject()を
使用して、確実にレコードロックを確保してから更新処理に臨むという
方法もあります。
0705nobodyさん02/09/05 10:22ID:???
>>697
お前も広告代理店の罠を勉強すべき。
0706nobodyさん02/09/05 10:41ID:???
>>704
ロックをはずした場合のマルチユーザ環境で、
どういった面々で問題あるでしょうか。競合が検出されずに
他のユーザが変更した場合、仮に、そのシステムが
他のユーザの更新を許可するというものであれば、OKなわけですよね?
(珍しいかもしれませんが)

知りたいのは、他のユーザーの更新を許可しない場合の動作です。
ecでlockObject()をするのはよいのですけど、EOをロックしている最中に
クライアントがブラウザを閉じてしまったりセッションが終了して
しまったりした場合、ロックを解放するにはSessionがterminateするまで
待たなければいけない。それまでは他ユーザの更新はできない。
と踏んでいますがいかがでしょうか。もしそうなら、ちょっとシステムとして
は不便ですよね…。

また、競合が検出された場合のアプリの挙動です。クライアントに
「他のユーザが同じデータを編集しています」と表示させるシステムは
Webアプリではあまりお目にかかりません。もしくは、更新するまで
待っているような状態になるのでしょうか?先の例外が出てしまうからには
競合が起きているわけですよね。回避するか、例外を出しておくのが吉なのか。

諸賢のアドバイスが欲しいです。
0707nobodyさん02/09/05 11:12ID:???
>>706
もちろん、それでもOKな局面があることは認めます。
でも、単純に考えて、ある属性の更新ロジックが
a = a + 1;
みたいなものだったら、aは所詮キャッシュ値なので、
二人で同期を取らずに更新したら、正しい値が反映されないのは、
明白だと思います。

aが1
ユーザXがaを取得(a=1)
ユーザYがaを取得(a=1)
ユーザYがaを更新(a=2)
ユーザXがaを更新(a=2)
aは2(a=3を期待しているけど)

この状態を防ぐために、WOでは楽観的ロック(lockアトリビュート)と
悲観的ロック(lockObject())が用意されているわけです、

lockObject()を使ったら更新して直ちにロック解除が基本です。
同一呼び出しメソッド内で一連の処理を終わらせたほうがよいです。
トランザクションは、できるだけ短期にするというのは、
DBプログラミングの基本だと思います。

システムを使用するユーザの想定人数や使用頻度、クリティカル度に
よって、方針は変わってくると思います。
「他のユーザが同じデータを編集しています」と表示させるシステムも
最近仕事で作りました。(WOではなく、WebLogicでしたけど、、。)
0708nobodyさん02/09/05 11:43ID:???
>>706
EOModelerの錠前アイコンがやるのは、lockというよりはフェッチした
値の保存です。更新をかけるときに、この保存値をwhere節等で指定して、
他から変更が入っていないことを確かめます。
錠前アイコンを外すと、その属性がwhere節にあらわれなくなります。

ついでにEditingContextのlockObject(..)は、ECの使用許可取得、という
意味合いのもので、こちらもいわゆるロックとは少し機能が違います。

競合が起きたらどうするか?
前者の場合は、EOGeneralAdaptorException#userInfo() にアクセスすると
スナップショットと現在地が取得出来るので、そこから復元します。
後者の場合は、ケースバイケースかな。
ご指摘の通り、webアプリの性質上、ガチガチにロックをかけることは
あまりふさわしくないので、こういったメカニズムになっているのだと想像します。
0709nobodyさん02/09/05 13:43ID:???
ロックとは違うといわれるとかえって混乱を助長するだけなのではないかと思います。
たしかに、機構とは違って技法の分類ですが、
「更新をかけるときに、この保存値をwhere節等で指定して、他から変更が入って
いないことを確かめます。」
というのは、一般的に楽観的ロックとされている方法です。
(Googleすればいくらでも説明が出てきますし、一般的なDBプログラミング
技法ですね。)

ところで、ECの使用許可取得、ならlock()のほうではないんでしょうか。
lockObject()はEOの排他、レコードレベルの排他を実現する方法だと
認識しています。(OracleのFOR UPDATE句相当、今はどうしてるか知らないけど)
これを悲観的ロックと説明しています。
WO 4.xのマニュアルでも、lockObject()をもってロックの説明を
していますよ。
0710nobodyさん02/09/05 14:41ID:SiKaIPs1
Primary Keyの鍵マークどうすべきですか?
0711ぷぷぷっ02/09/05 20:09ID:???
私なりの結論がでたので報告じゃ。
EOModelerで日付型の項目はrocked attributeをはずす。
カスタムeoは必要なし。
コーディングはwillChangeは必要なし。これでうまくいく。
saveChangeするときに日付型のものがwhere句にあるとどうやらエラーになるようだ。
以上。
ところで、、、、カスタムeoにするとどんなウマミがあるんかいのぉーーーー。
0712nobodyさん02/09/06 00:13ID:???
>>682
本筋とは関係ないけどホムペ見たら2ヶ月も更新がないんだな。
やる気がないのか、それとも粘着攻撃で逝っちまったか・・・。
0713nobodyさん02/09/06 02:21ID:???
>>709
確かにlockObject()はselect for updateを発行してるけど、それだけで
悲観的ロックといっていいものかというと疑問なんですよ。
レコードにオンデマンドでロックがかっても、同じecの別レコードに対する
revert()やsaveChanges()をとびこえてロック状態を維持できないから。
結局これも、別のobjectLock()で例外を出させて止めるしかないような。

私はもし聞かれたらWOにはペシミスティックロックは無い、とこたえてます。
Wroxの本もそういう結論。
4.xのマニュアルにはペシミスティックと書いてあるのかー。5.1までの
どこかで仕様がかわったんでしょうかねえ。
0714nobodyさん02/09/06 09:13ID:???
少なくとも、4.xまではRDBMSごとにアダプタが用意されていた関係で
Oracleアダプタの場合は、FOR UPDATEを付加するような実装に
なっていたはずです。
「今はどうか知らないけど」と書いたのは、JDBCドライバ経由に変わって
このあたりどうしているんだろうという意味合いがあったのでした。
推測ですが、EOFレベルで、GlobalIDを使ってロックを制御している
んではと踏んでいます。

以下は、悲観的ロックに対する僕の考えですが、
本当にロック状態を維持できないとすれば、それは単にバグのような
気がしますが、異なるセッションからの更新でそれがおこるとなると、
WOのトランザクションの使い方の問題かもしれないですね。
EC単位でトランザクションを管理していて、ユーザ間で使いまわして
いると考えると、素直にECの設計を想像するとそうなる可能性は
高そうです。いわば、ECがトランザクションの管理単位というわけで、
同一ECにsaveChange()/revert()を送れば、ロックが解除されて
当然という気がします。
この場合は、ユーザセッションごとにECを用意することで、
うまく動くようになるのではないでしょうか。

4.xのマニュアルでは、
ペシミスティックロック
オプティミスティックロック
オンデマンドロック
をWOがサポートしていることになっています。
0715nobodyさん02/09/06 10:36ID:???
質問。
オーム社本230ページからモデルの継承についての説明があるのですが、
いまいち、ピンときません。

どのような時にこのテクを使うべきでしょうか。教えてぷりーず。
0716nobodyさん02/09/06 11:15ID:???
>>712
もし潰れてればここも静かになるかな。
0717nobodyさん02/09/06 16:42ID:???
682は元プラ社員?
0718nobodyさん02/09/06 16:46ID:???
そんなことはどうでもいいから、>>715の質問にだれか答えてやってくれ。
漏れも知りたいZoooo。
0719nobodyさん02/09/06 20:31ID:lrwQgpVO
>>715
私は以下のように使い分けています
つたない説明ですいません。

(1)単一テーブルマッピング。
同一のテーブルにあるけど、キー値によって検査方法が異なるとき使用
してました。(<<ってそのままやんけ)
いちいちif文で分岐させなくてすむし。

(2)水平マッピング
異なるテーブルにあるデータをひとつのテーブルに見せるときに使用しました。
大量データ時のパフォーマンスアップのため使用することが結構あります。
(テーブルの分け方は、Application上でラウンドロビンのメソッドを組んで
分割してました)

(3)垂直マッピング
テーブルの構成をJavaの継承のように使う方法。
エンティティの構造がJavaそっくりになるので、ER図がUMLのようになります。
これに関しては、最初のころは結構使っていました。
ただし、大量データ時はあんまり使いません。
プロト開発とか、テーブル構成もろくに決まっていないときによく使います。
072071902/09/06 21:27ID:lrwQgpVO
といってもよくわからないと思いますので、うまくいった例を1つだけ。

ある会社で備品管理システムで垂直マッピングを使用した例です。

そこでは、全備品を1つのシステムで管理しようとしたのですが、
備品といっても机とか、棚とか買いっぱなしのものや、パソコンとか
プリンターとか保守先やIPアドレス、OS(複数あるかもしれない)とか
多岐にわたっていました。(中には社有車まで・・・)

そこで、親には備品として最低限必要な項目(備品番号、購入日、価格、など)
などを設定しておき、子供にはプリンターだったら消耗品番号、パソコン
だったらIPアドレス、OSとかを配置して、(IPアドレス、OSはさらにリレーション
をはっている)、備品一覧を表示すると全備品が表示されて、IPアドレスで検索
したいときはパソコンの検索画面から表示する、なんてアプリをつくりました。

この時はどのようなカテゴリーで管理したいか、設計段階で絞れなかったので、
垂直マッピングですぐに異なるカテゴリーを追加できるようにしておきました。

ただし、この手を使うと設計に自由度が加わる反面、まったく新しいカテゴリーの
ものを管理しようとするとサブクラスの追加になるので、アプリのメンテナンスが
発生してしまうのが難点です。ただし、この場合、プロト運用の段階で大体の
カテゴリーは絞れましたので、正式リリース後はサブクラスの追加はしていません。

まぁ、この場合、件数があまりないのが最初らわかっていたので、プロトのものの
延長をそのまま納品してしまいました。結果として発注から約1ヶ月で納品にまでこぎつけ
ましたので、(仕様書込み)まぁまぁ成功した内に入っています。
0721nobodyさん02/09/06 22:01ID:???
この記事結構面白かったYO WOについても触れている。

想像以上−アップルのJava (Sun Developer News)
http://sdc.sun.co.jp/news/200209/danwa01.html
072271502/09/06 22:24ID:???
>>719
ありがとうございます"_m(_'_)m_"。じっくり読んでから、また返事します。
0723nobodyさん02/09/07 02:03ID:???
>>717
>682は元プラ社員?
それよりもプラの話題が出ると必死に話をそらそうとする奴が怪しい。
俺の予想だと>>718は元プラ社員だな。
0724nobodyさん02/09/07 02:12ID:???
>>723以外は全員元プラ社員
0725nobodyさん02/09/07 03:41ID:???
>>714
> EC単位でトランザクションを管理していて、ユーザ間で使いまわして
> いると考えると、素直にECの設計を想像するとそうなる可能性は
> 高そうです。いわば、ECがトランザクションの管理単位というわけで、
> 同一ECにsaveChange()/revert()を送れば、ロックが解除されて
> 当然という気がします。
> この場合は、ユーザセッションごとにECを用意することで、
> うまく動くようになるのではないでしょうか。

そうなると話は簡単なのですが、実際にはロック状態はECごとではなく、
EOObjectStoreCoodinatorごとに管理されています。
だから局所的なECを作っても対応できない場合があるのだ。

不特定多数が利用する可能性がありかつ終了状態がはっきりしない
webアプリでは、ユーザセッションをトランザクションの単位にするのは
危険という判断なのだろうと理解しています。
0726nobodyさん02/09/07 04:11ID:???
プ裸ネット必死だな(W
0727nobodyさん02/09/07 07:55ID:???
>>725
そうですね。ありがとうございます。
マニュアルには、以下のようにありました。

1.通常ユーザタスクと管理タスクの2つのタイプのタスクを実行するアプリケーション
2.自分自身のログイン情報でログインしなければならないWebObjectsアプリケーション
3.ユーザが同じデータベースで複数の同時トランザクションを開いておく必要のあるアプリケーション

をあげて、複数のEOObjectStoreCoordinatorが必要になるとしています。
まさにユーザという単位を必要とする場合だと思います。
その場合、以下のように行うとあります。

EOObjectStoreCoordinator coordinator = new EOObjectStoreCoordinator();
EOEditingContext ec = new EOEditingContext(coordinator);

これなら対応できるのではとおもいますが、逆に悲観的ロックしか使えなさそうですね。
0728nobodyさん02/09/07 10:24ID:AmzO1EBz
助けて下さい。
広文社「WebObjectsワークブック」に習って勉強中の初心者です。
日本語表示を行わせるため、以下をApplication.javaに書き加えました。
しかし、データベースから返ってくる文字が文字が化けてしまいます。
他に変更加える必要があるのでしょうか?
WebObjects5.14、OpenBaseのバージョンは7.07です。

public void takeValueFromRequest(WORequest aRequest, WOContext aContext) {
aRequest.setDefaultFormValueEncoding("SJIS");
aRequest.setFormValueEncodingDetectionEnabled(true);
super.takeValuesFromRequest(aRequest, aContext);
}

public void appendToResponse(WOResponse aResponse, WOContext aContext) {
aResponse.setContentEncoding("SJIS");
super.appendToResponse(aResponse, aContext);
aResponse.setHeader("text/html; charset=SHIFT-JIS","content-type");
}
0729nobodyさん02/09/07 12:05ID:4PcbQPce
10.2でWO5.1を使いたいのですが、既に10.2付属のDev toolsをインストール済みの状態です。
この状態でWO5.1をインストールするとソフトウェアアップデートでアップデートできません。
10.1のインストールからやりなおしたほうが良いでしょうか?
0730nobodyさん02/09/07 16:24ID:???
もういちどDevToolをインストールしなおすべし。
0731nobodyさん02/09/07 16:49ID:i1Ug0+qR
>>728

見当はずれかもしれませんが、

>aResponse.setHeader("text/html; charset=SHIFT-JIS","content-type");

aResponse.setHeader("text/html; charset=SHIFT_JIS","content-type");

にしてみてください。

あと、OpenBase側の文字コードはどうなっていますか?
0732nobodyさん02/09/07 19:06ID:AmzO1EBz
728です。
SHIFT_JIS試しましたがうまくいきませんでした。
OpenBaseの文字コードはEUCになっています。これもShiftJISで試しました
がうまくいきませんでした。
よく分からないのですが、JDBCドライバあたりが引っかかっているのか
な、と考え試行錯誤中。何か情報ありましたら引き続きお願いします。
0733nobodyさん02/09/07 19:28ID:nbVLhQw8
>>732
だめでしたか

OpenBaseはつかっていないので分からないのですが・・・
OpenBaseの文字コードをShiftjis Japaneseにしてみたらどうでしょう

ただし、OpenBase7.07についてはODBC関連で問題が別のMLで報告されて
いますのでそれが遠因かもしれません。

あと試用目的であれば、OpenBaseの文字コードを変えずに、WO側の
文字コードを帰るのも手です。この場合、エンコーダーの指定は"SJIS"から
"EUC_JP"に変更します。
0734nobodyさん02/09/07 19:41ID:AmzO1EBz
ども728です。
だめです。日本語とおりません。泣きそうです。
OpenBase7.06にしてもだめ、OpenBaseの文字コード変えても駄目、
WOの文字コードも一通り試しましたが駄目でした。WOBuilderのデ
フォルトエンコードなんてのも触ってみましたが駄目。
WOBuilderで普通に入力した文字ちゃんと表示されるんです、OpenBase
から返ってくる文字が化けてしまうんです。OpenBaseのデータビューア
で見ると日本語の部分だけ文字化けしています。

0735nobodyさん02/09/07 20:42ID:i1Ug0+qR
>>734
文字化けするのって、いままでのWOアプリで入力したデータですか?
それでしたら再度新しいWOアプリで登録したデータで確認してください。

WOのエンコードととOpenBaseの文字コードがずれていると破壊されたデータしか
登録されていませんので。

できれば、プロジェクトごとどこかにアップロードしてもらえばこちらでテスト
できるのですが。
0736nobodyさん02/09/07 21:05ID:???
WOMessage.setDefaultEncoding("EUC_JP");
をApplication.javaのコンストラクタに入れてみてはどうだ?
0737nobodyさん02/09/07 22:25ID:AmzO1EBz
アップロードの用意をしていた所、>>736さんのレスを読んで試してみた所
うまくいきました。ありがとうございました。
ただし、EUC_JPでは無理でSJISで通りました。

助けて下さってどうもありがとうございました。

ところで、なぜこういうことになったのか?というのは難しい話なのでしょうか?
0738りお ◆/OjWxByc 02/09/07 22:43ID:???
>>736
はおれっちのカキコだ。名前入れ忘れスマソ。
とりあえず、WOMessageのリファレンスを読んで味噌。
おれっちは詳しいことはワカランが、さやかタンがセミナで
この一行を入れていたんでいつも真似ている(;´Д`)ハァハァ
0739nobodyさん02/09/07 22:50ID:???
>>737
もしかしたらDirectActionからpageWithNameでページ生成して返しているのかな?
それだったらApplicationのappendToResponse()は通らないので、そのせいだったのかも。
0740二つ目のお気に入りとして02/09/08 08:24ID:JOWA0TAZ


究極の総合リンク集

http://home9.highway.ne.jp/cym10262/

0741>>72802/09/08 08:26ID:sGKQxizr
DirectAction.javaは以下のようになっています。
自分では触っていません。

import com.webobjects.foundation.*;
import com.webobjects.appserver.*;
import com.webobjects.eocontrol.*;

public class DirectAction extends WODirectAction {

public DirectAction(WORequest aRequest) {
super(aRequest);
}

public WOActionResults defaultAction() {
return pageWithName("Main");
}

}
074272902/09/08 15:53ID:???
>>730
Dev tools入れ直したのですがうまくいかなかったので、
結局10.1入れ直してアップデートしました。
今までひたすらROMってましたけど、今日から実際にWO触っていきます!
駄スレですいません。
0743nobodyさん02/09/08 18:38ID:???
>>1
http://ime.nu/www5d.biglobe.ne.jp/~iiaccess/memory/4113.swf
0744nobodyさん02/09/10 13:54ID:???
うちのiMAC(333Mhz)には何故かしらdeploymentが入りません。
pkg一個ずつ入れていくと、他は入るんだけどdeploymentだけはHDDが選択されないのです。
現在悪の根源を探索中。
0745nobodyさん02/09/10 15:04ID:???
そもそもdeploymentを入れる必要はあるのですか?
Developerが入っていれば不要なのでは。
074674402/09/10 18:00ID:???
>>745
Developerだけでも良かったんですか?(無知
OSXServer10.1.5を突っ込んだのでライセンス的に付属のdeploymentを使いたかったのですが
その後iMacのハードをG3&G4ポリタンクに移したり、スレーブでマウントしたり
うちの機材で考えうる限りを尽くしてみたのですがDeployのインストール先に選択できません。
ちなみに身の回りに転がってた6GBのくあんたむとか20GBのふじつーとかにもXServer入れて
deployのインストールを試みたのですがダメでした。
同じG4のIBM30GBには入っているのに...
あれやこれやのテストの結果、deployのインストールにはハードディスク的に制約がある
って結論に達してしまったのですが...なんか納得いかない。
ちなみに今度はおんなじ333iMacに純正6GB(まくすたー)の組み合わせでジャガー
をインスコ中。deployが入れられるか検証してみます。
---
うーん、業務でも無いのにアホなことに一に使ってしまった。
0747nobodyさん02/09/10 19:45ID:???
WebObjectsって普通にSQL1回で済みそうな処理に
細かなSQLをいくつも投げるじゃないですか。
これってDBに余計な負荷をかけてしまわないんですか?
これはフォールティングによって解決されるのでしょうか。
もちろんEOの恩恵を受けたいので直接SQLを投げたくないです。
0748nobodyさん02/09/10 20:02ID:???
>>746
開発機に無理にdeploy入れる必要はないです。
運用機材に入ってれば十分。
たまたまそれらが一致してる場合は両方入れるけど。
0749nobodyさん02/09/10 20:44ID:???
>>747
確かに、余計な負荷をかけているよね。他ツールだとSQL一発で
いけるものを…というのに、いくつもSelect文だしてると、ちょっと
びっくりする。でもEOの恩恵から抜け出したくないので
プログラミングでうまくすり抜けようと精進する日々です(w
フォールティングもうまつ使えば便利なモノだしね。アプリの画面設計とか
EOの動きに併せて変えるときのいいわけになるし(笑)
(「ここをこうすると、DBに負荷がかかっちゃうので、こうすれば」っていうかんじ)
0750nobodyさん02/09/10 22:09ID:1spD99Hc
WOで、日本語(Shift-JIS)で、Encode指定が、Shift-JISだと、
〜が?になっちゃう件、SJISなら良いというのと、
Java 1.4.1Betaならうごくらしいけど、試している人居ます?
1.4.1RCでたからつかっちゃうかなー。いつでるんだろ。<1.4.1
で、SJISとか、Shift-JISとかどーちがうんでしょうか?
0751nobodyさん02/09/10 22:19ID:???
>>750
↓ ここを見りー
http://www.ingrid.org/java/i18n/encoding/shift_jis.html
075274402/09/10 22:21ID:???
>>748
開発機に無理にdeploy入れる必要はないです。

なんとなくの実験です。
時代遅れのマシンにDNSやらせてたんですが、WebObjectsのさーばーなんかも出来ちゃうんだろうか?
と、ふと思い立ってしまったわけです。
まぁApple的に、「頼むから運用はしっかりした環境でやってくれたまえ、マカ諸君!!」ということなでしょう。
0753nobodyさん02/09/10 22:22ID:???
>>751
ありがとーありがとう、ほんとーにありがとう。
素早い返答感謝感激っす。
0754nobodyさん02/09/10 23:49ID:???
よくWebブラウザで外のHPを閲覧しているときに、たまにエンコードが
おかしくて文字化けすることがありますね?
AppleのTechInfo.woaもそうなるときあります。
私のところもそうなんです。
社内のLAN上では、どのPCで、どのブラウザでも正常なのですが、
専用線で接続された(128K)九州(当方神奈川)の事業所からだと、
文字化けが激しいのです。
上記の〜が?になる場合もよくあります。
そのせいか、どうかは知りませんが、
Error:com.webobjects.eoaccess.EOGeneralAdaptorException
Reason:updateValuesInRowDescribedByQualifier
のエラーもよくでるそうです。(日付型なし、全てロックON、カスタムObject)
こっちでは問題ないのに、九州方面は不安定です。
どーしたらよいでしょう。
DB Server:Win2K Server+MS-SQL 2K
WO Server:Linux7.3+J2SDK1.4.0 文字コードはEUC
開発:Win2K Pro. J2SDK1.4.0
です。
0755nobodyさん02/09/11 00:39ID:???
>>754
串が何か悪さしていないか?事業所別に串が違うときは管理者とよく相談しる。
通過、WebObjectsはJDK1.4での動作保証してんのか?対象外プラットフォーム
(しかもOSも)での特定しにくい不具合を出されても誰も面倒みきれんぞ。
しかし、その例外はEOModelorのロックをはずせば少しは幸せになれるかモナー。
それと〜が、?になるのは文字のエンコードの問題だろう。shift_jisにしてみたらよろしくって?

0756nobodyさん02/09/11 09:58ID:???
>>755

> 串が何か悪さしていないか?事業所別に串が違うときは管理者とよく相談しる。

串ははいっていませんのです。
管理者は無知なのでなんの期待も出来ません。
他の静的Webページはなんの問題も無く閲覧できています。

> 通過、WebObjectsはJDK1.4での動作保証してんのか?対象外プラットフォーム

それを言われるといたいですけど、JDK1.4にしたのは、>>39の文書で導入したからです。

> それと〜が、?になるのは文字のエンコードの問題だろう。shift_jisにしてみたらよろしくって?

これも、サーバーが同じ場所にある、こちらでおこなうとなんでもないのですけど。
サイトが違うとおかしいなんてことありますかね?
0757nobodyさん02/09/11 10:07ID:48pKj0wm
>>756
ちゃんと表示されるサイトと、
化けてしまうサイトの同じURLからhttpdヘッダを抜いて違いを
見比べてみたらどうか? なにかエンコーディングの指定をする
呪文が抜けているんじゃないか?

Application.javaのtakeValueFromRequestとappendToResponseをちょっと
コピペしてみろ。あとApplication.javaのコンストラクタにWOMessages.setDefaultEncodingはいってるか?
0758nobodyさん02/09/11 11:14ID:???
>>757
Application.java の内容ですが、>>728 さんの、
aResponse.setHeader("text/html; charset=SHIFT-JIS","content-type");
の文がないだけです。
これはいれた方が良いのですね?
あと、コンストラクタに、WOMessages.setDefaultEncoding("SJIS");
も、はいってなかったので入れてみます。
なにぶん、九州の外れまでは行かせてくれない+向こうに知っている人いない
+リモート接続環境もないので、待つしかないのですが・・・
0759nobodyさん02/09/11 12:12ID:???
>>758
>>これはいれた方が良いのですね?

いれたほうがいい。httpdプロトコルの本でも読めばかわる。

0760nobodyさん02/09/11 13:22ID:???
SHIFT-JIS
Shift_JIS
どっちでもいいの?
Shift_JISが正式じゃなかったけ?
0761nobodyさん02/09/11 16:02ID:???
Shift_JISが正式
076274402/09/11 16:44ID:???
誰か他にもOSX ServerにDEPLOY入れてる人がいたら聞きたいのだけど
OSXServer10.1.3をインストール→付属のWebObjects(Deployment)をインストール→
System/Library/WebObjects/JavaApplications/wotaskd.woaをダブルクリック...なぜかエラーで終了
試しにDeveloperTOOLSを入れてみる
やはりwotaskd.woaは起動できない
よくわからんがDEVELOPMENTをインストールしてみる
wotaskd.woaもJavaMonitor.woaも起動できた
---
この謎はうちだけなのか?
0763754です02/09/11 18:54ID:MT74//ru
おかげで直りましたようです。
ですが、まだ問題が出てきました。
HTMLに、「〜」を書き込むと、WOが「?」を表示してしまうので、
SJISにすると表示できるのですが、フォームに、「〜」を入れて、
DBへ書き込むとDB内が「?」が格納されてしまいます。
「SJIS」を「Windows-31J」にすると、DBには、「〜」を格納してくれますが、
WOのHTMLの「〜」が「?」に表示されてしまいます。
一体どーすれば。

Application.java−コンストラクタ
WOMessage.setDefaultEncoding("Windows-31J");

public void takeValuesFromRequest(WORequest aRequest,WOContext aContext){
 aRequest.setFormValueEncodingDetectionEnabled(true);
 aRequest.setDefaultFormValueEncoding("Windows-31J");
 super.takeValuesFromRequest(aRequest,aContext);
}

public void appendToResponse(WOResponse aResponse,WOContext aContext){
 aResponse.setContentEncoding("Windows-31J");
 super.appendToResponse(aResponse,aContext);
 aResponse.setHeader("text/html; charset=Shift_JIS","content-type");
}
0764nobodyさん02/09/11 22:22ID:???
>>763
前のレスにもあったけど、httpdが何を話しているか、トレースして
そいつをウプしてみそ。
0765nobodyさん02/09/11 22:52ID:???
>>762
それたぶん仕様。
076676502/09/11 22:54ID:???
それだけでは何なのでほそく。
ダブルクリックじゃなくて、rootになってコマンドラインからやると
起動出来る。当然deployの設定はdevelop入ってなくても出来る。
WOALauncherで起動出来るのはあくまで開発者用のオマケを思われ。
0767nobodyさん02/09/12 13:03ID:???
>>764
それをやる前に簡単なInsert/Viewのアプリ作って試したら、
PostgreSQLはOKで、MS-SQL Serverの問題のようです。。。。
076874402/09/12 22:52ID:???
>>766
マカならではの失態でした。
ありがとうございました。
0769りお02/09/14 09:43ID:J4OqYpnJ
             / )
            / /
           / /
           / /    .'  ;,,,.・;: 。',:
          ./ /_∧     -つ  ;.:.  ∧_∧
         / / ゚Д゚)シネ!/__ノ: ,,:・,‘(     ) ←>>マカ
         |    へ/ /  ⌒> _/ /
         |    レ'  /、二つ| y'⌒  ⌒i
         |     /.    |  /  ノ |
         /   /      , ー'  /´ヾ_ノ
         /  /      / ,  ノ
        /  /      / / /
       / ノ      / / ,'
     _/ /     /  /|  |
    ノ /      !、_/ /   〉
   ⊂ -'            |_/
0770nobodyさん02/09/14 10:15ID:???
>>769
りおタンはキャップつきでカキコしてることを知らないんですか?
0771nobodyさん02/09/15 01:11ID:???
またあるのね。
http://www.apple.co.jp/hotnews/2002/0917wohandson/index.html

キャラビットのじまん話はもういいでつ
0772nobodyさん02/09/15 10:12ID:???
>>771
それでも毎回毎回、すぐに満席になっちゃうんだから、人気があるというか
導入したい人は多いという罠。

キャラビットの自慢話というよりは、倉橋センセぐらいになると沢山の導入事例が
あるんでしょうけど、ああいったパブリックな場で紹介してもイイよ、と
許諾してくれた中で紹介しやすかったのがキャラビットだけだったのでは。

ちょっと担いじゃったけど。工作員ぽいかな?(w
0773nobodyさん02/09/15 16:10ID:???
キャラビットがどうかはともかく(漏れも一回聞いたことあるが)
この手の入門セミナは毎週やってくれるくらいじゃないと
裾野が広がらないでしょう。
0774nobodyさん02/09/15 16:35ID:???
>>773
そーだよね、講師も一人だけじゃなくて、複数人用意して同じ内容を
繰り返せばいいだけの話だし。けど、漏れは某大手企業の新入社員
向けのセミナを月〜金曜日の午前と午後2回、3時間ずつやったことが
あるけど、最後は声がガラガラで体力ヘトヘトだったよ。
一人で喋るには限界があるよな、つうか、無料セミナだから
カネも満足に出ないだろうに。ギャラ少なければ好きな話を一つぐらい
やらせてもらってもいいかもな(w
0775サンカシャー02/09/15 16:40ID:???
>>773
セミナにはここでウワサになってるプ社のタバタ氏がいたよ。
途中でマックの操作につまづいた人とかに教えていた。
0776nobodyさん02/09/15 17:41ID:???
>>773
でも、あんまり開催しまくって、国内ユーザーが増えすぎてしまうと、
アップルジャパンでのサポートが回らなくなる罠。
あそこは、サポート人員がほとんどいないらしいからなー。
0777nobodyさん02/09/15 21:50ID:???
>>776
というか、サポートなくても、ヘルプファイルとOmniGroupの過去ログで
ほとんどまかなえてしまうから別になくても大丈夫という罠。

でも企業としてちゃんとしたサポート部隊欲しいよなぁ。
0778nobodyさん02/09/15 23:41ID:???
>でも企業としてちゃんとしたサポート部隊欲しいよなぁ。

ビジネスで導入するには、これが鍵なんだよ。
サポート体制もまともに無いような製品、稟議とおらねぇよ。
0779nobodyさん02/09/16 01:49ID:???
>>776
そうなったらそれこそプ社とか倉橋センセにサポート外注すればいいじゃん。
今よりは回りそうな気がする。

>>778
禿同。ついでにこれは技術の連中が実際にそのサポートを利用するかどうか
とは別の話。
0780nobodyさん02/09/16 02:26ID:???
>>779
Kセンセはわかるけどプ社に何を期待するの?
Acrobat起動技術(藁)?
■ このスレッドは過去ログ倉庫に格納されています