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

WebObjects nsArray.objectAtIndex(4);

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/10/06 22:58ID:9XLt1Ljo

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

■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・プ社の話題はウザすぎるので全て専用クソスレでおながいします。
・さやかタン (´Д`;)ハァハァ
0514nobodyさん02/11/27 01:23ID:???
次のエラーの原因、回避方法をご存じの方はおしえてちょ
EOをインサートしてsaveChanges()しようとしたら、こんなエラーがでまふ

Object value 'N' for column 1 is not an instance of String.
(Nは数字、トライの回数ごとに1増えていきまふ)

D2Wで新規登録しようとしても同様のエラーが発生しまふ

OSX10.2.2、WebObjects5.1.4
DB:PostgreSQL 7.2.2
なんぞヒントでもあればうれしいんでふが
0515nobodyさん02/11/27 09:14ID:lwZJz2sx
入力機器から流れてくるデータをWebObjectsを使って集計&Web公開したいのですが
可能でしょうか? 可能でしたらだいたいどうすればいいか道筋だけでもお教えください。
入力機器と制御用PCはシリアルで繋がっています。データは不定期に流れてきます。

入力機器=(シリアル)=制御用PC〜(LAN)〜WebObjects稼動しているサーバ

よろしくお願いします。
0516bloom02/11/27 09:38ID:eyPm55ZU

http://www.agemasukudasai.com/bloom/
0517nobodyさん02/11/27 10:34ID:???
>>515
(1)入力機器から流れてくるデータをDBに登録できる仕組みをつくる。
------
(2)DBに登録したデータをどのように処理(集計)するか仕様を決める.
(3)仕様にしたがって、Web公開するWOアプリを開発する.

(1)は、WO以外で開発するんじゃないのか?普通?
よくわからんが。
0518nobodyさん02/11/27 13:21ID:???
WO5.2だったら、WebService対応してるんで、呼び出しアプリでWebServiceの
インタフェイスでたたけばいいんちゃうか?
0519nobodyさん02/11/27 20:27ID:???
WO4.Xの時のNSJavaMaxHeapSizeは、WO5.Xではドコで設定しますか?
0520nobodyさん02/11/27 21:14ID:???
ka ko log yo meeeeeeeeeeeeeeeeeeeeeee!!

0521nobodyさん02/11/28 00:57ID:???
>>513
祖国を何の根拠もなく誹謗中傷している=事実上の宣戦布告している人へ。
ttp://www2s.biglobe.ne.jp/~nippon/jogbd_h10_2/jog055.html
みてください。このスレもこの板では一番盛り上がっているスレだから
ワナ張られていてもフシギじゃないですよ。
政治犯収容所で50年くらしてみてはどうでしょうか。

お見舞いにWebObjects5.2の朝鮮版をもっていきますよ(ワラ


 批判すると逮捕だってよ
 電波ってコエ〜
0522nobodyさん02/11/28 01:07ID:???
>>521
なんか、すごいあたまわるそうな発言ですね...
>>519
javaMonitorの各ApplicationのConfigのArgumentの部分に
直接Javaのオプション書くことができますよ。おためしあれ。

0523nobodyさん02/11/28 09:35ID:???
>>522
レスありがとうございます。
Argumentに書いてもWOStatsページの「MemoryUsage」に反映されないんです。Why?
0524nobodyさん02/11/28 11:25ID:???
煽った上にちゃんと質問に答えている>>522はエライ!
0525nobodyさん02/11/28 12:39ID:+GekLruA
WebServiceをつかって簡単なアプリケーションを組んでみました。

クライアント(Java)からJavaBeanを送ってWebObjectsからそのまま
返すものを作ってみたのですが、日本語が恒例の"????"になってしまいます。
ほかの文字はきちんととおります。
(シリアライザはBeanSerializer)

TCPMonで確認しましたが、WebObjectsに渡るとこをまではきちんと日本語
なのですが、(WOの中でもきちんと日本語)SOAPメッセージになったところ
で化けます。

どなたか、対応方法がおわかりの方はいらっしゃいますか?

ちなみにバージョンは書かなくてもわかると思いますが5.2デス。
(さらにいうとマカー)
052643202/11/28 13:33ID:???
未だにわかりません。442、443さんの会話も私へのヒントだと思うのですが…。

問題のコード
public WOComponent hogePageAction() {
HogePage nextPage = (HogePage)pageWithName("HogePage");
nextPage.setHogeHoge((String)this.request().formValueForKey("hoge"));
return pageWithName("HogePage");
}

りおさんのヒントレス>>437
>>>com.webobjects.eocontrol.EOEnterpriseObject は java.lang.String に適用できません。
>nextPage.setHogeHoge() の、hogeHogeという変数がEOEnterpriseObject型か、
>このメソッドはEOEnterpriseObject型を引数にすることからその例外が出ているだけだ。

hogeをほかの型にする方法がいまいち分かりません。引数にする型はString型ですよね?
いろいろ見てみて
EOEnterpriseObjectクラスのeoDescription()メソッドを使うとか試してみましたがどれも駄目でした。
toString()みたいなメソッドがあるのでしょうか?
0527りお ◆AU/OjWxByc 02/11/28 14:08ID:???
>>525
ファイルのエンコーディングとコンパイラのエンコーディングに差異はないか。
あとxml関連のエンコーディングももいっかいちぇっくいれてみな。
>>526
よぉわからんから、どっかにプロジェクト一式ウプしてくれ。だめ?
>>523
どういうオプション入れた?テクノロジックアートのMLの過去ログ検索してみたか?
OmniGroupのMLにも過去ログにゃたくさんでてるぞ。
0528nobodyさん02/11/28 14:38ID:???
>>527
-NSJavaMaxHeapSize 10000000といれました。
また、Terminalからも
default write myAppName NSJavaMaxHeapSize 10000000
いれたのですが、反映されていないようです。
WO5.1で変更されたのかなと思いまして。
0529りお ◆AU/OjWxByc 02/11/28 14:55ID:???
>>528
それじゃだめぽ。
↑レスにもかいたけどWO5からそこらへんのオプションはJVM依存になっちょる。
んだから、-Xms128M -Xmx512M てな感じでやってみな。
つうか、過去ログにあるからよく読んでおけ。めんどくせぇとか言ったら
さやかタンにかわっておしおきよ!(古ネタ
053052502/11/28 15:18ID:2FMgR018
>>527
だめですね。
コンパイル時のエンコーディングいじってみましたがだめですね。
(ファイルは当然のことながらUTF-8)
埒があかないので、カスタムシリアライザつくってトレースしてみましたが、
シリアライザの中ではきちんと日本語のままです。
どうも、context.serialize(QName,attlibute,Object)のあとで化けている
みたいです。

あと、シリアライザ使わない単純文字列でもだめでした。

どうすりゃいいんでしょう。

server.wsddになんかつっこむんですかね?(このへんはデフォルトのまま)
0531ken02/11/28 15:19ID:8Bt+wsiX
>>432
formValueForKey("hoge") --> stringFormValueForKey("hoge")
0532nobodyさん02/11/28 17:16ID:???
>>529
ありがとうございました。
うまくいきました。
053343202/11/28 19:54ID:???
>>527
あげました。
http://0080.virtualave.net/SampleA.sit
パスはwokidです。
やりたいことはオーム社本のp.382あたりにあるようなことでaIDをキーにして
DetailPageに詳細情報を表示できるようにしたいのです。
Mainページはタイトルのリスト
DetaiPageはTitleとNameの表示
という感じです。
すみませんがよろしくお願いします。

>>531
レスありがとうございました。
やってみましたができませんでした。
私の説明不足だったかも…。
053453002/11/28 23:04ID:???
どうもだめです。日本語がとおりましぇん。もう半泣き状態です。

んでもって、tech-artsのMLにたれぱんだ先生がまたハンズオンセミナー
をやるらしいんだけど、WebServiceについてもふれるらしいんです。

開催日は12/3(だったかな?)

当方事情があってその日はいけないので、もし逝く人がいたら
フツーにつくったWebServiceの日本語の使い方、(または注意点)
を聞いておいてくださいまし。

ここまでくると漏れが
なにか基本的なことができていないか、WOが全く日本語つかえないかのどちらか
しか思えないんですが・・・
053553402/11/28 23:08ID:???
誤)
んでもって、tech-artsのMLにたれぱんだ先生がまたハンズオンセミナー
をやるらしいんだけど、WebServiceについてもふれるらしいんです。

正)
んでもって、tech-artsのMLにたれぱんだ先生が、またハンズオンセミナー
をやるって書いてきたんだけど、WebServiceについてもふれるらしいんです。

日本語までおかしくなってきた・・・。
0536ken02/11/28 23:42ID:jIKu6+4q
>>432
勘違いをしてました。プロジェクトをダウンロードしてみせていただきました。
Mainクラスのawake()でsession().defaultEditingContext()を使っていますが
せっかくDAを使うのですからsessionを使うのは避けた方がいいです。
EOEditingContext ec = new EOEditingContext();に修正して下さい。
それで本題のDAを介しての情報のやりとりですが、プライマリーキーでやり取りしては
どうでしょうか。
具体的には
Mainクラス
public Double aID() {
NSDictionary primaryKey = EOUtilities.primaryKeyForObject(movie.editingContext(), movie);
return (Double)primaryKey.valueForKey("aID");
}
を追加。そしてMainのハイパーリンクにadd bindingしkey=?aID, value=aIDとして下さい。

DirectActionクラス
public WOComponent detailPageAction() {
WOComponent nextPage = pageWithName("DetailPage");
Number movieID = request().numericFormValueForKey("aID", new NSNumberFormatter());
EOEditingContext ec = new EOEditingContext();
EOEnterpriseObject movie = EOUtilities.objectWithPrimaryKeyValue(ec, "Movie", movieID);
nextPage.takeValueForKey(movie, "detailInfo");
return nextPage;
}
として下さい。
0537ken02/11/28 23:51ID:jIKu6+4q
>>432
追加です。DirectActionクラスで
import com.webobjects.eoaccess.*;
を追加して下さい。
0538nobodyさん02/11/29 02:10ID:???
>>534
私もうまくいかないです。後者に一票て感じだ。
053943202/11/29 05:43ID:???
>>536
ありがとうございます、ビルドできました。
>そしてMainのハイパーリンクにadd bindingしkey=?aID, value=aIDとして下さい。
というところはvalue=aIDをmovie.aIDにするとバッチリでした。
ずっと気づかなくてreturn (Double)primaryKey.valueForKey("aID");が怪しいと思ったりして
右往左往してました(恥)
EOではlonglong型のaIDをDoubleにする理由等、まだ解らない事だらけですが
今夜からじっくりと参考にさせていただきたいと思います。
UPしたサンプルも更新しておきましたので、オーム社本をお持ちの方々は
よかったら参考にして下さい。

kenさん、りおさん、ヒントをくれたみなさん、時間を割いてフォローしてくれて
ありがとうございました。本当に嬉しかったし助かりました。
なるべく自分でやって行けるようにしたいと思いますが、また迷ったら導いてくださいませ。
054053502/11/29 12:33ID:TGWTFcOc
>>538
おぉ・・・同志!!

で、ぜんぜん話が変わるかもしれませんが、ググッてみたらWebLogicでも同様
な現象が特定環境で発生するらしいですね。

URLは失念したけど、それによると起動引数かなんかに指定をすることで
回避できるらしいです。

以上、参考まで。
0541nobodyさん02/11/30 02:12ID:???
倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!
倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!
倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!
倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!倒産!
   ||
   ||
 ∧||∧
( / ⌒ヽ
 | |   |
 ∪ / ノ
  | ||   WOなんてやめときゃよかった・・・。
  ∪∪    おとなしくインチキPDFやってりゃ楽できたのに。
0542nobodyさん02/11/30 13:22ID:???
昨日から始めた超初心者です。
WO5.1をWindows2000Proにインストールしたのですが、
ProjectBuilder他何も起動できません。
オーム社の本など見てみたのですが、何が原因なのかさっぱりです。
0543りお ◆AU/OjWxByc 02/11/30 13:48ID:???
>>542
インスコ先はどこにした?パスは空白を除く半角英数字のみ許可される。
ちょぃとチェックして見ろ。
0544nobodyさん02/11/30 14:18ID:???
>>542
あと、インスコ途中で、環境変数の既存PATHが長すぎて設定できないなんつーダイアログは出なかった?
054554202/11/30 19:01ID:???
>>543
>>544
インストール先はC:\Appleになってます。
その他、パスの指定がいるところはオーム社の本の通りです。

最初にインストールする前、JDK入ってないと怒られ、そのとき初めてJDKを
インストールしました。他は怒られてないです。

唯一、EOModelerだけはオープニング画面だけ出ますが、そのまま固まります。
他のはProjectBuilderはじめ、ダブルクリックするとしばらくHDDが回った後
何事も起きません。
0546nobodyさん02/11/30 19:35ID:???
>>545
OSが悪そうな雰囲気だな。似たような現象、漏れもあったけど
OSのインストールし直しで逃げたことある。
0547nobodyさん02/12/01 00:18ID:K21vYw67
>>546
ありがとうございます。OS入れなおしてみます・・・。

PATHはコマンドプロンプトで表示させてみましたが、WebObjectsのぶんを
含めても2行しかないです。

動くようになったらレンタル機材の予約管理システムを作ろうと思っているんですが、
どこかにいいサンプルはないでしょうか?
私のレベルですが、C/C++はそれなりにわかります。Javaは今回が初めてです。
オブジェクト指向はちょっと怪しいです。
HTMLはテーブルやフレームを使うあたりまではわかります。(デザインセンスはありません)
サーバのセットアップなどはド素人です。
054854202/12/01 00:21ID:K21vYw67
>>547
追記です。
データベースは、REALbasicのやつで簡単に遊んだ事がある程度です。

仕事の片手間に作らないといけないのですが
使える期間は約2カ月しかありません。
できなければできないでもいいんですが、社内でこういうシステムを
認めてもらえる機会を失うことになってしまいます。
なんとしてでも成功させたいのですが、家庭を犠牲にしない程度で
済ませるにはWebObjectsしかないかとおもって始めた次第です。
0549nobodyさん02/12/01 03:48ID:???
2か月だと相当キビシイでしょうねー。
東京近辺ならAppleの無料セミナーに行ってみるのが結局は
一番早道だと思います。あっちはMacだけど、開発時に何をすればいいかは
分かるようになるでしょう。
0550nobodyさん02/12/01 08:17ID:/4UWUdeK
>>548
漏れも549に同意。
WebObjectsのばやい、最初の概念をつかむまでがケッコー時間がかかる。
あとJavaだな。これも何も知らないでプログラムすると、変なエラーに
悩まされる。型の概念やら、パッケージの考えかたとかね。

あと、最初の質問だが、JDKを入れた後にJavaを使うアプリケーション
インストールしていないか?

EOModelerだけ半端起動するツーのはPC内のJava2環境が壊れている証拠。(EOModeler
だけは独自のJDKを使う。(Win系のみ))
画面描画はYelloBoxでやっているらしいので、その辺で落ちたんじゃないか?

なにかJava使うアプリインストールしてない?環境変数のCLASSPATH
に変な設定がないか?(Netscape6以降、JBuilder、Adobe PhotoDelux等。
こいつら入れると、自分で抱え込んでいるJDKを、OS標準のJDKにしちまう。
共存させる手はあるが、ちと忘れた)

その場合、PATHをきれいにしてJDKをインストール->WOをアンインストール
再インストール->てな感じでやればうまくいくと思う。

あと、JDKのバージョンは? 1.4系を使うとたまーにおかしくなる。
1.3.1_04とかを使うよーに。
055155002/12/01 08:23ID:/4UWUdeK
補足

PATHをきれいにするツーのは、OS標準状態にもどす意味で書いたので
からっぽにしちゃだめよ。まぁ、WOしかインスコしてなかったら
WOアンインスコすれば元にもどるが。

あと、もしClasspathになにか変な記述があった場合、
.(ピリオド)にPATHが通っていなかったら、.(ピリオド)を
追加してごらん。(あまりお勧めじゃないけど、緊急避難ということで)
055255102/12/01 09:11ID:/4UWUdeK
【再補足】

すまん。ちょっと誤解を与えるな、これでは。

.(ピリオド)にPATHが通っていなかったら、.(ピリオド)を
->.(ピリオド)にCLASSPATHが通っていなかったら、.(ピリオド)を
0553nobodyさん02/12/01 11:19ID:???
>>547
いいサンプルはしらんが、2ヶ月もありゃ、40マソぐらいでバイトで
作ってやるぞ。運用セットアップ込みならそこからプラス20マソぐらいで。
普通にSI屋に頼むとどれくらい取られるかな?画面数にもよるが。
まぁ、がんがれ.
055455102/12/01 15:40ID:/4UWUdeK
>>547

いいサンプルねぇ・・・。

マク版だとアポーのサイトにちょこちょことあるんだが、Win版は
聞かねーな。

とりあえず、C:\Apple\Developer\Example\javaWebObjectsにアポー
提供サンプルはあるけど、ちと難易度が高杉。

まともなアプリのサンプルはPetStoreWOJavaだけなんだが、これがどういう
ふうになっているのか漏れもしばらく分からなかったけ。

オーム社の本か、たれぱんだ先生のHomeworkかなぁ。
前者は5000円くらい、後者は20000円(通販のみ)だ。
漏れはこいつらには世話になった。

まぁ、ここで聞けばたいがいのことは教えてもらえるよ。(無責任モード)
0555nobodyさん02/12/01 16:24ID:???
たれぱんだ先生のhomework、WebObjectsのイロハを勉強するにはいいかもしれんが、
イロハの後はあまり使わない(やくにたたないじゃなくて)。
OOPを前提としたクラス設計だとかをしていないんで、本来のOOP開発で
求められる開発技法にWebObjectsをどう入れ込んでいくかという点では
自分で何とかしなきゃいけない。まぁ、それはそれでいいんだが。そこまで
難しく書くとASP、PHP、Perlからあがってきたユーザが混乱するだけか(w
055655402/12/01 16:42ID:/4UWUdeK
>>555
激しく同意。

ただ、イロハの部分の敷居がどうにも高くて。
いまでこそ、ここやらtech-artsのmlやらでいろいろ聞けるけど、
「かったはいいが、これをつかってどーやってプログラムを作るんじゃイ!!」
てなレベルだと、やっぱ聞くにきけないでしょ。

そういうやつに限って回りに聞くやつがいないし。
そういった意味で薦めたんだけどね。

はっきりいって今じゃ見ないよ。でも最初のうちはこれに首っ引き
だった。逆にこれしか買わなかったのでほかのJ2EE関連にくらべたら、
書籍類への投資は少ないともいえる。

まぁ、あとはこのスレでもたびたび出てくる

ttp://www.apple.co.jp/webobjects/pdfs/WebObjectsForHtml_J.pdf

を、めんどくさがらずに最後までやれェ、かなぁ。
漏れはこれでひととーりの操作はおぼえたよ。

※でも画面がマクだし、ソースにミスがあるし、ちといたしかゆし。

OOPなとこはやりながら覚えていくってのも手じゃないかな?
ある程度習熟したところで必ずJavaの勉強はしなくてはならんが、
今回は時間がないツーことで。
0557nobodyさん02/12/01 17:33ID:???
ProjectWONDERのNetStruxrケーススタディーサンプルアプリケーション
を試そうとしたんですけど、ERMiniUglyLookのビルドに失敗します。

...failed GenerateFrameworkStub /Users/username/Roots/
_WOClientERMiniUglyLook.tmp/Versions/TMP/_WOClientERMiniUglyLook ..

こんなエラーなんですけどどこがまずいのでしょうか?
ProjectWONDERのホームページのGetting Startedを見て
PBX Setup、Log4j initialization For Wonder0.91、ERCryptoの設定は
やったつもりです。
0558 02/12/01 19:20ID:???
>>542

part3ででているが、これも試してみるとよい。↓

Winのサービスに Apple Mach Daemonが登録されてないってことないですか?
*スタートメニューの設定から「サービス」を起動して確認。(上の方にあるはず)
*タスクマネージャでmachdが動いているのを確認

登録されてないなら、shを使って手動でサービス登録すればいけるかも。
> cd $NEXT_ROOT/Library/System
> ./machd.exe /install
> ./nmserver.exe /install
(再起動)
0559nobodyさん02/12/01 19:31ID:???
>>557
Wonderのサポートは、テクノロジックアートのMLにPostしたほうがいいよ。
たつやタンがサポートしてくれる。
0560nobodyさん02/12/01 22:33ID:???
WebObjects5.2、はやくJDK1.4対応してくれへんかなー?
正規表現のAPIだとか画像処理関連のAPIがJDK1.4からつかえるから
MacOS X とWebObjectsがはやく対応してくれること節に希望するのだ。。
0561nobodyさん02/12/02 01:11ID:NPLnPAle
win2000 iis
webobjects5.1
jdk1.4です。

モニタにホスト、アプリケーションを登録・起動がちゃんとできているのに
http://マシン名:2001でつながらないのですがどのような理由が
考えられるでしょうか?localhostでもだめでした。
0562nobodyさん02/12/02 01:52ID:???
いよいよ残り1ヶ月だな
0563☆☆☆☆☆02/12/02 02:51ID:Z6bI7Cqn
http://alink3.uic.to/user/ranran2.html
0564りお ◆AU/OjWxByc 02/12/02 11:20ID:???
JavaMonitor→Application→Configuration→Argumentに
WODirectConnectEnabled trueを付け足す。そうすれば貴様は幸せになれる。
ただし、一般公開アプリではさけた方がいいだろう。
もしくは、
http://***.***.***.***/cgi-bin/WebObjects/WOApp.woa/-Port
でもOKだと思う。

それと小宇宙だ、心の奥底に眠る小宇宙を燃焼させろ。
これがポイントだ。忘れるな。
今、ハーデス編を愛読中。シャカが逝ってしまうとは〜(;´д`)
0565nobodyさん02/12/02 19:43ID:28qakmYS
今、Strutsってフレームワーク使って開発してるんですけど、
WebObjectsでの開発に興味があります。

で、質問なんですけど、乗り換えるよう上司を説得する
いいネタってないですか?

研究フェーズのシステムなんで、可能性を削ってしまうことが
嫌われてしまいます。
で、Macってだけでマイノリティ扱いなんで (;_;

あと、今作ってる資産をサクッと移行できないと、それも
まずい。

でも、この辺を突破口にして開発環境にMacOSXを導入したいと
綰らんでます。

0566nobodyさん02/12/02 20:07ID:???
↑
そんな貴様にはサイバーフレームワークがおすすめだ。
http://www.cyberlab.co.jp/cf_info.html
ただ、これって、Java対応してるんだっけ?

具体的にどんなアプリ作りたいんだ?
0567nobodyさん02/12/02 20:46ID:VUWS4qDm


サイバーフレームワークの価格を知ってる人っている?

0568nobodyさん02/12/02 21:16ID:???
100maso .... enterprise.
30maso .... personal/academic

0569nobodyさん02/12/02 22:00ID:VUWS4qDm


ありがとうございました。

057056102/12/02 23:30ID:NPLnPAle
りおさんマジでありがとうございました。
deploymentとdeveloperでは初期値が違うんですね。
勉強になりました。
0571nobodyさん02/12/02 23:51ID:EErAQyXc
ロジックとデザインの切り離しを徹底したいと思い色々と調べていたのですが、そ
の過程でWOの事を頻繁に耳にしましたよ。
どうもピンとこないのですが、WOを使うと何故ロジックとデザインを気持ちよく分
けられるんですか?開発者がソースを弄らなくて良くなるから?
0572りお ◆AU/OjWxByc 02/12/03 00:41ID:M7SIc2MJ
>>571
ん、いい質問だ。
WebObjectsは設計思想からモデル、ビュー、コントローラーそれぞれの
役割を明確にするために独自のツールとフレームワークを用意している。
それぞれがデータを操作するための機能をエレガントに抽象化していて、
プログラマが余計な所に手を出さずとも願ったことが実現できるところに
WebObjectsの神髄を感じる(あぁ、マカー的発言(´∀`)

開発者がソースを弄ばなくて良い、というのが適切かどうか判らないが、
例えばJSPやServletにおいてhtmlタグを意識した出力ロジックを書くことは
今でもあるだろう。WAFなどのフレームワークを使えばいいかもしれぬが。
WebObjectsはそこらへんはWebObjectsFrameworkというフレームワークが全てを
担うため、プログラマはHTMLエレメント(たとえばラジオボタン)が持つ
セマンティクスを意識したロジックを書く、つまりビジネスロジックだけに
集中してプログラミングが出来るという利点を持つ。
(もちろん、HTML出力部分をカスタマイズすることもできないことはない。)

つづく
0573りお ◆AU/OjWxByc 02/12/03 00:45ID:M7SIc2MJ
で、実際はどうかというと、WebObjectsが扱うHTMLテンプレート
(WOComponentというのだが、)には、<WEBOBJECT>タグが入る。
オパーイの大きいWebデザイナ(性別は関係ないんだが)には
そのタグだけをいじらないように指示をして己はそのタグ(ダイナミックエレメントというんだが)から
呼ばれるメソッドなんかをクラスにせっせとプログラミングすりゃいい。

もちっと詳しく書きたいんだが、今、ハーデス城に入るところなんだ、
またあとでな(おい(w
0574nobodyさん02/12/03 01:08ID:OcF9VH7u
以前にもtaskdで質問したものです。
taskdの起動ポートを変更したらホスト登録ができるようになった
のですが、アダプタが1085を使用しているためアプリケーションが
立ち上がっても接続できませんでした。
webobjects.exeを除いてみたら1085と書かれている部分がありました。

アダプタがtaskdを探しにいくポート番号をかえる方法は
ないのでしょうか?

0575nobodyさん02/12/03 01:44ID:M7SIc2MJ
↑
ないと思うから、アダプタのソースいじってコンパイルしろ。それくらいやれや。
057657402/12/03 02:07ID:OcF9VH7u
>>575
やはりコンパイルしなければいけないのでしょうか
レスありがとうございます
0577nobodyさん02/12/03 12:10ID:zvZO/u+B
以前、Webサービス関連でカキコしたものです。

Webサービスの文字化け、解決した人いますか?

うちではいくらやってもだめでした。クライアントがAccessなので
このままではJavaClientで全面改訂か、ほかのWebサービス鯖入れないといけくなって
しまいます。

そういえば、そろそろたれぱんだ先生のハンズオンセミナーの一発目が終わるころなんで、
ここみて質問したひとっていらっしゃいますか?
0578nobodyさん02/12/03 13:59ID:???
>>574
CGIアダプタを使っているなら、環境変数WO_CONFIG_URLで、Apacheモヂュールを
使っているなら、設定ファイルのWebObjectsConfigで変えられまいか。
057954202/12/03 16:29ID:PmdJyo52
>>558
すいません。
「サービス」というのがどこにもないんですが・・・。
Windows2000Proだからでしょうか?
0580nobodyさん02/12/03 16:47ID:???
>>579
[スタートメニュー] -> [管理ツール] -> [さび〜す]
0581 02/12/03 23:06ID:???
>>558
[スタートメニュー] -> [設定] -> [コントロールパネル]
-> [管理ツール] -> [さび〜す]
0582nobodyさん02/12/03 23:11ID:???
WebSphereで開発してるんだけど・・
カスタムEOがさっぱりわからん
みんなは業務ロジックをどうやって実装してるの?
0583nobodyさん02/12/03 23:52ID:M7SIc2MJ
↑
業務ロジックって、たとえば…?

(漏れは一応統一プロセスでかいはつとるが、業務ロジックにあたるところは
EOだったりふつうのクラスだったりする)
0584nobodyさん02/12/03 23:52ID:???
Web球は、スレ違いでは?
つーか、Web球にEOなんて無いだろ。
0585nobodyさん02/12/04 01:57ID:???
つーか、ログイン画面実装するだけで90分もかかってる漏れって…

逝ってきます(;´Д`)
0586nobodyさん02/12/04 22:17ID:fhT9vzMl
win2000
webobjects 5.1.3
です。

サービス画面から apple task daemon を起動したときと
taskd.cmd をダブルクリックで起動したときの動作が違います。
サービス画面から立ち上げるときの仕組みはどうなっているのでしょうか?
0587nobodyさん02/12/04 22:43ID:???
jakartaとかののjarファイルを追加したいんだけど
どこに設定すればよい?

まさか、環境変数じゃないよね・・・?
0588りお ◆AU/OjWxByc 02/12/04 22:55ID:???
>>587
とりあえず環境をかけ。MSXで動かしてるんじゃアルマーニ.
058958702/12/04 23:19ID:???
>588
すまん。
WO 5.1+Windows2000Server
でそ。
0590nobodyさん02/12/04 23:25ID:???
servletでcsvを吐くような処理をWebObjectsでおこなうことは可能ですか?
public void service(HttpServletRequest req, HttpServletResponse res)
 res.setContentType("application/octet-stream");
 res.setHeader("Content-Disposition", "inline;filename=\"aaa.csv\"");
 OutputStreamWriter osw = new
 PrintWriter out = new PrintWriter(osw);
 AnyFileDownload(out, fileFullName);
 out.flush();
 out.close();
 return;
}
0591りお ◆AU/OjWxByc 02/12/04 23:33ID:???
>>589
過去ログとりあえず読んでくれ。OracleのJDBCドライバをセットアップする方法かなんかと同じ方法なんだが。
ああとだな、
Apple/Library/Java/
だったかに入れて、んでもってなんかの定義ファイルを書き換える…
スマソ、今、Windowsマシーンじゃないんだ、誰かフォロー入れてくれ(;´Д`)

>>590
appendToResponseに似たようなことを書くことになる。
あまり大きなCSVファイルをダウソするようなことになったら
WOLongResponsePageというのを使うといい。WebObjectsをインスコすると
サンプルもついてくるから(LongResponsePageというサンプルプロジェクツ)

0592nobodyさん02/12/05 12:42ID:CaD/11lf
質問です。

数値型のAttributeに数字以外の文字を入れた場合のエラーを補足したいのですが
できますか?

エンタープライズオブジェクトのvalidateForXXXX()にチェックメソッド
を入れてみましたが、どうもその前に例外が発生し、勝手に捕捉されている
見たいです。(コンソールにはだらだらとメッセージが出てくる)

このエラーをどうにかして捕捉して、「数値以外だよ+項目名」という
警告メッセージを表示したいのですが、どのようにやればいいでしょうか?
0593りお ◆AU/OjWxByc 02/12/05 13:01ID:???
>>591
C:\Apple\Library\Java
に、jarファイルを入れて、
同じ場所にあるJavaConfig.plistに
jarファイル名を追加する。で、たぶんウマくいく。

>>592
EOのValidationについて少しカンチしてる。
EOのValidation機構はレジストされたecの挙動によって発生するものだから、
EOに対して入力された時点で型の不整合はありえないものとなる。
(あと、validationは保持した値に対しての検査をするもんだ、つうのをどっかでよんだ)
従ってEO側で型チェックはできないのだ。わかってくれ。たのむ。おねがいだ。ね。

で、その場合はWOTextFieldのNumberFormatterに"0"などを設定しておけば
Number型(Integer、Doubleなど含む)以外の文字を受け付けなくなる。
(フォーマッタね)EOのAttribute(Number型)を直接バインドしておけば、
EOにデータがセットされる前に入力値チェックがされる。そこで出た例外は
コンポーネントが配置されているWOComponentのサブクラスにvalidationFailedExceptionつう
メソッドをオーバーライドしておくことで出た例外をつかまえることができる。
こいつらを使えば幸せになれる。

ところで、最後に星矢はハーデスの剣に刺されてしまったんだけど、あれ、
しんじゃったのか?
0594WOFER ◆ahSJBA7O/E 02/12/05 13:38ID:???
Win2k SP3 & WOF 5.1を使用していますが、
WOFileUploadで詰まってしまいました。

filePathにString型、dataにNSData型をバインドして
Formから読み込ませようとすると、WOFileUploadクラスの中で
ClassCastExceptionが発生してしまいます。

昔使っていたWOF4.5ではこれで動いたのですが、
WOF5になってから何か仕様が変わったのでしょうか?
0595りお ◆AU/OjWxByc 02/12/05 14:22ID:???
WOFormのenctypeは設定したか?
0596WOFER ◆ahSJBA7O/E 02/12/05 14:41ID:???
していませんでした。
初歩的なミスですね......
ありがとうございました。
0597もんじゃ屋02/12/05 15:12ID:c2z9ygBY
EditingContextについて教えていただきたいのですが。
ひとつのメソッドの中でFetchして値を変えてからsaveChangesをしたらupdateされませんでした。
updateされるようにするにはどうしたらよいのでしょうか?

public WOComponent actNextPage(){

EOEditingContext ec = session().defaultEditingContext();

//進捗レコード1件抽出
try {
NSMutableDictionary queryBindings = new NSMutableDictionary();
queryBindings.setObjectForKey(((Session)session()).itemNendo(), "nendo");
queryBindings.setObjectForKey(((Session)session()).user(), "uusers");
itemShincyoku = (Shincyoku)(EOUtilities.objectWithFetchSpecificationAndBindings(ec,"Shincyoku", "shincyokuFetch", queryBindings));
}catch(Exception excp) {
excp.printStackTrace();
}
//進捗レコード更新
itemShincyoku.setCompleteFlg(new Integer(9));
itemShincyoku.setCompleteYmd(new NSTimestamp());
ec.saveChanges();

NextPage nextPage = (NextPage)pageWithName("NextPage");
return nextPage;
}

なぜこれではだめなのでしょうか?
EditingContextに変更を通知するような事はできないでしょうか・・・・。
0598りお ◆AU/OjWxByc 02/12/05 15:22ID:???
EditingContextに、updatedObjects()という更新されるオブジェクトを返すメソッドがあるから、その内容がnullでなければ
EOは更新されている、ハズ。

DB上は更新されていても、画面上のデータが
更新されないというケースは時にあることなのだが、
そこらへんは問題ないか?
059959202/12/05 15:48ID:vnTZ3jct
>>593

うーん、そうですか。

ちなみに、validationFailedExceptionを実装して試してみましたが、
項目名までは追っかけられないですね。

仕方ないんで、String型のカスタムフィールドとゲッターセッター作って、
validateForSaveのなかで数値型のチェックを行うようにしました。

最初はチェックに行かないんでなんでかなーとおもって調べていたら、
カスタムメソッドに変更があっても変更とはみなさないみたいですね。>>EO
しょうがないんで、String方のセッターのなかに
   setNumberAttribute(numberAttribute());
なんていう、さも更新したようなメソッドを突っ込みました。

>ところで、最後に星矢はハーデスの剣に刺されてしまったんだけど、あれ、
>しんじゃったのか?

ごめんなさい。私はオーディン編で挫折しましたので存じません。

#Win2000SP3の癖にNimdaに取り付かれました。>>うちのマシン。
#ログ見ると何度か404ではじき返しているのに
#あるタイミングで同じ要求が200でアクセスOKされていました。
#幸いチェッカーが反応して転送が終わる前にファイルは削除されましたが。
#皆さんもお気をつけを。


0600nobodyさん02/12/05 15:50ID:???
Windows版を使っているのですが
使い方が悪いせいか、すぐに落ちてしまって・・・・
落ちたら最後PC再起動しないとProjectBuilderが
立ち上がらないTT
0601りお ◆AU/OjWxByc 02/12/05 16:07ID:???

>>ちなみに、validationFailedExceptionを実装して試してみましたが、
>>項目名までは追っかけられないですね。

あれ、最後の引数にkeyPathだったか?があるだろ、それがバインドしたAttribute名がはいるとおもうのだが?

>>600
漏れは徐々にマカーへとなりつつある。鬱。
UNIXとMacOSが微妙に混じり合ったこの環境も悪くないな。
だがネット(IE)の糞重さはバカにされまくっても当然だな。
0602nobodyさん02/12/05 16:14ID:???
Mac OS Xなら断然Chimeraがいいよ。
0603597:もんじゃ屋02/12/05 16:24ID:yqfA8O2x
>>598
りおさんレスありがとうございます。
updateObjectsはnullでした。

抽出した後にSystem.out.printlnでitemShincyokuの中身を出したんですが、
問題なくレコードが1件入ってました。completeFlgの中身は0です。
itemShincyoku.setCompleteFlg(new Integer(9));
を実行後再びitemShincyokuをSystem.outしてみたんですが、
completeFlgに9がちゃんとセットされています。
DBの方も直接見てみたんですが、やっぱりcompleteFlgは0のままです。
見た感じはEditingContextにオブジェクトの変更が通知されていないように見えます。
0604りお ◆AU/OjWxByc 02/12/05 17:19ID:???
>>603
なるなる。んじゃ、以下をチェックしてみてくれ。

・カスタムEOクラスがEOGenericcRecordクラスを継承
しているか(extends)

・EOModelorを開いてEntityリストのてっぺんにある
EOModelor名と同じ名前のアイコンをクリックすると
右側にリストが表示される。
name、table、class nameのタブが表示されるから、
そのうち、class name がEOGenericRecordになっていたら、
カスタムEOクラスと同じ名前に手動で変更しろ。

>>602
ほお、いいことをきいた。サンクスコ。漏れは標準インスコされるアプリ以外はあまり使わないタチなんでな(w
0605りお ◆AU/OjWxByc 02/12/05 17:26ID:???
↑補足。EOModelorいじったら、buildしなおせよ。あとバックアップはちゃんととっておけよ(w
漏れは人生のバックアップをとっておきたい(←謎
060660002/12/05 17:32ID:???
>>601
環境としてはマクXは非常に興味深い・・・。
お気軽に試せないのがたまにキズですが。

ところでWinでProjectBuilder立ち上がらない状態になってしまった時、
どのプロセスをプロセスを殺せばよいか
ご存知の方はいらっしゃいませんでしょうか?
0607りお ◆AU/OjWxByc 02/12/05 17:54ID:???
>>606
あーと、いま試してみた。PBで「今日はいい天気です」と入力してenteerを押すと
PBが落ちる(w

で、タスクマネージャみるとProjectBuilderというプロセスが消えているけど、
projectService というのがあるから、そいつを殺して再度PB立ち上げたところうまくいった。

おためしあれ。
060859202/12/05 18:28ID:mtIB/L5i
>>601

ここから取れるのはバインドされている変数名(メンバー名.attribute)なんで、
そのエラールーチンをページ単位に貼り付けなければなりません。

さらに、お客さんのオーダーが「EOでチェックできるようにしてね」だったので
苦肉の策です。(どうもあとで使いまわしをしたいらしい。最初はこのメソッドの中で
メンバー名.attributeだったらーなんてことも提案したのですが)


まぁ、数値タイプの項目は元から少なかったんで、これでもいいけど、
結構ある日付型はどうしよう。いままでWOPopupButton使っていたんで
エラー知らずだったんだよな。

指摘されたらどうしよう。(独り言)
060960602/12/05 18:28ID:???
>>607
ありがとう。
うまくいきました。
しかしServiceって名前のタスクをkillするのは心臓に悪いや・・w
0610592 & 57702/12/05 18:46ID:mtIB/L5i
>>606

当方、WinとMac両方使っていますが、ProjectBuilderはどっちも最悪です。
よく落ちるし。インデントはうまくそろわないし。たまにインデックスがこわれた
かどうか知りませんが、「ビルドに失敗しましたー(理由なし)」
なんてこといってくるし。
とくにMac版は10.2のデベツールだと「}」を自動補完するように指定すると
必ず落ちてくれます。(アポーのページにも使うなというお達しが。)
「言語が英語だと発生しません」とも書いてあるんですが、なめてやしませんか?
(私は英語モードで使っていますが)

おまけに、WinとMacでプロジェクトの管理方式が違うので共存できなーい
ってのは、あんま関係ないですか。

そういや、Webサービスで日本語が使えないって件、まだ誰からもカキコないですね。
ひょっとして漏れだけ?
0611nobodyさん02/12/05 20:04ID:???
WinのPBで、コメント入力時に落ちるのはガイシュツだ。
過去ログ嫁
0612nobodyさん02/12/06 00:10ID:???
やっぱプログラミングしている時が一番幸福だよな〜♪
カネ、セクース、オナニー、プログラミングの順番に好きだ。おまえら、どうよ?
0613nobodyさん02/12/07 06:40ID:???
だったら4番だろうが
■ このスレッドは過去ログ倉庫に格納されています