JavaサーブレットQ&A LV2

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
サーブレットに関する疑問・質問はこちらで。
サーブレットってなんですか?
なんでみんなResin使わないんですか
4 :02/02/03 18:47
>2
鳩サブレのことだよ。
5デフォルトの名無しさん:02/02/03 18:51
>4
ワラタ
旧スレのリンクぐらい張れやボケが!!ヽ(`Д´)ノ
http://pc.2ch.net/test/read.cgi/tech/972229341/
7デフォルトの名無しさん:02/02/03 19:13
>>6
ヒィーすいません。
続スレたてるの初めてだったんで、すっかり忘れてしまいました。
8デフォルトの名無しさん:02/02/03 21:26
>3
漏れもハゲしく疑問

98:02/02/03 21:27
zeusみたいにしぼんでいくのかねえ。
10烏龍茶:02/02/04 20:10
前スレの 964 に非同期問題じゃねーのっつう話を書いたんだけど読んでるか?
11好太郎:02/02/05 11:35
現在weblogic 5.1 JDK1.2.2で開発しています。
Java beansをデバッグするとき、再コンパイルすると、
いちいちweblogicを再立ち上げしなければならないので、
URLClassLoaderで動的にクラスをローディングしようと
しましたが、うまくいきません。

String sClasspath = "C:\\weblogic\\myserver\\serverclasses";
String sClassname = "test.ClassUtil";
Class class1 = null;
try {
URLClassLoader cloader = new URLClassLoader(
new URL[]{ new File(sClasspath).toURL() });
class1 = cloader.loadClass(sClassname);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
} catch (Exception e) ...

loadClassで、java.security.AcessControlException:
Access denied (java.io.FilePermission \C:\weblogic\myserver\serverclasses\read )
になります。
クラスファイルは、C:\weblogic\myserver\serverclasses\test\ClassUtil.class
に配置しています。なお、このディレクトリ、ファイルのアクセス権はEvery One
フルコントロールです。
12デフォルトの名無しさん:02/02/05 12:24
>>10
前スレの942です。
返事遅れてすいません。
sessionに関しては、すべてローカル変数として
宣言しております。
前スレにあったようなコードが正しいんですよね?
自分は、doGet()とdoPost()をともに使用しているサーブレットは、
そのメソッド内で別々にsessionオブジェクトを生成しているのですが、
これでも問題ないですよね?
サーブレット内で一旦setAttributeしたやつは少なくとも
そのサーブレット処理内ではgetAttributeできてるのは確認しており、
リダイレクト先のJSPでゲットできないことがわかっています。
しかもフォワードだと渡ることも確認しています。
かといって、サーブレット同士の連携もあるので
すべてフォワードするわけにもいきません。
(サーブレット同士の連携部分でリダイレクトしなければならず
そこでセッションがとぎれログイン画面にもどるようになります。
もちろん次にログインしたあとにはすべてうまくいきます。)

ところでちょっと話しはそれるのですが、
例えばログアウトのリンクがあってそこにencodeしないで単純に別のページ
にいくようにした場合、そのときに残ってたセッションは
どうなるのでしょうか。破棄されるのですか?どっかに残ってるんでしょうか?
1312:02/02/05 12:28
12の補足なんですが、
リンクは、コンテキスト相対URL(/ではじまる)
の場合です。
14ちゅう:02/02/05 13:36
TOMCAT3.3でCocoon1.8.2動かそうとしてるんですが、動いた人います?
.jarの配置廻りはすべてOKのはずなんだけど・・
WebのToDoではドキュメント整備中って事なんです。
Googleで探してもなかなか情報が少ない。
動いた実績ある人いるかな?
xerces.jarとcrimson.jarがぶつかってないか?
16ちゅう:02/02/05 13:53
crimson.jarはzzz_crimson.jarにしてxerces.jarが前に来るようにしてる。
リネームしたのは、crimsonがないとTOMCATの起動で失敗したから・・

エラー的にはNoSuchMethodException(だったと思う)なのだけど。
今再現する環境無いんで、また家帰ったら細かく書かせてもらいます。

で、このスレをこういう質問コーナーにしてええのかな?
apache.orgのMLにでも入れって言われそうだけど・・
17 :02/02/05 14:04
>>14
ここのどこかの掲示板にあったぞ。
さがしてみぃ。
18デフォルトの名無しさん:02/02/05 20:46
>14
Resinにしとけ。$500だ。

19ちゅう:02/02/05 21:38
長文すいません。

>>17
ありがとう。XMLのスレにCocoon2+TOMCATの話がありました。
でもおれはCocoon2はビルドが途中でこけるというワケワカラン事態になって放置。
1系の最新を使うことにした次第です。

>>18
Resinよさそうですけど、もちょっとCocoonがんばってみたいと思ってます。

エラーですが、こんなのが出てます。
Managerクラスのcreateメソッドで例外でてるのは確認できたんですけど、
ソース見たところ例外の型がただのThrowableって事までしか分からないん
であまり参考にならなかったです。
XSPProcessorはcocoon.jarの中にあるんですが、こいつは
$TOMCAT_HOME/webapps/cocoon/WEB-INF/lib/cocoon.jarに配置してます。
TOMCAT3.3なので、$TOMCAT_HOME/lib/commonやらcontainerの下に置いたりして
いろいろやってみたんですが、結局解決せず・・

java.lang.RuntimeException: Exception when creating " org.apache.cocoon.processor.xsp.XSPProcessor" :
java.lang.NoSuchMethodError: See http://xml.apache.org/cocoon/faqs.html#faq-normalize
at org.apache.cocoon.framework.Manager.create(Manager.java:124)
at org.apache.cocoon.framework.Router.init(Router.java:80)
at org.apache.cocoon.framework.Manager.create(Manager.java:109)
at org.apache.cocoon.Engine.<init>(Engine.java:179)
at org.apache.cocoon.Engine.getInstance(Engine.java:232)
at org.apache.cocoon.Cocoon.init(Cocoon.java:157)
at org.apache.tomcat.facade.ServletHandler.doInit(Unknown Source)
at org.apache.tomcat.facade.ServletHandler.init(Unknown Source)
at org.apache.tomcat.facade.ServletHandler.service(Unknown Source)
at org.apache.tomcat.core.ContextManager.internalService(Unknown Source)
at org.apache.tomcat.core.ContextManager.service(Unknown Source)
at org.apache.tomcat.modules.server.Ajp13Interceptor.processConnection(Unknown Source)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(Unknown Source)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Unknown Source)
at java.lang.Thread.run(Thread.java:484)
20デフォルトの名無しさん:02/02/05 21:40
>19
なんでbuildする必要があるの?
改造してんの?
21ちゅう:02/02/05 22:42
>>20
Cocoon2.0のバイナリ版のWARファイルでもやってみたんですが、
TOMCATの起動中に途中で止まってしまうんです。
そこでCocoon2.0を一度ビルドしてみようかと付属インストールガイドの
TOMCAT3.Xの項を参考にやってみると
途中でSegmentationフォルト・・という結末でした。

TOMCAT3.3って4が出てからはあまり使われてないんですかね・・

やっぱあきらめかな・・・
22烏龍茶:02/02/05 22:49
>>12
> 前スレにあったようなコードが正しいんですよね?
前スレ >>964 は悪い例。あれやってるなら間違い。
23デフォルトの名無しさん:02/02/05 23:08
javaはいくつ?
1.3.1系はよくSEGVる印象があるなぁ。1.3.0_XX でどうよ。
そして実運用までに1.4がリリースされることを毎日祈ると(藁
24ちゅう:02/02/06 00:38
>>23
その1.3.1系です・・JDKまで戻すってイヤだなぁ。。

ちなみに同じ症状の情報で唯一見つけたのはここ。
http://marc.theaimsgroup.com/?l=xml-cocoon-users&m=100308287702978&w=2

おなじ事やってみて・・やっぱダメでしたが。くっそー!

もうあきまへんかな。はよToDoドキュメントageて(;゚Д゚)ホスィ・・・
Win95/98 の Sun JDK1.3.1 はすぐセグメンテーションフォルト起こすので
Win2k を薦める。けど今回は Win じゃなさげな話…

それから、NoSuchMethodError はライブラリが必要バージョンを満たして
いない時に出る。XML ライブラリのバージョンと Cocoon で必要なバージョン
を確かめてみて。あとは >>15 みたいに Tomcat が持っている奴と競合してる
とか。(何気に XML 関係はバージョントラブル多いんだよな…)
26質問者:02/02/06 09:34

postgresで検索内容に '(アポロストロフィ)があったとき
みなさんはどのように対応していますか?
例:b'sを調べるとして
select * from table where fieldX ='b's';
とすると構文エラーになりますが、\エスケープも効きませんし、
試してないですが、PreparedStatementからでもダメな気がしますし、
どのようにすればよろしいのでしょうか?


よろしくお願いします。





27烏龍茶:02/02/06 10:11
重ねるんじゃねーの?
select * from table where fieldX ='b''s';
PreparedStatementは勝手にエスケープしてくれるだろ
29質問者:02/02/06 13:32
返答ありがとうございます。

'' や \' でOKでした。

バックスラッシュが効いていないというのは私の認識ミスでした。


多少トピックは違いますが、
http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1999Dec/msg00147.html
も役に立ちました。


>>26
訂正:アポロストロフィ→アポストロフィでした(^^;

30デフォルトの名無しさん:02/02/06 20:37

solaris8にtomcatぶち込んでJSP+ServletのMVCモデルで
ガシガシ業務アプリ組んで文字化けで苦しんでる。

これって一度はとおる道?
31デフォルトの名無しさん:02/02/06 21:45
サーブレットを実行しているcontextのパスを得る方法を教えて下さい。
つまり、http://xxx.xxx.co.jp/hoge/servlet/HogeServletの中で
"/hoge"を得る方法はありますか?
32烏龍茶:02/02/06 22:02
3331:02/02/06 22:17
>>32
有難うございます。
ずっとServletContextの中を捜してました(^^;)
34デフォルトの名無しさん:02/02/07 11:10
サーブレットから、DLLを呼び出す事はできますか?
35烏龍茶:02/02/07 11:19
>>34
JNI を使えば出来ます。今 VC++ などで使っている DLL を呼び出すなら
インターフェースが違うのでラッパー DLL を作る必要がありますけど。

商用データベースの JDBC ドライバ等は結構 JNI 使ってます。
36デフォルトの名無しさん:02/02/07 11:37
なるほど。JNIを調べてみます。
ありがとうございました。
37デフォルトの名無しさん:02/02/07 16:09
質問です。
コネクションプーリングで、複数のDBに対応しているものってあるんでしょうか?

本とかいろいろ調べてみたのですが、一つのDBにしか対応してないのしか
見つけることが出来なかったです…。
何かご存知の方いらっしゃいませんか?

既出だったらスマソです…。
普通にDataSource複数定義すればいいんじゃないの?
39烏龍茶:02/02/07 16:50
>>37
一つのコネクションプールから取れるのは、一つの DB インスタンス
に対するコネクションのみ。複数の DB インスタンスが存在したり、
スキーマ変えたい場合には >>38 のように複数のコネクションプールを
使用する。商用アプリケーションサーバなら複数のコネクション
プールを定義できる (じゃないと 2 フェーズコミットの意味がないので)。
「複数の DB」がクラスタリング構成を意味するなら見当違い。
40烏龍茶:02/02/07 16:54
>>39 コネクションプール ⇒ データソース
>38

ありがとうございます。
実はDataSourceは使ったことがないので良く知らないのです…。
勉強不足ですみません。

当方、JDBC1.0なうえ、TOMCAT3.2.1を使用しており、
アプリケーションサーバやJDBCが持っているという
コネクションプーリングは使用できないみたいなんですが、
DataSourceはJDBC1.0でも利用可能なのでしょうか?
PoolManについて調べれ。
>>37
あちこちにマルチポストするな
こらえ性なしめ
(´-`)。oO(あちこちにあるのか。ひとつしか知らなかったよ)

>>37
回答もらえたとこではお礼しといてね。聞き逃げは良くないよ
いろいろ調べていて返事とお礼が遅れてしまいました。
すみません。

>39
ありがとうございました。
「複数DB」はクラスタリングを意味するものではありません。
曖昧な書き方ですみませんでした。
やはり1つのコネクションプーリングで対応できるのは1つのDBのみ、
ということなのですね。
先にも書きましたが、DataSourceが良く分からないため、
--------
複数の DB インスタンスが存在したり、
スキーマ変えたい場合には >>38 のように複数のコネクションプールを
使用する。商用アプリケーションサーバなら複数のコネクション
プールを定義できる (じゃないと 2 フェーズコミットの意味がないので)。
---------
この部分については調査して勉強します。
ありがとうございました。

>42
ヒントありがとうございました。
自分でも調べていくうちにPoolManの名前は聞いたのですが、
複数DB対応もできて大変便利そうですね。

Driver名やURLなどはファイル内に固定で持つのですよね。
実はシステムの仕様でDriver名やURL、UID、パスワードはテーブルから
取って来なくてはならず動的に変化するという何とも…な状態なのですが、
こういうのに対応するとすると、やっぱり自作しないと厳しいでしょうか…。

みなさん、こういう場合はどうなさっていますか?

>43

他のJava関係の掲示板に同様の質問はしましたが、
2chではここにしか投稿していません。
情報を集めるのに緊急を要するため、この2箇所で質問をしたのですが、
何か問題がありますか?
4637:02/02/07 18:55
すいません、37=41=45 です。
                 ∩
                 | |
                 | |
        ∧_∧   | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ( ;´Д`)//< 先生! 37のメールアドレスから住所と名前突き止めました!
      /       /   \
     / /|    /       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  __| | .|    |
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
>実はシステムの仕様でDriver名やURL、UID、パスワードはテーブルから
>取って来なくてはならず動的に変化するという何とも…な状態なのですが、

(´-`)。oO(テーブルってDBのことだろうか・・・)
4942:02/02/07 22:38
>>37
>情報を集めるのに緊急を要するため、この2箇所で質問をしたのですが、
>何か問題がありますか?

マルチポストってのは昔から嫌われる行為なんで注意してね.
あまり露骨だとそのうち誰にも相手にされなくなっちゃうから。
2chだと↑見たいな副作用もあるし。

事後だから仕方ないけど、
回答のもらえた掲示板ではお礼ぐらいした方がいいよ。
もらえなかったところでも
「・・・な方法で解決しました。」ぐらいの報告はあってもいいんじゃないかな。

まぁ社会に出たら常識だけどね。学生さんかな?
5037:02/02/08 00:36
>48
>(´-`)。oO(テーブルってDBのことだろうか・・・)

そうです。DBにアクセスするための情報がDBに入っているのです…。

でもPoolManは使えそうです。利用してやってみようと思います。
それでダメならHashtableを使って自作しようと思います。
DataSourceはまだまだ勉強が必要ですが…。

みなさん、貴重な情報ありがとうございました。m(_ _)m

>42
ご指摘ありがとうございました。
次から気をつけます。

>そうです。DBにアクセスするための情報がDBに入っているのです…。

DBにアクセスするための情報が入ったDBにアクセスするための情報は
どうするの??自作できるの??ほんと???
WebShereのRepositoryDB見たいな感じかな?
1個だけ特別なDBがあるんでしょ。多分

しかしリアルタイムに接続DB替えるのか?
設計ミスのヨカーン
それでPoolingするんなら自作するしかないだろうけど・・・
DataSourceはもう対象外でいいだろ。

実際稼動中にDB変えないんだったらPoolManの設定ファイル書き換える
アプリ作ったほうが早いような気がする
5337:02/02/08 09:31
お返事ありがとうございます。m(_ _)m

>51,52
そうです、1つだけ場所が固定なDBがあります。
そのDBに他のDBやらテーブルやらの情報が登録されています。
仕様決めてるのがうちじゃなくて他のところなんですが、
設計センスなし!です。

>それでPoolingするんなら自作するしかないだろうけど・・・
>DataSourceはもう対象外でいいだろ。

やっぱそうなんでしょうか…。<自作
でもDatasourceは個人的に興味あるので調査続行の方向で。
PoolMan設定ファイル書き換え、そうですねPoolMan使うならそういう
アプリが必要になりますね。
ただ、PoolManが設定ファイルを読み込むタイミングが気になりますが…。
一度読み込んでずっとメモリ上に持つようだと、アウトかもしれません…。

うー。考えます。ありがとうございました。



>一度読み込んでずっとメモリ上に持つようだと、アウトかもしれません…。
メモリ上に持ってないとPoolingデキナイヨ。

本当にリアルタイムに接続先変えるなら自作だな。
5537:02/02/08 14:37
>54
お返事ありがとうございます。

>メモリ上に持ってないとPoolingデキナイヨ。
むむむ、やはりそうでしょうか…。

接続先はDBに登録されてるのをその度読むので、
リアルタイムに変わる、というか固定である保証が全然ないです。

うーむ、とりあえず現状では(今後も?)リアルタイムに接続先を
変えられるプーリングツールなりライブラリなりは存在しない、
ということですよね。
それが分かっただけでも大進歩です。

プーリングクラスと、それをHashtableで管理するようなクラスを
自作する方向で考えてみます。

みなさん本当にありがとうございました!深謝です。 m(_ _)mm(_ _)m
56デフォルトの名無しさん:02/02/08 14:40
>>55
DataSourceをMapにでもつっこんどくクラスを作ればいいんじゃねーの?
ここで語ってる連中は
みんな仕事でつかってるのか?
おしえてくれブラザー。
>>57
何を?
サーバサイドJavaを
60デフォルトの名無しさん:02/02/08 15:21
俺は使ってるぞ。
>60
個人でWebサーバーたててるってことだよね?
6260:02/02/08 15:30
仕事で使ってるがなにか?
6337=55:02/02/08 15:38
>56
>DataSourceをMapにでもつっこんどくクラスを作ればいいんじゃねーの?

ありがとうございます。

未だにDataSourceが良く分からない上にMapインターフェイスは使ったことないです。
でもHashtableもMapをimplementsしてるのでそこから想像するに、
DataSourceがうちでも使えるなら、何かいけそうですね!
なるほどなぁ…。
ありがとうございました。
>62
こいつは失礼した
65烏龍茶:02/02/08 15:44
俺も仕事で使ってるぞー。ローカルに Apache と Tomcat 常駐。
メールに URL いれて「こんな感じで良いんですよね」とか確認
できるので便利かな。

>>61
個人で Web サーバって、ドメイン取ってるかって事? そのうち
取ろうかと思ってるけど、今は DynamicDNS で我慢してる。
6660:02/02/08 15:50
発言は60と62だけだが(w
仕事で使ってるところなんか腐るほどあるだろ
はァ〜?
69デフォルトの名無しさん:02/02/10 22:26
age
70質問者:02/02/12 09:31
過去にも同じ質問しているのですが、
どうも思うように実現できず少し形を変え再度質問に参りました。
内容としては
ブラウザから画像をアップロードしてDBに追加する機能を実現するというもです。

まずはプロトタイプとして、ただ、アップロードされた画像を表示するだけのものを
作りたいと思っています。

「ひよこサーブレット」さんの
http://homepage3.nifty.com/uzblend/servlet/source/upload/SimpleUpload.java
を参考に使わせて頂いていますが、

ByteArrayOutputStream content = new ByteArrayOutputStream(1024*4);

//マルチパートのデータから画像データを抽出
ByteArrayOutputStream content_cache = new ByteArrayOutputStream();
while((len = in.readLine(b,0,buffer_size)) != -1){
content_cache.write(b,0,len);
}
//boundary文字列並びに改行を除去して整形
content.write(content_cache.toByteArray(),0,(content_cache.toByteArray()).length-("--"+bdry+"--").length()-4);

というように抽出した画像データを、さらに以下のソースに融合させ表示するだけの
ものを作りたいと思っています。

int data;
response.setContentType("image/jpeg");
BufferedInputStream in = new BufferedInputStream(**********);
while ((data = in.read()) != -1) {
out.write(data);
}

****の部分で上手く型変換をしてやればいいと思っているのですが、
どう対応すればいいのか、理解できていないというのが正直なところです。

大変申し訳ありませんが、対応策をご存知の方がみえましたら、
ご教授お願いします。
または、他の手段でやっているという方法も教えて頂けたら光栄です。

よろしくお願いします。
71質問者:02/02/12 09:39
>>70の追伸ですが、

アップロードのソースとして有名と思われる、ねぽるさんの
http://www.netpotlet.com/にある
http://www.netpotlet.com/archives/upload.jar
ダウンロードしwebapps\uploadの配下に展開して
FormBasedFileUpload.jspを試したのですが、
UPLOADボタンをクリックすると白画面になってしまいます。
コンソールにもエラーはでておりません。

こちらは使用方法自体間違っているのかもしれませんが、
このソースの利用方法、またはレポート等、参考となるページアドレスを
ご存知の方がみえましたら、ご教授お願いします。

度々、申し訳ありませんが、
よろしくお願いします。
72デフォルトの名無しさん:02/02/12 15:45
tomcatって長期間稼動に耐えられますか?
apacheとtomcat3.2.3使用してるんですが数日経つと
ログも何もださないでtomcatだけ落ちます。
これって3.2.4にしたらなおるもんでしょうか?
それとも3.3系、4のほうがいいのかな。
他にフリーで安定したコンテナがありましたら何があるでしょうか?
稼動中なので気軽に替えることができないので良い解決法ありましたら
教えてください。よろしくお願いします。
>>72
ホントに全部のログを見たのかと小一時間問いつ(以下略)
74ヘタレ院生 ◆YpVqtdfk :02/02/12 17:32
今、研究って言う事で、JavaServlet利用した商取引システムの試作って言うのを
やっているんですけど、その中で詰まっているのが「SSL接続」なんです。
googleのような検索エンジンで探してみたんですが、なかなかこれといった解説
がみつからず、具体的に何を用意してどういう操作で実現させるのか困ってる所です。

僕の試作システムでは、ユーザのログインでSSL接続が使われると思うのですが、
「こーやってみれば?」とか適当な解説書やページ等のアドバイスありましたら
お願いします。
75デフォルトの名無しさん:02/02/12 17:47
Tomcat を使用していると、リクエストパラメータの文字列を毎回
ISO-8859-1 ⇒ Shift_JIS 変換しますよね。自動的に変換する
ようにどこかに定義しておけませんか?
>>75
ServletAPI2.3以降にそれ用のメソッドがある。
>>76
確認した。ありがとう。
78デフォルトの名無しさん:02/02/12 18:08
スレ違いかも知れんが聞く
EJBの利用価値ってなんだ?

本等ではEJBの利用を勧める傾向にあるが
実際に利用した者に聞くと負荷等の問題があり大規模システムにしか使えない、
等の意見が多い。

積極的なEJBの利用を勧める本等に限って、アプリケーションサーバーの
ベンダーだったりするのでいまいち信用にかける。

大規模システムの定義も曖昧。

EJB利用について意見を聞きたい。
>>78
そのとおり。アプリケーションサーバをクラスタリングで
組むくらいのシステムで使うもの。あとサーブレットだけ
じゃなくアプレットやアプリケーションもつ買うシステム
でビジネスロジックを一元化したい場合。その他はパフォー
マンス度外視して設計に懲りたい場合、単純に EJB を
使ってみたい場合、営業トーク目的、ハード売り込みなど。

どちらにせよ無理に使うものではない。
8079:02/02/12 18:20
アプリケーションもつ買う ⇒ アプリケーションも使う
>74
SSL接続の意味が良く分らんが、Servlet <-> 取引サーバー間をSSL接続したい
のであれば、JSSEという便利なAPIがあるのでそれを使えばいいかと。

ウェブサーバーをセキュアサーバーにしたいって意味なら(・∀・カエレ!
ん?HTTP サーバだけを DMZ に置いておくって構成なかったっけ?
ちゅうかそもそも Apache に SSL モジュール乗せりゃ済むんじゃないのか?
84ヘタレ院生 ◆YpVqtdfk :02/02/12 19:16
>>81さん
もちろん(?)前者の方ですよ(汗;
JSSEですか… 検索etc.して調べてみます。
アドバイスありがとうございました。

>>83さん
使用環境書いてませんでしたね、スイマセン。
Tomcat使ってるんです。バージョンは3.3です。
フロント側の SSL 通信じゃなかったのかよ (;´д`)
86デフォルトの名無しさん:02/02/13 09:45
Servlet&JSPで書かれた綺麗なソース群って知らない?
参考書などで書かれているソースって実用レベルじゃないんで、
どうもしっくりこないんですが・・・
OOらしい綺麗なソースをキボンヌ。
>>86
J2EEなら、JavaPetStoreを一度は見てみること。
8886:02/02/13 11:11
>>87
JavaPetStoreは見ましたが、もっと綺麗なソースが無いのかと。
>>88
どういう意味で綺麗って言ってるの?
9086:02/02/13 11:19
>>89
再利用可能で無駄が無い。

って我ながらアフォな発言だな。
>>90
んじゃ、Strutsあたりにしとけば?
92デフォルトの名無しさん:02/02/13 17:30
MVCモデルで、MはDBアクセス等を、Vが画面制御になる訳だが、
DBアクセス(M)の検索条件って画面制御(V)に影響されるよね。
作り方によってはM(のDBアクセス部分):Vが1:1(1画面に1アクセス条件)になり易いよね。

この辺りはみんなどうしているの?
画面にあったアクセス条件定義(SQL文)をそれぞれに用意するんかいな?
>>92
それって、Mの定義がヘンなんじゃない?
9492:02/02/13 18:20
>>93
具体例で・・・

例えばこういう場合はどうすれば良いんでしょうか?

1.検索画面(V)社員番号[@@@]
  業務ロジック(M)−−>"SELECT * FROM MASTER WHERE SYAINNO = @@@" @@@は画面より受け取る

2.検索画面(V)部署コード[###]、社員番号[@@@]
  業務ロジック(M)−−>"SELECT * FROM MASTER WHERE BUSYO = ### AND SYAINNO = @@@" @@@,###は画面より受け取る

V:Mが1:1。

業務ロジックを1つに纏めたところでSQL文は2つになる。
もっと汎用的な方法が無いものかと。
VがDBのアクセス方法を決定しているのが腑に落ちない。
>>94
VからSQLが見えてる訳じゃないんでしょ?
CからもSQLは見えないわけでしょ?
なんか手続き型言語のデザインのまま MVC とか言ってないかい?
激しく蔵鯖の臭いがするぞ。
98デフォルトの名無しさん:02/02/13 20:12
WebSphere使ってるんだけど、ServletやEJBが今いくつインスタンス(またはスレッド)
立ててるかというのを動的に監視する方法ってある?
ServletContextとかにありそうでないんだよね・・・。
9992:02/02/13 20:59
>>95-97
説明不足かもしれない。
例えば、M(BEAN)V(JSP)C(Servlet)とした場合にMとVとCを機能的に独立させたい。
>>94の場合だと
M(データアクセス部分)としては「MASTERからデータを取る」という一点に集中させ、
V(実際はVの要求を引き受けたC?)が社員コード番号のみからデータを取るのか、
部署コード&社員コードでデータを取るのかを決定する、
ってのが機能的に分割されているんじゃないかと思ったんで。
(MVCの理解不足か?)

COMMANDパターンとか使えば良いんかな?
皆さんはどうしているの?

>>97
確かに手続き型言語あがりです(泣
>C(Servlet)
ダウト
つか、MVCは忘れたほうがええで。
>>99
Beanにメソッドを2つつくっときゃいいだけじゃん。
List find(String syainno)
List find(String busyo, String syainno)
これじゃ機能的に独立してることにならないって言うの?
10292:02/02/14 09:45
>>101
>List find(String syainno)
>List find(String busyo, String syainno)
こうやった場合にSELECT文で取得する項目はViewに依存するよね。
Viewの表示項目が増えればBeanのSELECTする項目も増える。
BEAN側で'SELECT * FROM 〜'にすると処理速度が遅くなる。
この辺りは妥協するしかないんだろうか?

もう一つ質問
>List find(String busyo, String syainno)
でDBからデータを取得した場合にView用に編集するには、
それ(View整形)専用のClassを用意してViewに渡すのが良いのか
データごっそり貰ってカスタムタグで整形するのが良いのか?

教えてデンパ君になっている。スマソ
>>102
*を使うかはともかく、そんなに遅くなるもんなの?
> データごっそり貰ってカスタムタグで整形するのが良いのか?
っていうか、ふつーはView専用のクラスなんて作らないと思うが。
それこそ密結合になっちゃうだろうが。
>>102
M が V に依存しないって言うのは、あくまでプレゼンテーションレベルの話
(テキストの表示位置とか負の数値を赤くするとか…)。検索条件が増えたという
事はアプリケーションとしての機能そのものが変わったということを意味してる
から妥協するしかない。ていうかそれ単なる機能定義漏れ。

後半部分、再利用性を求めるなら、データはなるべく後ろまで (表示する直前
まで) プリミティブな状態で残したほうが良い (実装が HTML から PDF や
XML に変わっても対応可能いう理由で)。しかし余計な拡張性入れることで
コード量が爆発しそうなら止める。っていうか「View 用にデータを編集する」
って具体的にどういうこと? Model がデータに適切な HTML タグ付けるという
意味ではなくて?
105デフォルトの名無しさん:02/02/14 10:36
Servletで重い処理がn回発生した場合に
「処理中・・・・終了」ってクライアントに表示させた後、
画面を違うServletに遷移させたい。
「・」の数がn回分表示される仕様として、どうやってクライアントに
表示及び処理終了後自動で違うServletに遷移させることができるでしょうか?

できればサーバへのリクエストは最初の1回に抑えたいのですけど、
1回で不可能ならば最小限で抑えたいです。
>>105
リダイレクトすればできるだろうけど、
HTTPプロトコルはどんなモノか知ってる?
107烏龍茶:02/02/14 10:48
>>105
「・」を出力して out.flush() しながら n 回ループ。もうちょっと凝る
なら JavaScript のコード吐きながら n 回ループ。

out.write("処理中です: ");
for(int i=0; i<n; i++){
  out.write("・");
  out.flush();
  /* 重い処理 */
}
out.write("<BR>処理完了");
108烏龍茶:02/02/14 10:54
>>105
続きがあったか… >>107 の最後の処理の後に JavaScript コード
吐いて移動したいページに飛ばす。


out.write("<BR>処理完了");
out.write("<SCRIPT>document.location='hoge.html';</SCRIPT>");
out.write("</BODY></HTML>");
return;

サーブレットに飛ばすなら hoge.html の部分をそのサーブレットを
呼び出す URL にする。

# 携帯です、とか言うなよ
109105:02/02/14 11:05
NetScapeじゃHTMLが不完全で表示されなくないですか?
110烏龍茶:02/02/14 11:11
>>109
そうかもしれん。だったらプログレスする JavaScript コードちょっと
づつ吐くなり、アプレットや Flash 使うなりしてくれ。
>>105
で、その処理は全部終わらないとページを表示できないの?
そうじゃなきゃレスポンスを返した後に処理を続けるっていう方法もあると思うけど。
112デフォルトの名無しさん:02/02/14 11:15
JavaMailでメールの送受信を行うには、必ず他のメールサーバーが必要なのですか?
JavaMailそのものには、メールサーバーを実現するような機能は含まれていないのですか?
113105:02/02/14 11:18
処理結果を表示させる必要があります。
n回処理して何回目が失敗したとかです。

一番妥当なのはn回リクエストして状況に応じた処理状況を表示する方法に
なるでしょうか?

けど、それだとクライアントサーバ間の通信が無駄に思えます。
>>112
無い
JAMES でも使え
>>113
処理状況を表示させるならそれが妥当だろ。
それ以前に設計を見直すほうがいいとは思うがそうも言ってらんないのかな。
116112:02/02/14 11:28
わかりました JAMESも調べて見ますが、
とりあえず
簡易のフリーのメールサーバー + JavaMailで逝ってみます
そういやJamesのMailetって使ってる人いる?
118112:02/02/14 11:32
>>114
何度もすいません。
JAMESって何ですか?検索かけたけど、いまいちわかりませんでした。
12092:02/02/14 13:01
>>103,104
>View 用にデータを編集する
ってのは以下のようにすることです

DBアクセスBEAN--委譲-->View用データ加工BEAN----->VIEW

こうすることでVIEWの負担を減らす。
12192:02/02/14 13:06
>>120
View用データ加工BEANの説明が抜けてた。
ここでカンマ編集だの、和暦変換だのを行う。
タグまでは作らない。
122デフォルトの名無しさん:02/02/14 13:38
クライアントのマシンで印刷を行わせる事はできますか?
(ブラウザの印刷機能以外で)
>>120
View用データ加工BEAN
なんてつくらないで
・ユーティリティクラスをつくる
・DBアクセスBeanにまとめる
のどっちかがいいんじゃない?
125  :02/02/14 15:10
Servletで発生した例外をJSP側で例外としてうけたいのですが、
できるのでしょうか?
>>125
で、なにをしたいんだ、コノヤロー
127125 :02/02/14 15:43
例外処理をまとめてJSPで処理したいのです。お
Java:BeanをJSPで使う場合JSPでエラーをとりだせますが、
Servletの場合も同様に、エラー処理をJSP側で行いたいのです。
isErrorPage=trueのJSPにfowardさせてexception変数で例外を参照したいってことか?
それなら例外をキャッチしたらRequestにでもセットしてやればいいだろ。

> Java:BeanをJSPで使う場合JSPでエラーをとりだせますが、
このJSPから変換されたJavaソースファイルを眺めればわかるはずだ。
129 :02/02/14 20:49
servlet上でのMVCプログラミングの話題の中、インストールネタ(しかも長文)
で申し訳ないのですが、質問です。

Win2k + IIS 5.0 + WebSphere AE 4.0(以降WAS) の組み合わせでうまく使えて
いる方、いらっしゃいますか? win2k + IBM HTTP Server(WASに同梱のもの) + WAS
では問題なく動いています。
どういう問題が発生しているかというと、

1.IIS > WAS の順でインストールした直後は、WAS に入っている petstore サンプル
 や servlet/snoop などは、IIS 経由でも参照できるのですが(ブラウザで
 http://hostname/petstore と指定し、特に :9080 経由で指定しなくても参照で
 きる)、IIS を再起動するとそれらの web アプリが参照できなくなってしまいます。
 ブラウザには、 IIS が 404 not found を返しています。
2.また、IIS を再起動しなくとも(petstore や servlet/snoop が参照できる状態でも)
 WAS の管理コンソールを使って web アプリを deploy した場合、IIS 経由から
 その web アプリが参照できません( http://hostname/sampleApp/ とやっても
 404 not found になる)。
 もちろん、WAS に :9080 経由で ブラウザからアクセスすれば、sampleApp は
 正しく動作していることを確認しています。

どうすれば、IIS + WAS の組み合わせで、自分で deploy したwebアプリが動かせる
ようにできるのでしょうか?

なお、参考にした url は、

http://www-4.ibm.com/software/webservers/appserv/doc/v40/aes/infocenter-ja/infocenter/wass_content/0221a14s.html
(IBMのwebpshereのサイトの中の、infocenterの中にある)

です。きちんと IIS > WAS の順にインストールし、かつ WAS のインストール時に
「カスタムインストール」を選んで、使うwebサーバに IIS をチェックしています。
130デフォルトの名無しさん:02/02/14 21:06
つーか、未だにIIS使ってる奴がいるとは・・・
中学生が遊びで使うものだと思ってた。
「〜たいのです。」
という表現を使う奴は大抵自分のやりたい事がうまく説明できないという法則

その話だとこういうこと

protected void doGet(...){
  try{
    ...
  } catch(Exception ex){
    request.getRequestDispatcher("error.jsp").forward(request, response);
  }
}
13292:02/02/15 10:04
>>124
>・ユーティリティクラスをつくる
が正解のような気がする。

View用データ加工Beanを使用しようかと思ったのは

例えば
DB参照時:DBアクセスBEAN(西暦)--委譲-->View用データ加工BEAN(西暦→和暦)--->VIEW(和暦)
DB更新時:VIEW(和暦)--->View用データ加工BEAN(和暦→西暦)--->DBアクセスBEAN(西暦)

ってやれば、View側ではデータ加工Beanのみ意識すれば良いし、
CではViewから送られたデータをデータ加工BEANに一旦入れて(あるいはViewから受け取ったデータ加工BEANから)DBアクセスBeanを取り出すだけ
なので、処理が一箇所に集中するので良いかと思ったんですが。。。
そうすれば、データ加工BEANでDBからSELECTする項目も指定できるかと(DBアクセスBEANの作りにもよるが)
しかし、そうするなら制御用JSPとかを作った方が良いんですよね。

漏れだけなんだろうか、こんなことしているの。
>>132
んなことするんなら暦クラスでもつくっとけや
13492:02/02/15 10:48
>>133
例は暦だけだがカンマ編集やその他画面に表示する際に編集することは一杯あるだろう
>>134
だから、そこいらへんの設計をちゃんと考えろ、と言っている。
オブジェクトを抽出しきれていないように感じたんで。
13692:02/02/15 11:04
>>135
暦編集やカンマ編集のユーティリティクラスは作ってある。

>オブジェクトを抽出しきれていないように感じたんで。
そうかもしれない。
だから意見を聞くために書き込んでみた。
137デフォルトの名無しさん:02/02/15 18:23
>>136
で、どうすることにしたんだ?
Win2000にTomcatをインストールしたいのですが、
初心者にはどのバージョンがお勧めですか?
139デフォルトの名無しさん:02/02/16 23:25
servlet.xmlの設定について詳しいサイトとかあったら
教えてくれませんか?
/example/servlet/〜
じゃ無くて、自分が作ったディレクトリにClassファイルをおいて
動かしたいんですけど、うまくいきません
HTMLファイルは開けるんですけど・・
140デフォルトの名無しさん:02/02/17 00:13
>>139
Servletコンテナはなに?
Tomcatなら http://www.ingrid.org/jajakarta/tomcat/
あとclassファイルは必ず /WEB-INF/classes/ に配置しないといけないよ
CLASSPATH通して使えないことはないけど奨励されてない。

>>138
初心者ならどれ?
3.2.4かな?
3.3はパラメータのデフォルト文字コードの指定が出来た気がする。
それ使いたかったら3.3a
>>138
4.0.1
インストーラーが付いているという理由で。ただし Apache と連携させたい
んだったら 3.x 使え。ところで 4.0.2 ってデフォルトで XML パーサつか
なくなったんか?
142デフォルトの名無しさん:02/02/17 07:44
JDK 1.3.1, Tomcat 4.0.1 から JDK 1.4.0, Tomcat 4.0.2 にバージョン
アップしたら JSP が軒並み動かなくなった。JSP プロセッサっが javac の
バージョン見てるっぽいけど、どうすりゃいいの?

Apache Tomcat/4.0.2 - HTTP Status 500 - Internal Server Error

java.lang.UnsupportedClassVersionError: sun/tools/javac/Main (Unsupported major.minor version 48.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)

143142:02/02/17 08:30
簡単なサーブレットを作って試してみたら JDK 1.3.1 の環境で
動いているようだ。PATH も変更したし、レジストリの current
version も正しいし、Tomcat はどこを見てるんだろう…
144142:02/02/17 09:15
一回 Tomcat をアンインストールして Windows を再起動、その後
Tomcat をインストールしなおして Windows を再起動、でうまく
動いた。NT サービスとして起動させていたのが悪かったのか…。
145139:02/02/18 00:47
>>140
どうもそうみたいですね、ありがとうございました。
146138:02/02/19 00:08
>140, 141

ありがとうございました。
とりあえず、Apacheも勉強してみたいので
3.2.4をインストールしてみます。
147デフォルトの名無しさん:02/02/19 16:48
JSPからJavaBeansを使っています。
JavaBeansから任意のオブジェクト(検索結果など)を得ることは
できるのでしょうか?
JSP:getPropertyでは文字しか渡せないようなので。
148烏龍茶:02/02/19 17:47
>>147
<jsp:getProperty> は HTML に Bean のプロパティ値を埋め込むための
ものです。従って <% %> で Java コードを書いてゆくか、汎用的にした
いならカスタムタグライブラリを作成してください。データベースアクセス
関係のフリーのカスタムタグライブラリはネットで探せば転がっていると
思います (アプリケーションサーバならデフォルトで付いているかも)。
149デフォルトの名無しさん:02/02/20 02:22
Viewと切り離すのにXSLTはいかんのか?
150 :02/02/20 03:47
インナースレッド作ってデバックしてて気付いたらゾンビが大量
発生してました。
生成は押さえましたが、消し方が判りません。
thread.stop()するとプロセスごと道連れにしてしまいます。
(そして再起動するとゾンビ供も保存されています。)
消し方教えてください。
151 :02/02/20 03:49
あ、アパッチ+tomcatです。
152デフォルトの名無しさん:02/02/20 10:13
>>148
Beansのクラスにデータを取得するメソッドを追加し、
ID.メソッドで実行してできました。Javaのコードってこうゆう意味ですか?
153:02/02/20 10:49
JavaMailを使ってサーブレットからメールを送信させているのですが、
fromの部分で [email protected]を 送信者<[email protected]>にさせたいと思っております。

From: =?ISO-2022-JP?******=?=<[email protected]>
*の部分をどうやって出力してやればいいか悩んでおります。

new String("送信者".getBytes("8859_1"),"iso-2022-jp");
みたいな感じで全角部分を作ってやればいいのでしょうか?



154@:02/02/20 10:51
JavaMailを使ってサーブレットからメールを送信させているのですが、
fromの部分で [email protected]を 送信者<[email protected]>にさせたいと思っております。

From: =?ISO-2022-JP?******=?=<[email protected]>
*の部分をどうやって出力してやればいいか悩んでおります。

new String("送信者".getBytes("8859_1"),"iso-2022-jp");
みたいな感じで全角部分を作ってやればいいのでしょうか?

155@:02/02/20 10:57
すみません。
書き込み後、replayエラーというものが返ってきたので
再書き込みをしたら、再書込みになってました。
>>153
JavaMail完全解説って本があるからそれを読め。
157//:02/02/21 02:48
とあるサーブレット内の、
あるメソッドでOutputStreamにバイト配列を書き出し、
別のメソッドでそれをInputStreamとして読み込みたい。

ユニーク名をつけたり、消したりが大変そうなのでファイルとしてディスクに書きたくはない。
DBは使えない環境。RMIもややこしそうなのでパスしたい。

このようなことを美しくかつ間便に実現する方法はないものか。
おしえてタモーレ。
158//:02/02/21 03:02
あれ?
ひょっとして、
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(outbyte);
out.close();

して、
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
すればいいだけのことかな?
159:02/02/21 08:30
Java(Servlet)でExcelのファイルを編集したいのですが、どうすればいいのでしょうか?
160む ◆.UAaBAKA :02/02/21 08:45
>>159
JCom使え
162デフォルトの名無しさん:02/02/21 21:45
>>158
PipedInputStream/PipedOutputStreamはどうだ?
163:02/02/22 20:33
つかえん
164デフォルトの名無しさん:02/02/22 22:46
excelファイルを作成するtaglibがある
165デフォルトの名無しさん:02/02/23 00:51
146>>
なんていうやつ?
166デフォルトの名無しさん:02/02/23 01:10
tomcat4のservlet.xmlの設定、意味わかんね
マニュアルも英語しかないし・・
誰かわかる?
167 :02/02/23 01:36
>>166
俺はお前の意味がわかんね。
英語っても義務教育で習ったろ?意味わかんね。
誰かわかる?
168デフォルトの名無しさん:02/02/23 01:40
>>167
英語のマニュアルが読めないんだろ?
お前バカ?意味わかんね。
169デフォルトの名無しさん:02/02/23 01:45
意味わかんね。誰かわかる?意味わかんね。
英語だよ、英語。意味わかんね。
誰かわかる?
170デフォルトの名無しさん:02/02/23 01:52
>>169
キモッ
171デフォルトの名無しさん:02/02/23 02:25
前の方、英語使わないで下さ〜い
どう思う?英語使ったよ今!
一番前で観てんのに英語使ってたよ〜?
感じ悪いね〜
アハハハ
荒れてンナ・・・。
servlet.xmlのマニュアル
和訳してあるサイトがあったような
174メルトスライム:02/02/24 17:29
Javaサーブレットでアプロダみたいなものを作っていますが、
50kB以上のファイルを転送できません。
サーバーが見つかりませんという表示になるのです。
jspから転送するのですが、formタグのところには
enctype="multipart/form-data"があり、
サーブレットでリクエストからバイナリ(request.getInputStream)で読み取って
解析しています。
サーバーはtomcat3.2.2とApache1.3を使用、
OSはWin98、ブラウザはIE5.0を使用しています。
ソフトを新しいのにしろとは言わないでください。

175man:02/02/25 17:09
>>174
私がところは問題なくUPできています。
methodがgetになっていないですか?


でもって、
私も似たようなことしていまして、

multipart/form-dataで送信したバイナリファイルの取得できたのですが、
普通の文字のエンコードで行き詰まっております。


new String(xxx.getBytes(),"JISAutoDetect")
new String(xxx.getBytes("ISO-8859-1"),"JISAutoDetect")
(xxxはServletInputStreamからreadLineで切り出したものです)

とかで問題なく取得できると思っていたのですが、???となってしまいます。

お気付きの点がありましたら、どなたかご教授おねがいします。
176 :02/02/25 17:25
ISO-8859-1じゃなくてSJISにしてみたら?
>>175
multipart/form-data で送信されるテキストは特にエンコードされて
なくて Shift-JIS 直書きのテキストが送られてくると思う。そもそも
ServletInputStream#readLine() が返した文字列は化けてないの?
178man:02/02/25 17:48
new String(xxx.getBytes("SJIS"),"JISAutoDetect"))でもだめでした。

これはsoralis上で発生しているんですが、
さきほどwindows環境でやってみたら、なんの問題もなく全角が表示されました。

どうやらデフォルトエンコーディングとかが怪しそうです。

tomcat4.0のデフォルトエンコーディングの設定はどこにあるのでしょうか?
申し訳ありませんが、ご教授よろしくお願いします。

一応ページの最初では
<%@ page contentType="text/html; charset=Shift_JIS" %>
としています。


179 :02/02/25 18:26
charsetがサーバー依存の予感
180man:02/02/25 18:31
>>177
恥ずかしいことなのですが、
サーバが側の設定を正しくしておらず、
System.out.println("あ");とやっても化けてしまうので
確認できません。
(最後に戻せばよいかと思っておりました。)

http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/programming/howtoupload.html
に送られてくるサンプルがありましたね。

が、原田さんのページもエンコードとしてはnew String(uploadfile.getBytes("ISO-8859-1"), encoding)だけで
他に特別なことはなさそうです。

Windwos環境では正しく全角の表示がコンソールでもブラウザでも確認できております。

やはり環境が違うだけで表示できなくなるということなので、
TOMCATの設定なのでしょうか?
>>180
> System.out.println("あ");とやっても化けてしまうので
> 確認できません。

まずそれを直してから話を進めれ
182メルトスライム:02/02/25 21:03
174のことですが、サーバー(Apache)をいじって解決しました。
1MB以上のファイルをはねる機能を付けていますが、
はねる場合にリクエストを読み込まずにすむ方法はないのでしょうか。
アップロードできないのにレスポンスが遅いのはちょっと問題かと。
あと、テキストファイルのエンコードはいじっていません。
>>175
methodはPOST(大文字)です。POSTには二重引用符もつけてあります。
>>182
リクエストの Content-Length ヘッダ見て 1MB 以上なら処理を止めちゃえば
184man:02/02/25 21:54
解決しました。超初歩的なミスをしておりました。
String(byte[] bytes, int offset, int length) は
これはデフォルトエンコーディングを使うということで
String(byte[] bytes, int offset, int length, String enc)で万事解決しました。

昔はtomcatの起動時に引数を与えてやることによって
デフォルトエンコーディングを指定できたようですが、
現在は無視され、反映されないと聞きました。
みなさん、デフォルトエンコーディングはどのように指定されていますか?

ちなみに、私の環境のデフォルトはgetPropertyで見たところ646と出力されasciiでした。


>>182
こんなページはどうでしょう?
http://support.softartisans.com/docs/safileupdocs/japanese/Documentation/prog_g_clientrestrictfile.htm

185pirania:02/02/26 19:51
PreparedStatementを使ってバイナリデータをDBに追加したいのですが、
PreparedStatementX.setBinaryStream(2,ByteArrayInputStreamX,10240);を処理すると

InputStream as parameter not supported
at org.postgresql.jdbc2.PreparedStatement.setBinaryStream(Unknown Source)
とエラーが発生します。

パラメータ等問題ないように思うのですが、同じよう経験された方、
何かお気付きの方、ご教授お願いします。
そのメッセージが正しいなら PostgreSQL の JDBC ドライバが
setBinaryStream() をサポートしていないんじゃないの?
187メルトスライム:02/02/26 20:57
>>184
ありがとうございます。
クライアントサイドで止めるということですね。
>>183
サーバーエラーになります。(悲
188振られ気分でロックンロール:02/02/27 10:28
すいません、ご教授お願いします。
Q1.サーブレット作っているのですが、一度サーバにアップしたあと
確かめる(セッションを開始)
間違ってた(表示関係)ので手直しして再度アップ。
リロードしても反映されず。HTMLやJSPは反映されるのでサーバは動いている。
こんなことってありえます?
サーバにアップしたファイルをデリートしてもIEでリロードしても見れるのです。
対処法をお願いします。手直しができない…

Q2.req.getCharacterEncoding();  (実例:String encoding = req.getCharacterEncoding(); )
がコンパイルを通りません。この一文を消せば通ります(実際はout.println(encoding);も消しますが)
なんででしょうか?エンコード指定ができないので文字化けが…
ちなみに、JSPでのpageEncoding指定も通りません。

宜しくお願いします。

環境
開発OS:WindowsME
確認用プラウザ:IE5(観覧IE5以上限定で作ってます)
サーバ:TOMCAT、アパッチ
SDK:1.3.1

キャッシュじゃねーの?
それと、コンパイルが通らない、だけじゃわかんねーよ。
190デフォルトの名無しさん:02/02/27 11:27
>>188
Q1:再起動か、classの再ロード
Q2:java.net.URLEencoder.encode
>>190 ネタ?
192振られ気分でロックンロール:02/02/27 13:38
レス、ありがとうございます。
>>189 すいません、エラーメッセージです。
シンボルを解釈処理できません。
シンボル: メソッド setCharacterEncoding (java.lang.String)
位置 : javax.servlet.http.HttpServletRequest の インタフェース
req.setCharacterEncoding("JISAutoDetect");
  ^<ピリオドについている

キャッシュは疑ったのですが、対処法はプラウザ上での再読込を行っただけです。
HTML等の場合はOKですが、サーブレットでこれって対処法になってますか?
他のキャッシュのクリア方法がありましたらご教授お願いします。
ちなみに、仕方ないので、今はファイル名を変えながら試しています…
これまた、一回アップしたら更新できないので、これの繰り返しですが
なのでサーバアップのディレクトリやアドレス間違いではありません。

java.net.URLEencoder.encode
これって、どうやって使うのですか?
検索してみたけど0件でした。
>>192
getじゃなくてsetって書いてるじゃねーか!
ボケナス!
ついでにServletは自動リロードされると思うな!
Tomcatを再起動しろ!
チンカス!
194デフォルトの名無しさん:02/02/27 14:05
キャッシュはブラウザだけの技ではないのでござる。
再起動をむずがっていては、サーブレットの開発などできませぬ。
みな毎回立ち上げなおしているのでござる。
めんどうなのは、javaを選んだことであきらめないと。
沈下す扱いされても、ただただ再立ち上げを。
わたしなど、修正すると手がかってに再起動コマンドを...
195振られ気分でロックンロール:02/02/27 14:44
>>193 (=189?)
すまんすまんすまん!はずかしぃぃぃぃ ありがとう! 撃つ打・・・

>>193 ,194
ありがとうござました。
サーバかあ立ち上げ直さないといけないのですね。
サーバ管理者は別だったのですがなんとかしなくちゃ・・・

ありがとうございます。いつか恩返しできるくらい成長したる!
しかも セルフ晒しage ・・・
JSPなんですけどスレが無くて・・・わかる方いたらお願いします。
<%
Integer count = (Integer)session.getAttribute("count");
count = new Integer(count.intValue()+1);
%>
<%
session.setAttribute("count",count);
%>
こんな感じであるJSPでカウントアップして、セッションで共有して
他のJSPで<%= count %>と表示するのを作ったのですが、
これの文字版ができません。
あ、ただたんに文字変数を共有したいだけです。文字でカウントアップはしませんです。
Integer count = (Integer)session.getAttribute("count"); 文の
個人的には Integer を Characer にすれば,,,と思ったのですが
生成されたサーブレットのエラーです:
/var/tomcat4/work/dev_pc1/examples/jsp/hanatest/kobetsukeiyaku_0005fkakunin$jsp.java:132: java.lang.Object から char へのキャストが無効です。
char moji = (char)session.getAttribute("Moji");
とエラーが。先ほどのcount が成功しているファイルでやってるので
sessionの定義関係で失敗はないと思うのですが,,,


198197:02/02/27 17:05
ごめん、いまやったらコンパイルエラーじゃなくてサーバエラーになった,,,

Apache Tomcat/4.0.2 - HTTP Status 500 - Internal Server Error

--------------------------------------------------------------------------------

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

java.lang.ClassCastException: java.lang.String

セッションに入っているのは文字列。setAttribute() でやったとき
String 型のオブジェクトを入れたでしょ。だから取り出すときは

String str = (String)session.getAttribute("Moji");

多分 1 文字だけの文字列が入っていると思うので、

char ch = str.charAt(0);
200197:02/02/27 19:11
>>199
ベリーサンクスっす!できました!感謝感激です。そしてもう一つだけ・・・
今、この質問のおかげで共有変数にできたので回避はできるのですが
<jsp:include page="Monamona.jsp" >
<jsp:param name="Mona" value="もなー"/>
</jsp:include><br>
これのinclude文でパラメータに変数の値を入れたいのですが可能でしょうか?
気持ち的には
<%! String moji = "もなー"; %>
<jsp:include page="Monamona.jsp" >
<jsp:param name="Mona" value=moji />
</jsp:include><br>
って、感じで変数の値を渡したいのです。 可否だけでも良いので教えてくださいませ・・・
やってみろ。
202197:02/02/28 00:14
>>201
もちろんやったよぅ エラーが帰ってきたよ。ちゃんと”でくくれって・・・
じゃあ
<jsp:param name="Mona" value="<%= moji%>"/>
でやってみろ。
204197:02/02/28 11:20
>>203
できました!ありがとうございました!<%= が書けるとは思わなかったよ ありがとう
Googleで探せばすぐに見つかるだろ。
リファレンスくらい読め。
206a:02/02/28 18:55
ある文字列の中から特定の文字を除外し、新たな文字列を作る場合、
JAVAでそういったことを簡単にやれる関数ってないですよね?

やっぱ、文字数調べて、ループ回して、一文字フィルタかけるしかないのかなぁ?
208 :02/03/01 02:41
っていうか、jakarta-oroじゃないの?
regexpもな。
210a:02/03/01 11:14
ご回答ありがとうございます。

jakarta-oroやregexpというものがあったのですね。勉強不足でした。

大きな差はないですが、なんとなくjakarta-oroがよさそうな感じですね。

vbやPerlはこういった文字列操作する関数が沢山ありますが、
JAVAはそこらへんは使いにくいですね。
バージョンが上がれば追加されてくるのかな?
1.4から追加されてねーか?
212a:02/03/01 12:46
すみません。文字列置換は存在していました。
replace(char oldChar, char newChar)
213デフォルトの名無しさん:02/03/01 12:58
JAVA初心者スレはスレ違いだったみたいなのでこちらで質問します。

入力ホームにあらかじめ任意の値を入れておく事はできますか?
理想は、クッキーつかった掲示板での名前入力みたいな感じです。
できればクッキー使わずに、内部だけで行いたいのですが・・・
>>213
板違いだヴォケ

+ JavaScript の質問用スレッド vol.8 +
http://pc.2ch.net/test/read.cgi/hp/1014289221/l50
215213(ヴォケ):02/03/01 16:06
>>214
ありがとう。おかげで助かりました。
216デフォルトの名無しさん:02/03/01 20:58
<jsp:include page="***.jsp" flush="true" />
とした場合、***.jsp内で
out.close();return;
としても、呼び出し元の残りの処理は一様に処理されてしまうのですが、
(out.close()しているので出力はされない)
ただ出力を止めているだけで、ムダな処理コストが発生してしまいます。

理想的にはreturn;をしたところで、処理を完全に止めたいのですが、
やはり、呼び出され側(jsp:include)の場合は無理なのでしょうか?
<%@ include file ="**"%>では当然可能ですが、jsp:includeでは
セッションに適当なフラグを作って呼び出し元で判断するしかないのでしょうか?
例外でも使えば?
218デフォルトの名無しさん:02/03/01 21:16
>>217
try{
%><jsp:include page="***.jsp" flush="true" /><%
out.println("出したくないメッセージ");
}catch(Exception e){
}
として***.jsp先でthrow new Exception("exit!");
とするということですか?


throw new Exception("exit");としてやるということですか?
219デフォルトの名無しさん:02/03/01 21:24
すみません。↑文末に変な繰り返しをしてしまいました。
アホしかおらんのか
まぁQAスレだし
>>216
System.exit(0);
JSPの中でreturnをやる奴なんて初めて聞いた。
目から鱗ってか、天然の恐ろしさってか。そんなの使うなよ。
224582:02/03/02 10:37
>>223
同意。

つーか、returnさせたあとで動いてしまう処理ってのは何だ。
何をやりたいのだいったい。
>>223
何がそんなに恐ろしいんだ? 途中で return するとフローが終えないほど素人な
コードでも JSP に搭載しているのか?

だいたい拡張タグの SKIP_PAGE でも途中で return するだろ。認証していない
ときとか、ブラウザがおかしいときとかでエラーページに
forward()/sendRedirect() して return ってのはよくやるけどな (ちゃんと
作るときは拡張タグにするが)。
226デフォルトの名無しさん:02/03/03 01:25
http://www.mycgiserver.com(resin) を利用したことがある方に質問です。

servletを動かす手順(ファイルを置くパス、いじるファイル名等)を教えてください。
FTPで/に/WEB-INF/classesを作ってそこにclassファイルを置いたりしてみたんですが、うまくいきません。
ちなみにローカル(Tomcat4.0.1)ではservletは動いています。
よろしくおながいします。
('-`)。o○(「うまくいきません」か…)
228226:02/03/03 13:27
javax.servlet.ServletException: Class `ServletTest' was not found in classpath.
Classes normally belong in /usr/local/resin/doc/WEB-INF/classes.

こんな感じです。

>>227

うまくいきませんが、何か?
229デフォルトの名無しさん:02/03/03 15:56
>>223
何故JSPの中でreturnしてはいけないんだ??
230226:02/03/03 16:49
自力で解決しました。WEB-INF/classesとかweb.xmlとか難しく考えていたようです。
あと、mycgiserverでは超が5つ位つくほどガイシュツな質問でした(;´д`)
>>229
223ではないが、JSPはHTMLのテンプレートのように使うような気がするのだが、
そういう中でreturnなんていらないよな?
232デフォルトの名無しさん:02/03/03 19:41
>JSPはHTMLのテンプレートのように使うような気がするのだが

JSPがHTMLの雛型??
スマソ、意味分からない。
>>231
なんでやねん。君のシステムは正常系しか想定してないのか?
234223:02/03/03 20:32
>225
returnがおかしいってのは誤解を招いたね。
たしかに、<jsp:forward>がreturnしていることだという意味では、普通なことだと思う。
まあ、使わないに越したことない、作り方もう少し考えれば、っつうくらいに訂正しておく。

ところで、mycgiserverは使ったことないけど、当然secirity managerはちゃんと設定してあるんだよね? >222 をマジにやる奴もいるだろうし…。
> 使わないに越したことない、作り方もう少し考えれば、
おっけー
236バカ厨:02/03/04 09:31
すみませんが、お知恵を貸してください!

WEBアプリケーションで、クライアント(ブラウザ)の
同一フレーム内にリストBOXが二つあり
一方の選択結果(KEY−1とする)によって
もう一方のリストBOXの内容を動的に変えたい…
なおかつ、この表示内容は、上記で選択された
KEY-1を使ってDB検索した結果を表示させたい…。
なんてことがやりたいのですが。
選択されたKEYをサーブレットに返して、同じフレームを再表示する方法以外で実現できますか?

>>236
サーブレットだけじゃできない
238バカ厨:02/03/04 13:16
>>237
〜だけじゃなくても構いません…
ヒントだけでも…
239237じゃないけど:02/03/04 13:40
>>238
JavaScript 使え
JavaScriptもキビしくないか?
アプレットつかえ。
241バカ厨:02/03/04 14:48
それってデータをダウンロードさせといて
JavaScriptの関数をOnSelectで呼び出し
表示を切り替える…ってことでしょうか?

それはやりたくなかったので・・・
だからアプレットをつかえと・・・
ねねね、サーブレットとJSPとHTMLって
どうやって使い分けしてる?まぁHTMLは別物だけどさ
結局
HTMLは、サーブレットで作れるし、サーブレットはJSPで作れる。
なんだか全部で似たようなものが作れるからこの処理はこれで!
みたいな明確さが解からないのです。教えてくださらんか・・・ゴホゴホ
サーブレットでアプリケーションの動きをコントロールして、
JSPでその結果をビューする、ってのが一般的じゃないか?
簡単なアプリだとJSPだけでやることもある。
サーブレットの参考書にMVCってのが書いてあるだろうからそこいらを読め。
245デフォルトの名無しさん:02/03/05 17:43
教えてください。

EJBの戻りが、
独自クラスのツリー状にネストしたものでも動くんですか?
>>245
知るか
247245:02/03/05 18:08
おまえらJSPとか、サーブレットとかさわっただけで
へらへらしてんじゃねーよ。
はやく教えれ。
何が言いたいのかわかりません。
ネスト=nest=入れ子

■[入れ子]の大辞林第二版からの検索結果 

いれこ 【入れ子・入れ籠】

(1)大きな箱や器の中に、それより一まわり小さくて同じ形のものを順々に入れていくこと。また、そのように細工された箱・器。
(2)自分の子が死んだあと、迎え入れた他人の子。養子。《入子》
(3)〔(1)の意から〕内に隠されている事情。
(4)和船で、櫓臍(ろぺそ)をはめるための櫓にある穴。
>>245
国語の成績が悪かったろ?
木状の入れ子か。フラクタルだな。
252デフォルトの名無しさん:02/03/06 00:38
そのEJBはSession?,Entity?それともMessage?
当たり前ですが仮にSessionである場合、戻りを返せたとしても、
そのNestedTreeSetが膨大なデータ転送を行う可能性があります。
なんかXMLを連想させるのですが得たい戻りが独自インスタンスに
おけるインターフェースへの参照が得たいので無ければ、素直に
データをバラシテ組み立てるか、永続化させた方がいいぞ。
(それにステート状態も???)
と書いてみるUnitTest
あのー、お尋ね申してよろしいかな?

今出てる SPARC版J2SE 1.4.0 て、リファレンス実装だろうか、それともプロダクト版だろうか?
-server付けても、JDK1.3よりレスポンスかなり悪いんですけど。

あ、動作環境は、Apache1.4 Catalina Struts ですが。誰かご存じないかのー…
254253:02/03/06 12:37
○ Apache1.3.19
× Apache1.4
#恥
255デフォルトの名無しさん:02/03/06 15:20
jspでJavaBeansを使う場合で、
<jsp:setProperty name="XXX" property="xxx" valie=<%=val%>>
とした場合、<%=val%>に値が設定されていない(<%=val%>の値が"")場合
set〜の処理が実行されないのは仕様なのでしょうか?
具体的には、<%=val%>にはTextBoxの値を渡していて、デフォルトで元の
値が入っており、それを画面で削除した場合です。
>>253
Tomcat4は今のところTomcat3よりかなり遅いみたいだけど
そういうことではない?
257デフォルトの名無しさん:02/03/06 15:49
session間でパラメータを共有したいのですが、配列って可能ですか?
String Moji = (String)request.getParameter("moji");
  session.setAttribute("moji",Moji);
早い話がこれの、配列バージョンの書き方なんですけど・・・宜しくお願いします。
getParameterValues が無かった・・・

何も考えずにString[]にしたらいいだろ。
String[] mojis = {"あ", "い"};
sessin.setAttribute("mojis", mojis);
...
String[] anotherMojis = (String[])session.getAttribute("mojis");
>>257
ListとかMapにしたが良いんじゃない?
260258:02/03/06 17:12
>>259
設計の話までするんなら俺はStringやらListもやめて欲しいけどな。
ある程度情報をまとめたオブジェクトを数個持ってるだけにしたい。
× Vector cart; じゃなくて
○ CartBean cart; な感じ。
で、CartBeanが中に
List items; やら
void reset(); やら作る。
(勝手にショッピングサイトになってるな)

そうじゃないとsessionの中にゴミ文字列やゴミオブジェクトがたくさん浮いてるイメージが・・・
261257:02/03/06 17:36
>>258=260 ,259
レスありがとー!とりあえず、できました(ソース乗っけてもらってるからw)
なんで、getParameterはValues で、こっちは配列定義でOKなんだぁ・・・と言い訳。

CartBern・・・やっぱり、サーブレット&JSPはBernをつかってなんぼですか?
session覚えたから、これでごまかしながら行こうと思ってたんだけど・・・

List Map もあわせて調べてみます。ありがとうです。
262259:02/03/06 19:41
>>260
俺もSessionはなるべく纏めて格納している。

>>259でListとかMapを薦めたのは、
使い勝手等から配列よりも良いんじゃない?ってこと。
俺は配列をほとんど使わないよ。
263デフォルトの名無しさん:02/03/07 00:25
>>252

stateless sessionです。
methodは、getData : 独自クラスA
独自クラスAはリストを持っています。

また、独自クラスBというのがあって、
その独自クラスAのリストの中に独自クラスBがいくつか入っています。

EJB-Clientから独自クラスBを参照しに行くと、
java.lang.LinkageErrorとなります。

神様教えてください。
264デフォルトの名無しさん:02/03/07 10:06
age
>>255
> jspでJavaBeansを使う場合で、
> <jsp:setProperty name="XXX" property="xxx" valie=<%=val%>>
> とした場合、<%=val%>に値が設定されていない(<%=val%>の値が"")場合
> set〜の処理が実行されないのは仕様なのでしょうか?
仕様です.Sun から落せる JSP の仕様書 p.75
If a parameter has a value of "", the corresponding property is not modified.
266255:02/03/07 14:54
>>265
thanks
267ららら:02/03/07 21:33
各クライアントにある画像をサーバーのDBに格納するのは
サーブレットでどのような処理を書けばよろしいのでしょうか?
(自分の個人情報をサーバーへ登録する場合にローカルにおいてある
自分の一番カッコイイ画像も一緒に送るような事です)
269ららら:02/03/07 21:51
>>268
ありがとうございます。
感謝
>>263
ttp://appserver.borland.co.jp/samples/sources/EnumPlay.zip
これでもダメであれば(deep)cloneやSerializeなどを使用して強引に
MA^SYA-RINGしリフレクションでクライアントから再構築する。

>>java.lang.LinkageErrorとなります。
ここで疑問なのだがLinkageErrorは依存関係にあるclassで互換性が
失われている場合に発生するはずなので、ClientのBとServerのBに
関係するファイルを全て再コンパイルしてみるのもアリ。
まぁ空間が異なる可能性が高いのでダメ鴨。。by神.と書いてあるrefact。
271デフォルトの名無しさん:02/03/08 01:13
フレームクラスからそれに関連付けられた
ドキュメントかビューのポインタを手に入れる方法を
教えてください。
272デフォルトの名無しさん:02/03/08 04:04
JSPでのBeanのscopeが理解できません・・・。
<jsp:useBean name="testBean" scope="session" ... />

scopeがrequestの場合は、そのJSPが呼ばれる度にそのBeanがインスタンス化されるんですよね?
pageの場合は、そのJPSの初めの一回目の呼び出しの際にだけインスタンス化される。
ここまで合ってますでしょうか?
それじゃ、sessionの時はどうなるのでしょうか?
あるクライアントのセッションオブジェクトに、そのBeanのインスタンスがあれば何もせずに、
もしなければ、そのBeanをインスタンス化して、そのオブジェクトをそのクライアントのセッションオブジェクトに
入れる(バインドする)んでしょうか?

ん〜、難しい・・・。

273デフォルトの名無しさん:02/03/08 09:57
>>272
コア・サーブレット&JSPのP285-P286を読め
274デフォルトの名無しさん:02/03/08 11:22
>>236

そういえば、さらに幅0のフレームきっておいて、そつちにフォーム作って、
元のフレームのリストボックスに仕込んだJavaScriptでその隠しフレームに
パラメタを書き込んで、さらにポストして、結果を取得して、隠しフレーム
のonloadでJavascriptを使って元のフレームのリストボックスを書き換えた
ことがある。IE専用だっけ?
275デフォルトの名無しさん:02/03/08 14:30
>>274
板違い
それにまず自分でやってみること。
それでかつ、できない、わからないことを書くべし。
276デフォルトの名無しさん:02/03/08 14:40
>>275
あんたのほうがオカシクナイカ
「隠しフレーム」やら「javascript 連動」でgoogleとサンプルが出てくるよん
278デフォルトの名無しさん:02/03/09 03:55
windows版のresinで、エラー画面が文字化けするんだけどこれどうにかならないかな?
別にエラーなんて英語でいいんだが、どの環境変数を設定すればいいやら・・・。
>>278
表示エンコードをEUCにして、リロード。
でだめかな?
280デフォルトの名無しさん:02/03/12 16:26
Windows2000+Apache1.3.2+Tomcat4.0.3+Servlet+JSP
で作っているのですが、ServletからJSPへ転送、JSPが
クライアントに転送する時に、HTMLが途中で切れちゃいます。
(画面表示が半端なところで終わる)
何か設定を間違えているのでしょうか?
転送するHTMLはちょっと長めですが・・・
OutputStreamをflashしてないとか。
282280:02/03/12 18:45
解決しました。
jspで使うBeansの名前を間違えていて、ありえない
Stringの添字を指定していました・・・
jspをServletに変換されたのを見て分かりました。
>>278
sun/tools/javac/resources/javac_ja.propertiesを抜き取ったtools.jarを作ると(・∀・)イイ感じ
284デフォルトの名無しさん:02/03/13 10:01
サーブレットのメリットってなんですか?
全部JSPで作ればいいのに。って思うのですが逝ってよしですか?
285デフォルトの名無しさん:02/03/13 10:06
>>284
MVCを意識しないのであれば、JSPだけでもよし。
まあ、好きにしろ。
>>270

Facadeを使うといいらしいとあったので、
やってみたらうまくいきました。
どうもありがとうございました。
287デフォルトの名無しさん:02/03/13 22:16
サーブレットでmidiを生成したいのだけど、
sound APIってサーブレットで使えますか?
>>287
つかえません。
残念(・∀・)デシタ!
289デフォルトの名無しさん:02/03/14 17:17
スレ違いかもしれないけど教えてください。
JSPでJDBCにSQLでアクセスしたいのですが
教えてもらえないでしょうか?とりあえず、見れるだけで結構です。
サーブレットの記述はイパーイあったのですがJSPが見つかりません。
>>289
ServletだろうがJSPだろうがJDBCでアクセスする分にはかわらんだろ。
291デフォルトの名無しさん:02/03/14 23:11
289>>
jajakartaのTaglibsを使うという手もある。
>>290
その通りですね…全文を<% %>で囲めばよかったんだ…鬱だ

>>291
jakartaなら入ってますがそれで使えますか?

はぁ…いつになったら答える側に回れるのだろう…
293291:02/03/15 23:01
jakrtaのtaglibsをダウンロードしてあれば良い。
詳しくは
ttp://jakarta.apache.org/taglibs/index.html
ここを見て。

ちなみにこんなふうにできるらしい。

<table>
<sql:statement id="stmt1" conn="conn1">

<sql:query>
select id, name, description from test_books
order by 1
</sql:query>

<%-- loop through the rows of your query --%>
<sql:resultSet id="rset2">
<tr>
<td><sql:getColumn position="1"/></td>
<td><sql:getColumn position="2"/></td>
<td><sql:getColumn position="3"/>
<%-- print out a comment if the book has no description --%>
<sql:wasNull>[no description]</sql:wasNull></td>
</tr>
</sql:resultSet>

</sql:statement>
</table>
294デフォルトの名無しさん:02/03/15 23:54
>>292

>jakartaなら入ってますが

は? 使ってるものはちゃんと把握しようよ。

295デフォルトの名無しさん:02/03/16 23:19
Servlet/JSPでJTAを利用するのは邪道なんですか?
JTA利用したかったらEJBを使うしか無いんでしょうか?
296デフォルトの名無しさん:02/03/16 23:38
スレ違いですまん。
Sun Tech Day初日のBOFで初めて原田洋子氏を見た。今までこの人が
Servletのスペシャリストだと思っていたのが馬鹿馬鹿しくなってし
まった。。。。
297 :02/03/16 23:41
>>296
なんで馬鹿馬鹿しくなったの?

1)女子中学生だった
2)男だった
3)ロボットだった。
298デフォルトの名無しさん:02/03/16 23:49
>>296
あのBOFは単に司会やってただけだろ。良いも悪いもねぇな。

>女子中学生だった
たしかに小さいな。飯喰ってのか。

299デフォルトの名無しさん:02/03/17 21:41
Servletとかで利用するファイル名(例えばログ)とかを取得するにはどうすれば良いでしょうか?
JNDIで取得するってのは大袈裟ですか?

>>296
原田洋子氏って綺麗な方なんじゃないんすか?
HPや本でお世話になっているんで褒めとく。
300デフォルトの名無しさん:02/03/18 01:47
initParameterで取るようにしたら?
TomcatならJNDIも組み込まれてるからお手軽でしょ。

俺は洋子タンハァハァだが何か?
301デフォルトの名無しさん:02/03/18 02:11
原田洋子はスーパーエンジニアでもなんでもないよね。
正直、俺でも勝てると思う。(何をもって「勝つ」というのかは置いといて)

でも、丁寧に調べてきちんと文章で説明できるという点はさすがだ。

我々が有難がってる洋モノの技術書籍の筆者も、案外あういうタイプの
人なのかも、という気がするよ。テクニカルライティング得意っていう。
302 :02/03/18 02:24
まさしくJAVA信者!
Sun TechDaysねたはここでやってくれ。

http://pc.2ch.net/test/read.cgi/tech/1015396269/l50
304デフォルトの名無しさん:02/03/18 17:35
<,>&などをエスケープしようと思います。
どこにいれたらいいでしょうか?

1.フィルターを使う
2.request.getParameter〜で受け取った後、無条件に行う
3.カスタムタグとして、表示する際タグで変換して表示させる

1.と2.は処理は基本的にあまり変らないと考えている。
変換前の文字で処理したいケースがあると不向き
2.はbean化すればコーディングは楽か
3.タグでくくるのがめんどう(といっちゃいかんと思う)

みなさんどうしてます。
305デフォルトの名無しさん:02/03/19 11:10
このコードでエラーになってしまいました。
Iterator i_ = (Iterator)request__.getAttributeNames();
Enumerationを素直に使った方がいいんでしょうか?
(リファレンスを見ると、Iteratorを使えとあったので)
それ以前の間違いかもしれません・・・よろしくお願いします。
306305:02/03/19 11:20
ネタでした。
305です。306は私ではありません。
ネタじゃないです。初心者なので、びしっと
指摘して頂ければ・・・・・
308ばけらった:02/03/19 12:11
サーブレットでHTMLとして日本語を出力すると化けてしまいます。
???じゃなく、・M・・ソL みたいな感じです。
対策として
res.setContentType("text/html; charset=Shift-sjis");
out = new PrintStream(res.getOutputStream());
out.println("<META HTTP-EQUIV=\"Content-Type\"CONTENT=\"text/html; charset=x-sjis\">");
を入れたのですが、効果無しです。
どないしたらいいでしょうか?対象はIE5以上のみ。でOKです。
宜しくお願いします。
309デフォルトの名無しさん:02/03/19 12:29
>>308

文字コードについて勉強が足りない。

Shift-sjis ってなに?
x-sjis も古い。

ちゃんと Shift_JIS と書け。
310デフォルトの名無しさん:02/03/19 13:20
>>304
構築しているシステム(プログラム)にもよるのではないでしょうか?
たとえば、HTMLのFormから取得した情報を、DBに入れるのなら(DBによりますが)
シングルクオートや、ダブルクオートをエスケープしないとやばいと思います。
そうしないとDBの情報を全て消去されてしまう可能性もありますからね。

DBに入れないのなら、3の方法でもOKかもしれませんが。

いま、もう1回304を読み直したのですが、エスケープするのは<,>&だけなんですか?
DBとか全く関係ない話ならすみましぇん・・・。

311ばけらった:02/03/19 13:25
書き直してみました。
public class indexS extends HttpServlet{
 public void doGet(HttpServletRequest req, HttpServletResponse res)
  throws IOException,ServletException{
   PrintStream out;
   res.setContentType("text/html; charset=Shift_JIS");
   out = new PrintStream(res.getOutputStream());
   out.println("<html><head>");
   out.println("<META HTTP-EQUIV=\"Content-Type\"CONTENT=\"text/html; charset=Shift_JIS\">");
   out.println("<title>Test Servlet</title></head>");
   out.println("<body><h1>サーブレット</h1>");
   out.println("<p>This text came from a servlet.</p>");
   out.println("</body></html>");
   out.flush();
   }
}
結果
・オ。シ・ヨ・・テ・ネ
This text came from a servlet

どこをどうしたらいいのでせうか…
312デフォルトの名無しさん:02/03/19 14:17
>>310

基本的にパラメータで渡ってきたデータを表示することを前提と
しているので、DBに格納するなど変換しない(別の変換が必要な
場合)1,2,はだめですね。

Web開発では基本的なことなのですが、どうなんでしょう。
313デフォルトの名無しさん:02/03/19 14:40
>>311
>結果
>・オ。シ・ヨ・・テ・ネ

・オ。シ・エ・・テ・ネ
こうだろっ
314デフォルトの名無しさん:02/03/19 15:33
>>313
ワラタ さすがageるだけあるね。
・イ。ッ・テ・・ヨ・シ
315デフォルトの名無しさん:02/03/19 17:02
>>304
MVCの観点から考え直した方が後々楽だぞ
>311
そのソースもちろんSJISで書いてるんだよな?
317デフォルトの名無しさん:02/03/20 00:45
>305
Iteratorには以下のコードしかありません。(全角見栄い表示)
public interface Iterator {
 boolean hasNext();
 Object next();
 void  remove();
}
そして(Iterator)request.getAttributeNames();
というキャストは無条件で失敗します。
>>Enumerationを素直に使った方がいいんでしょうか?
恐らくIteratorを使うほうが良いと書いてあったのはIteratorが
CollectionFrameworkで提供されているからだろうと思います。
が、残念なことにServletRequestにIteratorを返すことは出来ません。
何故このような構造になっているかはHashtableというデータ構造に
おけるデータの順序付けと同期処理が関わっています。(ふぇいるふぁすと)
#ちなみに速度と歴史的な事情も。

318デフォルトの名無しさん:02/03/20 02:47
>>278
亀レスなんだが、
sun/tools/javac/resources/javac_ja.properties
これって何を司っているプロパティなのでしょう?
取り除いちゃって平気なものなの?
アホだらけ(;´Д`)
320デフォルトの名無しさん:02/03/20 04:34
>311
風間さんのページを検索できなかったお前は、APIのWriterとStreamの記述を行ったり来たりの無限地獄の刑に処す。

と、思ったんだけど今、googleで「servlet 文字化け」で検索したら、意外と上位に出てこないのね。
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html

1番めにヒットしたのが
http://hp.vector.co.jp/authors/VA022666/java/tips/servlet_char_code.html
なんだけど、これ、最近の環境だと「間違い」の方が正しいソースじゃないかい?
321311:02/03/20 13:31
>>316
モチロンソウヨ

>>320
間違ってる方があってるの?????
322311:02/03/20 13:40
>>320
できたYO! 間違ってるほうでできた! さんきゅぅ〜!
このあとDBとの絡みがあって、そこでも文字化けで泣くんだろうな…
323デフォルトの名無しさん:02/03/20 14:28
>>316
MVCの観点から考えたらどうなるの?
モデルでそうゆうメソッドを提供し、ビュー側のbeanでそれを使う。
こんな感じ?
324デフォルトの名無しさん:02/03/23 23:40
J2EEパターンを使うと処理主体で、手続き言語(構造化PG)っぽくなりませんか?

前処理→主処理→ビジネスロジック→DBアクセス→後処理って感じで。

只の理解不足かな。
>>324
そう、OO で設計するのは実は結構難しい。
まぁ無理じゃないし、OO でやったほうが柔軟性や拡張性なんかが
高くなるな。作り手に相応の力が必要なんで、烏合の衆集めて
使い捨てアプリ作る SI は OO に向いてないかもな。
326デフォルトの名無しさん:02/03/24 01:08
>>324

インタフェースに向かってプログラミングしないからでは。
>>311
実行時には、Javaクラスファイル内部の文字リテラルは全てUnicodeに
内部で置換されてる。シフトJISじゃないよ。
だから、シフトJISの日本語としてストリームから出力したいなら、
エンコードしなきゃダメ。
シフトJISにエンコードを行うOutputStreamWriterで、ストリームを
ラップすれ。
328324:02/03/24 02:18
>>326
J2EEパターンに従うと型が決まっているだけに
インタフェースが後から付いて来るような設計になってしまうんですよ。
修行不足ですね・・・
>>328

J2EEパターンてよくわからんが、そんな流れに従った実装を強制しているのか?
Sunって巷の業務系プログラマをずいぶんとバカにしてんだなあ。(多分マクロ
な視点で見れば、往々にして正しい評価なんだろうけどね…)

その「前処理」とか「主処理」とかいってる全ての処理にたいして、パラメータと
クライアントのIDでスイッチするStrategyパターンを適用するとかすれば、少しは
かっこよくならへんかな?関数ポインタジャンプテーブルのOOP的実装方法つうことで。
330印刷関係:02/03/25 15:40
ちくしょー
PDFつかって印刷作戦が全然わからないです。
TEXも調べてみたが…

なんか、簡単にコードを書けばいいってモノでもなさそうな印象なのですが
どういった手順を踏めばよいのでしょうか?
言語の本にもありゃしないし 参りました。

現在DBからデータを取ってきてJSPに渡すサーブレットと、それを受け取りTHMLとして加工出力するJSPが
動いております。
この最終的なHTMLをどのマシンでも変わらず綺麗に印刷したいのでございます。

ご教授宜しくお願いします
331デフォルトの名無しさん:02/03/25 19:52
サーブレットからJSP、
<jsp:include page="/servlet/hoge" />
JSPからサーブレットを
String headerurl = "/jsp/hoge.jsp";
ServletContext context = getServletConfig().getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher(headerurl);
dispatcher.include(req,res);

インクルードすると文字が化けてしまいます。
インクルードする文字エンコードはどこで設定したらよいのですか?
XML-FO
333デフォルトの名無しさん:02/03/25 21:12
自宅のpcでjavaの勉強したいんだけど、win98SEにtomcatインストール
してservlet&JSPが動く環境ってつくれますか?
>>333はい、出来ます
335デフォルトの名無しさん:02/03/25 23:41
>>331

<%@ page contentType="text/html; charset=EUC-JP" %>

とか?
337デフォルトの名無しさん:02/03/28 03:38
サーバー側で、
FOPでPDFを生成して、ストリームでクライアントに流しています。
このPDFにAcrobatのJavascriptを埋め込めという無謀な仕様があります。
100%不可能だとおもうのですが何かご存知の方おりませんか?
>>329
Pattern というのはそれに従うという発想になった時点で
窮屈なものになる。J2EE Pattern に限った話ではない。
328 が無批判にパターンを利用しているのが問題。

http://developer.java.sun.com/developer/technicalArticles/J2EE/patterns/
339デフォルトの名無しさん:02/03/28 03:47
>>330

クラス1個実装するだけで、
PDF生成されるFWを俺は持っているYO。
ちなみに、XSL-FO準拠。
340デフォルトの名無しさん:02/03/28 04:46
Servletで、session.setAttribute("test",test_instance);は、
JSPで<jsp:useBean id="test" scope="session" ... >みたいに取り出せますよね?

それじゃ、JSPでのビーン使用時のscope="application"で取り出すときには、
Servletでは、何にオブジェクトを格納すればよいのでしょうか?
341デフォルトの名無しさん:02/03/28 06:24
ServletContext
>>338
>Pattern というのはそれに従うという発想になった時点で窮屈なものになる。
これってあくまでも「型」についての一般論じゃない?

Patternってのは、設計をする場合に開発者間で
共通の認識を持つために使用するもの。
「Patternに従う」と決めたら、それに従わないと意味が無い。
窮屈になるというのはPatternが適合してない為なのでは?
343デフォルトの名無しさん:02/03/28 11:04
あー、漏れも悪名他界ある会社のPDF生成ツールでいろいろやったよ。
さらにJSP(このときはwebsphereだったが)からjavascriptよんでやってたな。
だから、100%可能であると思う。
でも高い気がした。w(漏れはかね払ってないが。)
つーかエディタにプロテクトがかけてあったぞ。ww。FDで。
344デフォルトの名無しさん:02/03/28 11:09
すいません、まさに初心者な質問なのですが
String[] hoge = req.getParameterValues("Hoge"); //fromで入力されてくる
int hoge_length = hoge.length;
この文ってどこに問題がありますか?
両方コンパイルとおって、一行目のみの時はOK(この後のprint文でHTMLが生成される)なのですが
2行目を入れてコンパイルして実行するとエラー(プラウザ真っ白)になってしまいます。
サーブレットで、IE5で見てます。
345デフォルトの名無しさん:02/03/28 11:18
>>343

>さらにJSP(このときはwebsphereだったが)からjavascript

これは、Acrobat製のPDFに埋め込むjavascriptのことでしょうか?
346デフォルトの名無しさん:02/03/28 11:49
>345
うん。なんか計算するやつ埋め込んでた。簡単なやつだったけどね。
(JSP(HTML)から「も」デフォルトパラメタ渡してたけどね。と言う意味。)

あ、そうじゃなくて、javascriptをJavaで生成して埋め込むってやつか。あ、それはやってなかったか・・・ゴメソ
347338:02/03/28 12:54
>>Patternが適合してない為なのでは?
ごもっともでした。
Pattern の選択がまずかった ということで。

348初心者@エラー:02/03/28 14:49
Error: 405
Location: /なんちゃら/servlet/なんちゃら
HTTP method GET is not supported by this URL
コンパイルまでは終了していて、いざブラウザで表示しようとすると
上記のようなメッセージが出て、その後なんど見直しても原因が分からず
結局嫌になって削除したファイルが10を超えました。

このメッセージがどういう過失があった時に表示されるのか知りたいです。googleで検索してもヒットしません。
>>344
hogeがnullだったらどうなる?
350344:02/03/28 16:53
>>349
null だったら・・・0が入ったりしませんか・・・?
今のところ
String[] hoge = req.getParameterValues("Hoge"); //fromで入力されてくる
int hoge_length = new int;
hoge_length = hoge.length;
ってしたら問題なくできてしまったんですけど、根本的なところが解かってないですよね?私ってば。

>>348
たぶん、単に初めにdoPostで定義してるのに
送るほうはGetを使ってるか、
そのページってどこかからデータ付きで(fromとか)飛んでくるページじゃない?
だから、単体で実行してもデータがねーよってエラーかどっちかだと思う。

351344:02/03/28 16:56
>>384
なんか解かりにくかったのでもう一回。
データを複数取得するのに、
public void doGet(HttpServletRequest req, HttpServletResponse res )
          ↑ここがPostじゃないから。だと思われ。私も>>344程度の質問する初心者なので確信は無しですが…
352デフォルトの名無しさん:02/03/29 00:01
>>351
未来にレスするたぁ、ただモンぢぁないね? アンタ。
353デフォルトの名無しさん:02/04/01 11:28
JSPの質問てここでもいいんでしょうか?

Beanで渡されたオブジェクトを更にBeanで処理することって出来るのでしょうか?
<jsp:useBean id = "hogehoge" class = "hoge.HogeHoge" scope = "request" />
<jsp:useBean id = "foofoo" class = "hoge.FooFoo" scope = "request" />

と渡された物を
<%
hogehoge(foofoo);

%>
と渡してやることは可能なんでしょうか?
そんなことやる人居ない?
354353:02/04/01 11:29
しまった
hogehoge(foofoo); -> hogehoge.hoge(foofoo);

でした。
>>354

やってみたら?

jsp:useBean は new するのと同じなんだから
出来るんじゃない?
356 :02/04/01 21:39
WebLogic6なんだが、使うServletはすべて、
web.xmlの<servlet>に記述する必要があるの?
tomcatとかoracleiASだとパスさえあっていれば、
classesやlibに入れるだけですんだのだけど・・・。
どうなの?
357デフォルトの名無しさん:02/04/01 21:42
age
358デフォルトの名無しさん:02/04/01 22:28
>356
WebLogic6のサーブレットサーブレットの使い方
はFAQに乗ってるよ
>>330
素直にPDF作るライブラリ買ってもらったほうがいいと思われ。
漏れもWebSphere+>>343の製品で開発したが、すげー楽だったぞ。
まあ、高いのはとても高いが。
悪いことは言わないのでTeXは忘れなさい。
>>359
ありがとう。
なんかこのままだと、プラウザをそのまま印刷するのに落ち着きそう…
フォント指定してあげればそれなりに綺麗だなと言うことで…
かなーり消極的ですが、余裕があったらPDFライブラリ購入を考えてみます。
予算くれるかな… Texは忘れる前に覚えられなかったw
361デフォルトの名無しさん:02/04/02 16:52
>>360
それは良かった。
改ページとかしない場合は、それでも良いかも。

PDF印刷はFOPを使う方法が、
インプレスの プロフェッショナルJSP下 上級編を読むと詳しく載ってるよ。
XML + XSLT -> FO -> PDF
という手順を踏む。
日本語で20ページくらいのPDFを生成したことがあるが、特に問題はなかったよ。

あと、ServletからXMLを吐き出して(CSVでも良いけどね)、
ExcelにWSHを使ってマップさせるという方法も使った。
生成負荷の多くがクライアントに移行でき、メンテナンスもしやすいという点ではおすすめかも。
>>361
>XML + XSLT -> FO -> PDF
XSLTを編集するソフトが少なくて高価という記憶があるんだが、
便利なソフトでもあるの?

Excelに吐くならJCom経由で出力する手もある。
しかし、Serverに負荷が掛かるので中小規模向き。
質問です。
Strutsってなんと読むのですか??
j2eeの用語ってよくわからんのが多いですTT
>>363
すとらっつ
じゃないの??
>>363
普通の英単語だし、J2EE用語というわけでもないが?
366デフォルトの名無しさん:02/04/04 18:08
ResultSetが戻り値のメソッドを作って
汎用性のあるDB接続クラスを作ろうと考えています。

しかし、ResultSetを戻り値にすると、
close()するタイミングが分かりません。
SQLを実行してResultSetに値が格納されるメソッドが終了すると
ResultSetも解放されてしまうのでしょうか?
そうなると、戻り値にしているResultSetも値無しになってしまうんでしょうか?
367 :02/04/05 19:19
>>362
>XSLTを編集するソフトが少なくて高価という記憶があるんだが、
>便利なソフトでもあるの?

そのとおり
おかげで 難しくて面倒くさい XSL-FO をメモ帳で描くという悪行三昧中。
368デフォルトの名無しさん:02/04/07 21:29
>>366
そういう時はVector か 配列に入れて渡してるけど、
それじゃダメか?
369デフォルトの名無しさん:02/04/08 01:14
>>366
そうやって汎用性をいろいろ考えていくと、EntityBeanになるわけだ。
素直に配列かCollection/Listに入れて返しましょう。
>368,369

どうもありがとうございました。
素直に配列使います。

EntityBeanについて詳しくないのですが、その点も調べてみます。
>>370
EntityBeanは大げさじゃねーか?
リフレクションでテーブルに対応するクラスのインスタンスを生成するようにでもしとけばいいだろ。
372デフォルトの名無しさん:02/04/08 17:06
質問が2個あります。
1.strutsをvisualage for JAVAのテスト環境で使うにはどう設定すればいいのでしょうか?
(web.xmlの代わり?っぽいdefaultapp.webapp)でtldのuriを指定しても、ダメです。

2.getterメソッドを呼ぶとき渡し値に、string型は使えないのでしょうか?
ex)
<bean:write name="attributes" property="hogehoge['key_value']" />
(ちなみにkey_valueがint型のgetterは呼べます。)
373age:02/04/11 13:22
age
374デフォルトの名無しさん:02/04/11 14:26
>>373
あほ
375デフォルトの名無しさん:02/04/11 14:29
>>371

>>361 の人って、テーブルのこと言ってんの?
データベースそのものなんじゃないの? MySQLとOracleを扱えるとか・・・。

違うのかなぁ?
どうなの? >>361 の人。
376デフォルトの名無しさん:02/04/11 17:13
Servletの利用できる無料Webスペースをご存知の方いませんか?
たしか、あったよ。
でも、ごめん、名前覚えてない。
WebProg板で誰かがリンク貼ってた。
役に立たんでごめんな。
378376:02/04/11 21:43
>>377
ありがと。ここに2つほど載ってたよ。
http://www.cityfujisawa.ne.jp/~shino/IT/soap/
379デフォルトの名無しさん:02/04/14 19:22
FreeBSDのサーバーでサーブレットを動かしている人いませんか?
380デフォルトの名無しさん:02/04/15 02:09
あげ
381デフォルトの名無しさん:02/04/15 23:16
こんばんわ。
Tomcat3.3.1に付属のサーブレットサンプルですが、表示部分が軒並み
「?????」に文字化けしてしまいます(日本語ではなく半角英文字も)。
(http://localhost:8080/examples/servlets/index.htmlから
アクセスできるサンプルです)

Tomcat3.3からはクライアントの文字コード設定をserver.xmlでできると
いうことで、別のディレクトリには文字コードの設定をしたのですが、
examplesにも同様に設定が必要なのでしょうか。

どなたかご存知の方いらっしゃいましたらどうかご教授ください。
382デフォルトの名無しさん:02/04/15 23:33
すみません、381ですが補足です。
どうもPropertiesファイルから読み込んでいる文字列だけが
化けているようです。
3.3aではどのサンプルも問題なく動いていたのですが・・・。
383デフォルトの名無しさん:02/04/16 00:19
381です・・度々すみません。

Tomcat3.3.1から国際化用のPropertiesファイルに日本語ロケール用のもの
(LocalString_ja.Properties)が追加されているようで、その中身がUnicode
で書かれていました。
これを普通の日本語文字列に修正して再度サーブレットを動かしたところ、
正常に表示されるようになりました。

これは単にPropertiesファイルを編集しなおせばいい、というだけのこと
なのでしょうか?それともPropertiesファイルはそのままでも、Tomcatの
設定を直すことで解決する方法もあるのでしょうか。

どなたかご存知の方、いらっしゃいましたらご指導下さい。
>>383
「普通の日本語文字列」って、どのエンコードなのよ?
385デフォルトの名無しさん:02/04/16 08:30
>>384
すみません、Shift_JISです。
>>382
native2ascii
387デフォルトの名無しさん:02/04/16 19:50
>>343 >>359
それって、翼の SVF ?
>>387
もし翼SVFなら頷ける。
あれで困ってるプロジェクトはよく聞くな。
結局のところ「Heap食いすぎなんじゃゴルァ!」に集約されるからだが

微妙にスレ違いなのでsageておく。
389デフォルトの名無しさん:02/04/18 00:39
サーブレットてUNIXで運営できるよね?
apacheとの共存はどうなってるの?
>>389
できるよ。というかアプリケーションサーバのほとんどが Apache に
対応してるんじゃない? Tomcat, IBM WebSphere, iPlanet ...
基本的に静的なコンテンツは Apache に、動的なコンテンツはサーブレットに、
という感じ (静的なコンテンツの扱いなら Apache の方がパフォーマンスも
オーバーヘッドの少ないので)。
391デフォルトの名無しさん:02/04/18 22:19
いいね!すごいよ390さん!あたまいい!
じゃあFreeBSDにapacheとTomcatでやりたいです。
以前はperlのcgiのみだったので・・
ちなみに390さんはどのようにされてるんですか?
390ではないが。
先ずは本家のドキュメントを嫁。とっかかりには充分。
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/java-tomcat/index.html
393デフォルトの名無しさん:02/04/19 00:25
ネタ?
>391
>じゃあFreeBSDにapacheとTomcatでやりたいです。
>以前はperlのcgiのみだったので・・

以前よりパフォーマンスが落ちると思われ。
395デフォルトの名無しさん:02/04/19 23:16
なんで?
396デフォルトの名無しさん:02/04/21 23:07
わからん。
Javaは激遅。コレ定説。
>397
ActivePerlだったらJavaより早いかもしれんが、
391は見た感じ普通(?)のPerlっぽいから速度は上がるんじゃないか?
CGIを起動しなくても良い分Javaサーブレットの方が高速というのは
一応の一般的な認識だよ。

つーか、基本はシステムの大きさや機能によって使い分けるべきもんだからね。
場合によっては速かったり遅かったり、いろいろさ。
399 :02/04/22 22:29
素のJavaServletは結構速いよ。
400デフォルトの名無しさん:02/04/22 22:47
素とは?
401デフォルトの名無しさん:02/04/22 23:28
activeperlって普通のperlで書いたcgiをUPして
実行させるのとは別なのですか?
>>400
ビジネスロジックをずらずらと書いてあるようなやつのことじゃない?

>>401
ネタ?

つか、JavaServletっていう言い方するのね。
そういやServletの語源って何?
>402

「〜let」で「小さな○○」みたいな意味があるらしい。(うろ覚え)
アプリケーションより、簡単で小さい→Applet
サーバーよりも簡単で小さい→Servlet

ここで言う「簡単で小さい」というのは機能ではなく、
Appletの場合、ブラウザがあるから実装部分が簡単で小さくて済む。
Servletの場合、コンテナがあるから実装部分が簡単で小さくて済むということ。

言い方が下手だな・・・
つまり、ベースとなる動作環境(ブラウザやコンテナ)上で動く
モジュールという意味になるんだけど・・・

スマソ。文章書くの上手な奴、代わりに解説してくれ!
>>403
いやその説明で十分わかり易いと思うが
405403:02/04/24 11:25
いや、俺が言いたいのはこんなんじゃないんだ・・・
406デフォルトの名無しさん:02/04/24 19:28
へたれ?
407402:02/04/24 19:40
>>403
なんとなく分かった。
サンキュ
>>403
Server-side Application -> Server-side Applet -> Servlet
という感じか?
Applivation + let -> (縮めて) Applet
Server-side + let -> (縮めて) Servlet
って感じ?
410409:02/04/25 04:21
あ… まぁいいや。
411403:02/04/25 09:39
>408

409のつもりだったんだが、
言われてみると408かも・・・と思う。

Application→Applet
Server→Servlet

と認識しているが、訳して考えてみるとちょっと変かもな・・・
412デフォルトの名無しさん:02/04/25 20:32
スミマセン
active perlってなんですか?
初期の Servlet が Server-side Applet と呼ばれていたのを知ってる人は居ないのか…
どうでもいいが Active Perl + Namazu でインデックス作ると CPU 100% の状態で数十分
張り付くぞ。あれが速いとは到底思えんしスケーラビリティに不安アリ。
415デフォルトの名無しさん:02/04/28 22:05
tomcat再起動するのダルイ…
もっとまともな開発環境ないでしょうか
>>415
reloadable=true
417415:02/04/28 22:13
>>416 してますけど反応がトロイくて思わず再起動してしまいます
418DBの検索結果:02/04/29 09:28
新規の質問です。
DBからデータを検索してきて、
その結果(ResultSetオブジェクト)をいったんセッションに保存するって
あり?
1ページの表示件数が10件として、10件以上あった場合に「次の10件」が
表示され、それをクリックするともう1回DBへアクセスしないで
そのセッションからデータを取ってくる感じなんだけど。
(セッションからとったほうが確かに早い)

みなさん、どんなやり方してんのかな?

>>418
1件分をHashTableに格納。
それを件数分Vectorにつっこむ。
そのVectorをSessionにsetAttribute。

ってやってる。
420デフォルトの名無しさん:02/04/29 10:34
>>415
「tomcat再起動するのダルイ… 」
Tomcat再起動する場面ってどんなときですか?
これ、あおりじゃないです
マジで聞いてます
>>420
Webアプリのインストールとかクラスの再ロードとかじゃないの?
422デフォルトの名無しさん:02/04/29 12:20
>>418
くそ(Javaを知らなさすぎ)

>>419
あほ(答えになってない)
423418:02/04/29 13:50
やっぱり。
おかげで件数が多いと、初回のアクセスが激遅で,
OutOfMemoryエラーになっちゃうし。
うーん、どうやるのが一番いいんだろう。
教えて
>>422
424デフォルトの名無しさん:02/04/29 14:22
>>423

データベースから少しづつ取り出しゃいいだろ ボーケー
>>418
ResultSetは
・Serializableではない
・Connectionおよびカーソルを開いたままでないと使えない
ので、HttpSessionに保持するのは論外。

まさに418のような目的のためにRowSetインタフェースが存在するので、
利用できるなら、使うと良い。
CachedRowSetで検索してみ。
>>420
開発中の再ロードだろうね。
そもそも再ロードが遅くてだるいとかいうほどClassの入れ替えしなきゃいけない
やり方に疑問を感じるのだが。
427418:02/04/29 22:29
>>425
そうですよねなんかおかしいと思っていました。で今日、本屋にいって
JDBCに関する本をあさったところ、おっしゃるとおりRowSetの話が
載ってたのでこれだと思いました。
神→425
428デフォルトの名無しさん:02/04/29 23:26
>>427
RowSet使えるDBってすくなくない?
429420:02/04/30 00:01
Tomcatの再起動の話だが・・・
web.xmlに書いてあるクラスを頻繁に変えるからじゃないのか?
テスト部分だけソース(クラス)分けてそこだけ
入れ替えたり再コンパイルすりゃあいいんじゃないの?
まあ、>>426と同じ意見だと思うが・・・

>>428
おれJDBC2.0つかってるので知らなかったが
RowSetってAPI見たらJDK1.4(JDBC3.0)から
実装されてる見たいだな
そんな新機能の説明が載っている>>427の見た本を教えてほしい
>>429
同意
俺はDB2がメインなんだけどまだDB2のJDBCドライバは
RowSetをサポートしてない。
というかJDBC3.0フルサポートしているJDBCドライバってあるの??
431デフォルトの名無しさん:02/04/30 00:18
>>430
JDBC2.0だって、フルサポートしているのなんて無いと思うが。

RowSetは、JDBC 2.0 Optional Packageに入っているよね?
432429:02/04/30 00:19
>>430
どうなんだろうね
一応調べてみたらこんなベンダーがあるみたいよ
http://industry.java.sun.com/products/jdbc/drivers
(ここで検索条件入力してね、RowSetのところチェック入れてね)
433429:02/04/30 00:24
おれは、MySQLつかってるがやっぱりまだ
「Your query returned no results. Please try again.」
みたいだ(泣
DB2もないみたい・・・
434418:02/04/30 00:38
oracle8のjdbcドライバはサポートしているみたいだ。
OracleRowsetCacheクラスがある。
がしかし、1つの表しか参照できんて
書いてるあるので、表の結合はつかえないのかな。
がーん。さっそくテストしてみよう。
435418:02/04/30 00:46
>>429
もうだいぶ前の本になるが、今日みてきた限りにはJDBCについて
これよりいいのはみたことがない。
http://direct.idg.co.jp/detail_2.msp?id=355&class=20003&n=2
(JDBCに関する本はあんましないしね。)
436デフォルトの名無しさん:02/04/30 01:02
取りあえずRowSetのEarlyAccess versionは
http://developer.java.sun.com/developer/earlyAccess/
で落とせるよ。

JDBCTM RowSet The three JDBCTM RowSet implementations in this release
demonstrate some of the many possibilities for implementing the
javax.sql.RowSet interface, which is part of the JDBC 2.0 Optional Package
API. (June 30, 2000)

437デフォルトの名無しさん:02/04/30 01:46
ここにいる人たちは
J2EEはやってるんですか?
サーブレット&JSPで出来ないことって
やっぱりあるんでしょうか
J2EEの必要性について教えてほしいです
438デフォルトの名無しさん:02/04/30 02:18
>>437
Servlet/JSPはJ2EEの一部だけど・・・
EJBのことを言いたいの?
439デフォルトの名無しさん:02/04/30 02:39
俺もよく混同しちゃうよ。
J2EEとJDKの関係も正直なところ説明できない・・・

JDK→J2EE、J2SE、J2MEの3種類あると思ってるが間違い?
440デフォルトの名無しさん:02/04/30 03:28
>>438
すまん、そゆことです
441デフォルトの名無しさん:02/04/30 03:45
>>439
> JDK→J2EE、J2SE、J2MEの3種類あると思ってるが間違い?
J2SEのSDKとかJ2EEのSDKがあるということでは。
上のじゃよくわからんね。
要はJ2SE/J2EE/J2MEとかはAPIの集合で、その開発キットがJDKということかな。
443デフォルトの名無しさん:02/04/30 04:44
>>440
そうですか。んー、でもEJBは使ってないなー。
なぜかというと、
・Servletでいいや
・よくわからん
・遅そう
という感じ。
444440:02/04/30 07:23
EJBコンテナとサーブレットコンテナ
ってどういう風に違うのかな?
J2EEの規格は
EJB、JSP、Servlet、J2EEConnector、JavaMessageService
JavaTransactionAPI、JavaTransactionService、JavaMail
だが、この中でEJBコンテナじゃないと動かないものは
どれなんでしょうか?
おれがEJBコンテナの機能でちょこっと知っているのは
デプロイ機能ぐらいだが他に便利なのありますでしょうか?
445デフォルトの名無しさん:02/04/30 08:13
>>444

EJB
446デフォルトの名無しさん:02/04/30 08:49
>>444

デプロイ機能はサーブレットコンテナもあるですよ
447デフォルトの名無しさん:02/04/30 13:21
EJBは必要か?
448デフォルトの名無しさん:02/04/30 14:14
EJBの必要性ねぇ
・複雑なトランザクション管理
・スケーラビリティの確保
・生産性の向上
位か?
まぁEJBって使ったことないからよくわからんがなー
>>448

>・生産性の向上

これ、向上するか?経験者の実体験希望
450448:02/04/30 14:46
実際に業務で使ったことはないけど
ちょっと勉強がてらCMPを作ってみたんだけど
ごりごりSQL書くのとかConnectionのプーリングとか
(これはEJBとはあんまり関係ないかAPサーバの機能だね)
その辺のことを考えると生産性が上がるかなーって思ってみたりした。
実際の業務だとCMPなんてつかわなそうだよなぁ・・・ボソ
SQLExeptionだ
クソッたれがあああああああああああああああああ
452デフォルトの名無しさん:02/04/30 16:03
J2EEってどこで手に入るんですか?
やっぱり有料なんですよね?
453デフォルトの名無しさん:02/04/30 16:06
454デフォルトの名無しさん:02/04/30 16:49
誰か教えてくれ。EJBのCMPではJOINできないんか?本当にできないんか?
ジョイ〜ン
456デフォルトの名無しさん:02/04/30 22:36
Apache + resin + windows2000使っているんですが、
FileWriter()を使うとどのファイルでも書き込めてしまうんですが(CドライブにあるファイルやDドライブにあるファイル)
現在D:/server/bbs/file.jspにおいてあるんですが/server以降のディレクトリにある
ファイルしか書き込めないように設定する方法はどうすればよいでしょうか。。。。
Apacheの設定とかでしょうか?
Resin 八苦して自前の SecurityManager 組み込め。
つうか Resin ってセキュリティポリシーファイル使えないの?
458デフォルトの名無しさん:02/04/30 22:55
>>430
JDBC3.0で新設されたメソッドなどを実装しようにも
RDBMS側にその機能が無い場合には、すべてをフルにはサポートできないっス。

MySQLで実装できそうなら、実装しても良いよ。
http://www.t3-jpn.com/jdbc/jdbcmysql.html
459458:02/05/02 14:10
>>433
少し考えてみました。
RowSetの実装クラスを作成したとして、
RowSet.setDataSourceName(String name);
を呼んで、その後に 実装クラスが JNDIでlookupすることになると思います。
ここで、Context ctx = new InitialContext(); というコードを書くことなる
のですが、WebLogicのように new InitialContext(Hashtable prop); という
呼び出し方が必要な場合にはどうしたらいいんですかね? RowSetに足りない
メソッドは余分に実装する必要がありそうですね。
460デフォルトの名無しさん:02/05/04 03:24
サーブレットって、クライアントから接続するときに
プロトコルはなにになるのでしょうか?
cgiのようにhttpやhttpsになるのでしょうか?


私は、設置自体はUNIXのサーバーにしたいのですが、
プログラムの作成とテストは家でやりたいので
家のwindows一台でサーブレットをうごかしながら
作りたいとおもいます。
このばあい、windowsからUNIXにプログラムを移した
ときに、ほとんど書き換えずにうごくのでしょうか?
>>460
普通は HTTP で HTTPd やサーブレットコンテナがサポートしていれば
HTTPS も OK です。ファイルパスをハードコーディングしないなどの
基本的な事さえ守れば Unix と Windows の両方で動かせます (違う
DB を使いたいということになると面倒かも)。
462デフォルトの名無しさん:02/05/04 03:38
>>461
なるほど、ありがとうございます。

当方は、携帯電話のiアプリから接続する予定なので、
httpもしくはhttpsでないと困るところでした、
最終的にはapacheとサーブレットをあげて運営したいです。

サーブレットにも数種類ありますが、それは
本ではどれでも同じプログラムが動くと
書いてあったので、がんばります
サーブレットってどのくらい勉強したらできるようになるの?
>>463
そういう質問をしなくなったら。
サーブレットじゃなくてもいいけど、
cgiみたいにファイルを置いて動くようになるjavaの
やつはないの?
>>430
>>433
javax.sql.RowSet を実装してみました。
http://www.t3-jpn.com/jdbc/jdbcmysql.html
>>465
CGIがお好みなら、CGIでJavaアプリケーション動かしたら?
468デフォルトの名無しさん:02/05/04 23:14
>>465

ぼくちゃんにあたらちい言葉をおちえてあげるよ。ジェイエチュピーでちゅ。
469465:02/05/04 23:26
>>468
どうもありがとうございます
JSPがそれにあたるのですね?調べてみます
470デフォルトの名無しさん:02/05/05 11:53
Tomcatスレに誤爆してしまった…。
すんません、こっちで聞かせて下さい。

Realm とかって、Context毎に設定するけど
基本的には「一つのContext = 一つのWEBアプリ」なの?
>>466センキュウ、使ってみます
472471:02/05/05 14:04
>>466
なぜかチョイ遅く感じるのだが・・・
気のせいかな?
また、マニュアルには
Class.forName("gwe.sql.gweMysqlDriver");
って書いてあるけど
Class.forName("gwe.sql.gweMysql");
で、動いた。
473デフォルトの名無しさん:02/05/05 14:12
サーブレットってiアプリと通信できるの?
できる
475デフォルトの名無しさん:02/05/05 16:38
>>472
どこらへんが遅い?
JNDI使ってDataSource取って来ているところ?

たしかに gwe.sql.gweMysql というクラスもあるけど、
なんで動くのかしら... (^^;
476デフォルトの名無しさん:02/05/05 17:08
>>472
Serailize可能にするために、オリジナルのResultSetからいったん結果
を取り出して、RowSet内に保存しなおしているからかな...
477472:02/05/07 16:16
>>475>>476
遅いっていうのは俺の勘違いかもしれない
実はCachedRowSetをとりあえず試したんだけど
俺の扱っているデータベースのデータって
結構大きいんです。CachedRowSetはメモリ上に保存するタイプなので
大規模なデータには向いてないらしい(Ref:JDBC2.0APIリファレンス&サンプル翔泳社
どこまでが大きいのかわかんないけど、普通の規模(?)のデータなら快適でした
あと、俺のレスも遅いわな(w

データの変更を行った後に一括で更新できるのは
かなり強力ですな。
コードの記述もかなりすっきりするし・・・
シリアライズとかは(本質的な使い方じゃないかもしれないけど)
簡単なログ出力に使ってます
478472:02/05/07 16:17
age忘れ
479デフォルトの名無しさん:02/05/08 10:41
JSPからServletOutputStream経由でバイナリーファイルを出力したいんですが
ファイルの末尾に改行コードが出力されます。
改行コードを取り除く方法がありましたら教えて下さい。
480479:02/05/08 12:01
原因がわかりました

<%@ page 〜 %>
<% ファイル出力 %>

としていましたが、最初の<%@ page 〜 %>がまずかったようです。
この行を外したら上手くいきました。

ご伝授ありがとうございました>>481
どういたしまして。
482デフォルトの名無しさん:02/05/08 14:41
基本的なことで申し訳ないんですが、TOMCAT3.3.1+ JDK1.3 + Xalanで
XSLTを処理したらどうも応答が返ってこなくて。

コンソールではエラーが出まくっているんで、TOMCATのエラーログを
参照しようとしたんですが、/logs/ には exampleが2個と
jasper-YYMMDD.log と、mod_jk.log、servlet-YYMMDD.logにtomcat.pid
しかありません。一通り見たのですがエラーログではなさそうです。

一体エラーは何処へ・・・。
server.xml はLogSetterを確認してLogEventsをtrueにしてあります。
483age:02/05/09 02:19
最強Javaアプリケーション鯖、開発環境を教えてくれ。
俺自身は社会人なりたてのPG暦1ヶ月なんだけど、会社の人とJAVAで
ウェブアプリを作って、一般公開しようと思ってる。
一応、数万人くらいのユーザの面倒はみたい。メインとなる機能は
ビジネスロジックがほとんどで、処理はメールの加工になると思う。
まぁ、最近の出会い系サイトの要求される機能と似てると思ってほしい。
使ったことがない?ないなら、詳しく説明いたします。
携帯電話向けだし(w あと、携帯のキャリア別にグラフ画像を吐き出したい。

予算は20万(アプリケーションサーバ、DB、OSなど)くらいまでは
使ってもいいと思ってるんだけど、まぁ、DB、OSは20万じゃ買えないか(w

Linux + Tomcat + PostgreSQL のフリーでもいいとおもってるんだけど、
何か問題になることってある?お勧めの開発環境とか・・・
この場合だと、かけるとしたら、開発環境くらいだけどね。
開発環境はいいやつを使いたいなぁ。

それか、WebObjectsってのに注目してる。これはどうよ?

ただ、本番運用にPostgreSQLはちと不安(メンテなど)だから、安い
DBがあればなぁ。そんなんないか・・・

何をするかって、いえないんだけど、かなり面白いと思うので、
結構実現したくてたまらないのよ。

みなさま、お知恵を下さいませ。
RS/6000 に WebSphere + DB2 で一億円コース... と思ったら予算 20 万か...
ユーザ割れ覚悟で DB2 開発者版 (Win/Linux/OS2/AIX/Solaris/HP-UX全揃い)
4,500 円って手もあるけど...
>>483
問題の自己解決能力を持たない人がソフトウェア開発、他人への
サービス提供を行うのは難しい。もっと精進しなさいってこった(w
>>483
>俺自身は社会人なりたてのPG暦1ヶ月なんだけど、会社の人とJAVAで
>ウェブアプリを作って、一般公開しようと思ってる。
>一応、数万人くらいのユーザの面倒はみたい。

やめとけば?
漏れも、やめとけに1票
一言。やめとけ。
ここの人たちはやさしいからちゃんとアドバイスしてくれてる。
やめといたほうがいいというのは本音。

おれは、まだ学生だが、ネットワーク管理暦3年、PG暦2年
あるサービス提供暦1年でそのサービスのユーザーは2マン近くいるが、
つきの収入はサボって10マン程度。時間をかけてサーバーを
増やせば100マンとかいくんだろうが。

キミは会社に入りつつ会社の先輩?と何かを立ち上げようとしてるんだね。
よっぽどヒマな会社なのかな?普通そっち系の会社って残業多くて
忙しいと思うのだが・・・
そんな状況でやろうとは無謀。

PG暦1ヶ月の人が理解できるサービスってたかが知れてると思うんだけど、
もしくは実現までに時間がかかる。
そもそもDBの差ぐらい会社の人たちがくわしいと思うが・・・
何かをやろうというときに、2chに頼ってる時点で先が思いやられる。
金儲けをやりたいなら、やってるうちに、会社で普通に働いたほうが
いいや、ってことになるからやめとけ。

「だいたい、何をやりたいも教えないやつにアドバイスなんかできない。」

サーバーとかは会社にあるの?ドメインも?そっちもかねかかるんだよ?

ドメインは、世界0安い〜 で取得、継続し、
サーバーはさくらネットの安いプランでおいてIPもらい、
LINUX+Apache+Tomcat+PostgreSQL+JBuilder6(商用利用でなければ)

で安く済ませていいんじゃね―の?PostgreSQLはユーザー情報登録
位なら問題なく使えるよ。 じゃ。
489デフォルトの名無しさん:02/05/09 10:25
>488
>サーバーとかは会社にあるの?ドメインも?そっちもかねかかるんだよ?

さすがにそれくらいは判ってるだろ。調子乗りすぎだよ。
そこまでバカにすると483の立場が無いだろう。
それと、なんで会社が関係してくるの?

ってか、学生のくせにタレ過ぎ。
あんた、JNBのサーバーでも観たことあるかい?

>あるサービス提供暦1年でそのサービスのユーザーは2マン近くいるが、
>つきの収入はサボって10マン程度。時間をかけてサーバーを
>増やせば100マンとかいくんだろうが。

ハ?
それはあんたの場合で、利益の話なんてケースbyケースだろう。
マネジメントの事を聞いてるんじゃないよ。

あんたが経験した世界がすべてじゃないよ。
もっと経験積みな。

で、>483よ
辞めといた方が良いと思うよ。
勉強にはなるんだろうけどな。
勉強だけに止めとくのは?
LINUX+Apache+Tomcat+PostgreSQL+JBuilder6
自称出来る学生ってよくこんな感じの組み合わせだよね。
悪いって言うわけじゃないけど、
これ以外知らないんじゃって感じがする。
491デフォルトの名無しさん:02/05/09 10:33
おれは、483は遊びでやるって話だと思ったんだけど、ちがうのか?
492489:02/05/09 10:34
>490
学生さんゆえに、エンタープライズ系に触れる機会が少ないからねぇ。
でも、そーゆー知識が社会に出てから役に立つからええんじゃないかい?
493489:02/05/09 10:36
遊びとか勉強なら数万人ものユーザーをサポートするのは難しいじゃないかい?
>数万人くらいのユーザの面倒はみたい

てか、集まるのかね?
495デフォルトの名無しさん:02/05/09 11:11
最近、安直にケータイ系向けWebサービス立ち上げようっていう素人が多いけど、
みんなの言うとおり、>>483は、やめといたほうが良いと思われ。
Linux + Tomcat + PostgreSQLはイニシャルコストが安く済むかもしれないが、
商売ベースで使うなら、相当のスキルが必要。
ここで聞いてるようじゃ、運用までいかないか、トラブって地獄を見るぞ。
スキル無いのに商売でやるなら、App鯖もDB鯖も商用使うべきだろうな。
もちろん、スキルがあっても安心を金で買う企業は多いけど。

漏れもWebアプリ開発に従事してもう6年くらいになるけど、フリーの製品は
まず使わない。趣味レベルでは、使ってるけどね。
496483:02/05/09 12:19
色々とレスがついてありがとうございます。
私として、これがやりたくて、この業界にきたわけで、100%やります。っていうか
やらないわけにはいかない。だから大企業も蹴ったのに。
特許申請中のアイデアだし、自身は一応あります。
ただ、金儲けをするつもりは全くありません。
サーバはたてたことあるし、ドメインもとったことあるよ。
無料のサービスで行う予定だし、遊びの要素が強いから、ユーザ情報うんぬんかんぬん
はトラブルにはならない。というか、無料で誓約書にトラブルが起こってもっ感じだ。

要は、アイデアを具現化したいのよ。
自分ひとりでも使えたらまず、OK
それをみんなにも使ってもらったらもっといいなって程度だし。

開発は、Java経験はほとんどないようですが、PG暦10年・3年の先輩と一緒に
開発するので、技術的にはあまり問題にはならないと思います。
497デフォルトの名無しさん:02/05/09 12:29
>開発は、Java経験はほとんどないようですが、PG暦10年・3年の先輩と一緒に
>開発するので、技術的にはあまり問題にはならないと思います。

それが本当なら、大問題だと思うが。
きちんとマネジメントするスキルのある人間がいないだろ。
開発ってのは、モノ作りが全てじゃないからな。8:2の法則って知ってるか?
PGだけじゃ、厨房開発しかできねぇから、特許なんて夢のまた夢だぞ。安直すぎるな。
まぁ、苦労してみなよ。特許は得られないかもしれないが、得難い経験は得られるだろう。
まー、Studyも兼ねてってことじゃないの?
なんでここに質問したのか理解しかねるが、まあ、がんばりやー。
失敗してもいい経験になるだろう。
ユーザーは大迷惑だが。
500デフォルトの名無しさん:02/05/09 12:57
Studyを兼ねたモノで特許取ろうっていう神経に感服だ(ワラ
何年も研究を重ねたモノですら、なかなか特許は取れないんだよね。
新興ベンチャーにありがちだよね。
盲目的に自分のアイデアをすばらしいと思いこんで、いろんな意味での実装が
伴わないのに突っ走るケース。いくつかそんな現場を経験したな・・・(遠い目)
火消し役も役に立たない場合がほとんど。
すべて、失敗に終わってるね(w
結果を報告希望
503デフォルトの名無しさん:02/05/09 15:00
質問よろしくお願いします。
tomcatを使っているのですが、tomcatの再起動とかを
Webブラウザからボタン一つで実行することは可能でしょうか?
知識不足で申し訳ないのですが、
javaクラスからシェルスクリプトを呼び出すということでいいんですよね?
分かる方どうかアフォな質問だと思わずに教えてください。
よろしくお願いします。
サーバーにアクセスした人
みんなが再起動させられるのか?
そりゃタイヘンだ
>>503
それは設計として間違ってる。
sshで繋いでrebootだろ。
頻繁にリブートが必要なのはそもそも
公開してはいけないんだよ。
506503 じゃないけど:02/05/09 15:22
アクセス制限してもだめですか?
507503:02/05/09 15:35
すいません、おかしくてもいいのでそのやり方を教えていただけませんか。
javaのProcessクラスを使うので正しいのでしょうか?
なんか比較的、簡単にできるのかなと思って、とりあえず普通にjavaクラスから
実行してみたのですが、cannot execute というExceptionが
でてしまいます。

String cmd[] = {"/hoge/TOMCAT_TOP/jaka.../bin/", "shutdown.sh"};
Process proc_ = Runtime.getRuntime().exec(cmd);

これって全然おかしいのでしょうか?
どなたかご教授よろしくお願いします。
Tomcat 上で動いてる Servlet から Tomcat をどうこうするなんてできるの?
509デフォルトの名無しさん:02/05/09 15:47
要するに、リモートでパソコンいじれればいいってことだよな?
だったら、ここで聞くな。Linuxに行こう
510デフォルトの名無しさん:02/05/09 15:48
>>509
違うだろ。
>>509
いやそうだ、
Webブラウザから・・とか言ってる時点で
そういうことがしたいと思われる
>>503-508の話の流れからしてもそうだ
>>503 が聞きたいのは >>507
単にリモートで管理したいだけなら、こんなとこ書かないだろ。
Tomcat から子プロセスを起動して Tomcat を殺す場合、Tomcat が死んだ
とたんに子プロセスも死んでしまう。まぁ大丈夫かもしれんがなんか不安が
残るので、俺は Tomcat のリスタートを Apache 側の CGI でやっている。
515デフォルトの名無しさん:02/05/09 16:08
>>512

いや、違う。

条件に、"Webブラウザからボタン一つで実行することは可能でしょうか? "ってあるから、
SSHとかLinuxとか関係ない。
507の方法でいけるはず。 
でも、そのシェルスクリプトのパーミッションとかは気を付けないとダメです。
俺が言ってるのは、最終的に何がやりたいのかを考えただけだ
それじゃ意味ないだろ。方法を問題にしてるんだから。
518503:02/05/09 16:16
なんかいろいろとわたくしめの曖昧な発言のせいでいろいろと
考えていただいて申し訳なく、またありがとうございます。

私は、515さんの回答に最も近いことを望んでいます。
とりあえずこれが全く間違っていないようだったので安心しました。
cannot executeて出てるんですが、パーミッションも問題ないんですよね。
一体なんなんだろう、もう少し自分で考えてみます。
どうもありがとうございました。

ところで、なんかみなさんの知識の広さに驚きなんですけど、
(SSHなんて過去に一度きいたことがあるな、という程度でした)
みなさん、仕事でこういうことやっておられるのですか?
趣味?私は学生で勉強のためです。
じゃ、>>508の問題はどうなるの?
総合的に考えてプログラムの呼び出し方法わかっても
やりたいことは解決できないよな
それを、教えるのはいかんのか?

ちなみに、プログラム呼び出しだけの話ならこの方法↓で呼び出せるがな

ttp://www.gimlay.org/~javafaq/S103.html
telnetログインしてkillkillkillkillkill
すでに SSH が出てるのに telnet ですか。
522デフォルトの名無しさん:02/05/09 17:42
>>507みたいな事って出来るんですか?
>>508と同じように思ってます。

>>514の方法が最も正しいように思うのですが・・・
>>514のCGI使った方法がベストだと思うZO!
Tomcatの子プロセスを使ったんでは、タイミングによって落ちるときと
落ちないときがあるんじゃないかな。
SoftwareDisign か JavaPress か忘れたけど、Tomcat のセキュリティ関連の
設定で、そんなようなこと制御できるとかできないとか読んだ気がする。
525483:02/05/09 22:41
なんで、そんなに消極的?なんかなぁ。
個人のホームページ・メルマガでも結構なアクセス・ユーザ集めてるとこいっぱいあるやん。
そっちが、静的なのたいして、動的なコンテンツってことだけだぞ?
金儲けを目指してるわけでもないし。

結果は報告してもいいが、みんな覚えてないだろうなぁ。
半年以上はかかるだろうし。
で、お勧めの開発環境とか、AP鯖はないのかなぁ?
DBに金かけたほうがいいと思うんだが、みんなはどう思う?
つーか、やりたきゃ勝手にやれよ。
開発環境?まずはその辺から拾ってきたのを使えば良いんじゃない?
>>525
実績のある開発環境やアプ鯖は、ちょっと調べればすぐにたどり着くはずだ。
最初から他力本願だと、開発中に行き詰まるぞ。精進せい。

あと、DBに金をかけるのは結構だが、DB導入に金をかけるよりも、
DBの設計に金をかけろ。最重要ポイントだ。
PGごときに思いつきでDB設計させると、後で痛い目を見るぞ。
ここだけは外注してもいいから、きちんと設計しろ。
528デフォルトの名無しさん:02/05/09 22:50
消極的なんじゃなくて、あまりに言ってることが厨だから、
みんな呆れているんだと思われ。
商用のアプリケーションサーバやDB使えるほど予算無いじゃん。
運用ライセンスにいったい幾ら掛かると思ってるんだろう。
金が無い分頭使わなきゃ。
20万ねえ・・・。
やぱしフリーのでやるしかない気がするけどね。

>DBの設計に金をかけろ。最重要ポイントだ。
>>527に激しく同意。
それにしても>>525ってなんかバランス悪そう。
>それにしても>>525ってなんかバランス悪そう。

ビジネスのアイデアはきっと、いいものを持ってるのかもしれない。
(彼は、そう思いこんでるだけかもしれんが、この際どうでもいい)
それを実装に持っていくところの知識が無いんだな。聞きかじり程度で。

きっと、設計とか仕様書とか書かずに、ラフに画面決めとかやってすぐ、
エイヤでゴリゴリ作り始めて、後でビジネスに展開できずに泣くという、
王道パターン(藁)の可能性が高いな。

サイトの仕様をキッチリキメて、必要なビジネスフローや、
アクセスするユーザーの行動まで綿密に想定・分析しないと、
DBも設計できねぇしな。
ここをいい加減にやって泣いてるSIって、結構多いんだよね。大手でも。
>個人のホームページ・メルマガでも結構なアクセス・ユーザ集めてるとこいっぱいあるやん。
>そっちが、静的なのたいして、動的なコンテンツってことだけだぞ?

ケータイ系に動的コンテンツ?
どこでもやってることだよね。珍しくない。
つーか、今時、静的コンテンツなんて、ショボイ企業か、個人のサイトくらいなもんだろ。


>半年以上はかかるだろうし。

半年くらいでまともなサイトが動けば、万々歳だと思うよ。
甘く見ない方が良いね。
ちゃんと事前に情報収集と、開発のプランニングしなよ。
モノ作って、はい完成!ってわけにはいかないからね。
533483:02/05/10 02:10
>531
確かに、作って終わりとは思ってない。
っていうか、実際に使ってみないと(メールのアプリなので)わからない部分が多い。

今までにやってないような、アイデアのアプリだとやりながら、
改良できるような、設計にできないかなって考えているが、甘いかなぁ。
だからこその、オブジェクト指向だと勘違い?してるだけか?

設計とかは、確かに自分の能力はダメダメだと思う。
ただ、やってみないとスキルはつかないと思うし、アプリ実現もできないじゃない?
ちなみに、開発はWebObjects+PostgreSQLでしようと思ってます。

>DBの設計に金をかけろ。最重要ポイントだ。
それは、なんとなく感じてた。しかし、PGだと出来ないものなん?
PG10年もやってる人は、そういうスキルを持っている気がするのだが・・・

バランス悪そう・・・か。まぁ、俺の場合は目的の途中にプログラムが
あったので、必要に迫られてなったような所があるんだなぁ。
学生時代、数学は得意な方だったけど、ロジカルにあまり考えて
なかったのか、プログラミングは向いていないかもしれない。

ただ、完成させたい思いだけは、人一倍あると思ってる。
>>533
WebObjectsはよく知らん。
責任感はありそうだから、とりあえずがんばれ。
ユーザと会社に迷惑かけんようにな。
>>534
むしろ >>533 は開発者よりシス企の方が向いてると思われ
> PG10年もやってる人は、そういうスキルを持っている気がするのだが・・・

一緒にやる先輩が PG 歴 10 年じゃなかったっけ?
話してないのかい?
537483:02/05/10 02:26
えっと、一番要の部分の仕様が固まってないので、出来ないといわれました^^
ログイン画面から、登録、利用の際の変更部分などのHTMLは渡したのですが、
画面なんぞは、すぐできるから、ビジネスロジックが固まらないとダメとのこと。

>534
がんばるぜ。かげながら応援してくれ(w
シス企って?まぁ、将来の希望は企画。なるための、王道はないだろうが。
なんか、全然 Servlet Q&A スレじゃないね

とか、言ってみる。
539483:02/05/10 02:33
スマソ。激しくスレ違い?ってかんじですか。

まぁ、お勧め開発環境を知りたくて(w
540416:02/05/10 02:49
>ログイン画面から、登録、利用の際の変更部分などのHTMLは渡したのですが、
>画面なんぞは、すぐできるから、ビジネスロジックが固まらないとダメとのこと。
あたりまえすぎる・・ htmlなんぞ渡しておこられなかったか?
優しい先輩だな。俺だったら張り倒してる(w
駆け出しPGなら出来ることは限られるだろうに。
企画目指すんならその先輩をもっと巻き込んで、いろいろ引き出してみては?
中途半端にHTMLとか渡してもあんまり意味ない気がするが。
542416:02/05/10 03:10
>>489
たしかにあなたの言うとおりです。
JNBのサーバーどんな感じでしたか?
結構興味があるので、教えてください。
でも、結論は同じでよかった・・

>>
おれの場合、パートナーと2人でやってる。
俺も少しはプログラム書くし、サーバー管理もできるけど
そのパートナーに比べたら全然ヘタレ。技術力は
ほとんど劣ってる。でも、俺が居たからここまで成長した
といってくれる。HPのデザイン、企画、セキュリティーホールの指摘、
新機能の提案、思いつかなかった方法など、いろいろ重要な
ことがある。と。
ちょっと変更しただけで収入が2倍になったこともあった。
それ以来、収入の変化や企画の結果を予想して行動するようになった。
俺がマネジメント性がすごいとかを言いたいのじゃなくて、
1週間かけてプログラムをバージョンアップしても、
5分でhtmlを書き換えたときの利益のほうが多いこともあるほど、
君の言ってることが大事だってこと。


>>490
確かにそうだね・・
ただ、おれはLINUXキライなんで
UNIXは違うものをつかってます
他も違うけど

>>492
どうもです、そんな感じですね
私の場合会社の2次試験の時点で内定がでて
就職活動が楽勝でした

>>525
>なんで、そんなに消極的?なんかなぁ
こういうのやったことある?
まず、社会人が集まって無利益で・・・ってのがキツくないかな
俺の場合、安全な方法で収入をみこしてたからいまはウハウハなんだけど、
友人のチームがフリーでゲームを作って・・・ってやってるんだけど
やはり長くつづかないみたい。そいつら学生で、今度就職するから
さらにきつくなりそう。学生ですらそれなのに、忙しい社会人が
満足できるのかな?なんか目的があるなら別だけど・・
思うんだけど会社の人は何を開発してるの?PG暦10年もの
人がいるのになぜここで聞かなきゃいかないの?
543483:02/05/10 03:11
できることは、本当に限られてるなぁ。Javascirptは得意だけど(w
まぁ、HTMLを渡したのはイメージしてるサイトはこんな感じという
雰囲気をつかんでもらいたかったから渡したんだ。
だから、怒られてないよ

明日は会社か、何気に5月病気味、、、
しかし、肝心な部分は自分で1からSPI作るような感じだ。
あーやらないといけないこといっぱいだ。(会社ではちゃんと仕事頑張ってますよ)
544416:02/05/10 03:13
>あーやらないといけないこといっぱいだ。(
この辺がつらいときはつらくなってくるゼ。
20万くらい使えるつーても、半年間3人のPGに払う給料考えると400万以上か。
普通に人件費計算したら1000万どこじゃないね
547名もなき社員:02/05/10 07:48
>>416
本当に学生?
そりゃ2次で受かるだろうなぁ
学部?院?どのくらいかおしえて

うちもそのくらいの人が受けてくれればなぁ・・・
あの・・・>>416って俺なんすけど
WebObjects+PostgreSQLか・・・
WebObjectsをまともに使いこなすには、下記のスキルを基本的に持ってる必要があるぞ。

(1) 英語のドキュメントを読みこなせる
(2) 何か、他のAP鯖使ったことある
(3) オブジェクト指向での設計、プログラミング、テスト、デバッグなんかの経験がある
(4) RDBMSとSQLは当たり前に使える
(5) Web, HTTP, HTMLに関する基本的な仕組みが理解できている

WebObjectsって、経験者には天国のような環境だが、未経験者には地獄の環境。
これらのスキル無しに始めるなら、相当腹をくくれよ。
> PG10年もやってる人は、そういうスキルを持っている気がするのだが・・・

まだそんなこともコンセンサス取ってないのか。。。
禿しくダメダメだな(w

誰が何をどこまでできるのかってことを、始める前に確認しろよ。
なし崩し的に始まると、「話が違うよ」ってことになる。
551デフォルトの名無しさん:02/05/10 10:44
PGでも数種類いるんだよね。

- 与えられた詳細仕様に忠実にコードを書くことしかできない最下層PG
- 詳細仕様くらいは自分で作れるが、基本仕様は作れない中層PG
- 仕様は全て作れて、実装もできる上層PG
- SEやマネージャークラスのスキルも持っているが、現場のモノ作りが好きな最上層PG

10年選手のPGが、中層以下のPGだと、間違いなくデスマーチに突入だな。
与えられた詳細仕様に忠実にコードを書くことさえできないPG

追加せよ
553デフォルトの名無しさん:02/05/10 10:56
>>552
禿シクワラタ
554416:02/05/10 11:27
>552
それはPGと呼ばないよ。(w

>483
WebObjなんて使うメリットが見当たらないが・・・
何故もう少し敷居が低いTOMCATではいけないのか?

>489
ここでいくら言っても信じてもらえないと思うが、
JNBのサーバーは規模の割には驚くくらいへぼいよ。
意外だろ?
つまり世の中、まだまだ知らない事がたくさんあるって事を言いたかっただけなのさ。
言い方が大人げ無くてスマソ。

>547
416の言ってる内容にあんまり学生かどうかは関係ないんじゃない?
単に出来る奴には本能的に携わっている能力で
出来ない奴には根本的に欠けている能力なんだろう。と思ふ。
555デフォルトの名無しさん:02/05/10 14:42
デスマーチage
>555
君はデスマーチャー?
デスマーチャント
558デフォルトの名無しさん:02/05/10 15:24
デスマーチャントダイジングage
デスママ-チチ
デスマーチスト
デスママン
(;´д` ママン...
ママン ダイド.... Maman died...
564デフォルトの名無しさん:02/05/10 23:30
なんでみんな居ないの?
おまえが居るから
566デフォルトの名無しさん:02/05/10 23:43
だれかわかるの?
あ、こいつ見えないんだw なるほど
568483:02/05/11 00:25
色々とわかりました。
とりあえず、Tomcat + PostgreSQL + Linuxでいきます。
精神的な面?も色々と言ってくれて、まだまだやる気がたりんことを
認識しましたです。

人生始まったばっかりだ、萎えることもあるかもしれんが、がんばろ。
>>483
見てると憐れになってくるのだが、「何が」したいのだ?
動的コンテンツといっているところの「コンテンツ」はなんだ?
それが先輩の言うところのビジネスロジックだと思うが。

たぶん、足らないのはやる気ではなくて目的だと思う。
その辺の主婦がメディアのあおりで使い道のないPCを買うのに似てる。
> とりあえず、Tomcat + PostgreSQL + Linuxでいきます。

ころころ変わりますなぁ。
>>483
技術の利用を目的にするな。
その上で、目的をはっきりさせて、それを実現するための道具として、技術をとらえよ。
10人中10人が苦労している世界だ。
正当な苦労をせよ。
いつか、その経験が生かされる日がくることを祈る。
572デフォルトの名無しさん:02/05/11 01:31
>>569

>動的コンテンツといっているところの「コンテンツ」はなんだ?
>それが先輩の言うところのビジネスロジックだと思うが。

なんで動的コンテンツがビジネスロジックなんだよ。 アホかぁ。

実現させるための道具としてなら、COBOLという解答も有り得る。
Web/DBを使ったシステムというとServlet、という発想は安易かもね。
PHPもあれば、PerlやPython、Cという選択肢もあるか。

>>573
よく知らないんだけど、COBOLでCGIとか作れるの?
>>574
そうだよな、ServletやJSP, EJB使うよりも、PHPやPerl使った方が
遙かに効率がいいケースもある。
576416じゃなかった・・・:02/05/11 08:37
>>568
>とりあえず、Tomcat + PostgreSQL + Linuxでいきます。
結局ヘタレセットになったのか・・・

>>569
>その辺の主婦がメディアのあおりで使い道のないPCを買うのに似てる
この表現すごくうまいね・・
確かにこのとおりだ・・
なにがやりたいんだろうね。かくしてるんだけど、
どうせ鯖たててメールを通じて匿名でゲームができるとか
その辺なんじゃないのかな?

>>571
>いつか、その経験が生かされる日がくることを祈る。
そうだね。たぶん、ちゃんとやればきっと生かされると思う
568が1人でやるならぜったいソッコーざせつするだろうけど
他の先輩がいるからどこまでつづくかな
577 :02/05/11 09:42
ヘタレか? むしろ苦学セットな気がするけど。
>>576
Tomcat + PostgreSQL + Linux は問答無用でヘタレセットなんですか?
579 :02/05/11 10:23
>>578
問答無用で茨の道です (多分)。
まよわず逝けよ
逝けばわかるさ
ありがとう
>574 COBOL
適材適所を言いたかっただけよ。
サーブレットからIIOPで通信してる先がEJBじゃなくて、COBOLで書かれた
ビジネスロジックってのもありでしょ。
582569:02/05/11 13:24
動的コンテンツ=ビジネスロジックといいたかったわけではなく、
動的コンテンツとか呼んでいるもので、何を扱いたいのか(何を見せたいのか)が
ビジネスロジックにつながるのだといいたかったのだが
言葉が激しく足らんかったスマソ。
>Web/DBを使ったシステムというとServlet、という発想は安易かもね。
「安易」?
そういういい加減なこと言って、通ぶってるつもり?

>PHPもあれば、PerlやPython、Cという選択肢もあるか。
Javaのスレに書いてるのに
質問者が「PerlやPython、C」なんて考えてないと思うが・・・
相手がPHP知らないことに優越感を感じる人ですか?

>そうだよな、ServletやJSP, EJB使うよりも、PHPやPerl使った方が
>遙かに効率がいいケースもある。
どんなケースか説明して欲しい。
そのまえにおまえの言う効率ってどの部分の話?

>結局ヘタレセットになったのか・・・
と、自信もって言うのなら
おまえが考えるセットって何よ?
それを書く勇気も無いのに強気なこというなよ

>>483よ、このように2chはいい加減な人が多いので
気をつけるように。
大体コイツ等、自分より下を相手するのが面白いらしく
難しい質問になると急におとなしくするんだよな
笑えるぜ



>>583
おまえ厨房臭いよ?
>>584
シッタカ、一人目発見
自作自演が乱れ飛ぶ混沌のスレ
587デフォルトの名無しさん:02/05/11 19:32
仕事でやってる奴はこの中でどれだけいるんだ?
588デフォルトの名無しさん:02/05/11 19:52
>>587

587人中(当然ダブってるが)、い〜とこ50人くらいじゃない?
589587:02/05/11 22:16
オレは仕事でやってる。ちなみにAPサーバはWebSphereだ。
590573:02/05/11 22:40
俺はWebLogicとWebSphereやってました。
プログラム書くよりアプリケーションサーバ毎のデプロイが大変だ。
591574:02/05/11 23:53
>>583
すまん。何に対して怒っているのかよく分からん。
Webアプリ作ってるものならたいていPHP知ってると思うけど。
あとケースの話だが、習得のスピード考えるならPHPの方が早いんじゃないか?

Web+DBならJSP/Servletという選択肢しかない、という判断の方が
よっぽどいい加減だと思うけどな。


>>587
業務でやってる。WebSphere。
漏れは業務でWebObjects。
なんかWeb Sphereが多いな。
シェアナンバー1のWebLogicいいぞ。
俺も業務でWebSphere使ってる。

>>593
シェアってなんか公平なデータある? 日本とUSじゃちがったはず
シェアNo1だと、いろいろと安心感や多くの情報があっていいけど、
やっぱり業務的に効率が落ちたりするのは願いsage。
EJB使った開発って、やっぱり効率良いとはいえない。
そんな俺もWebObjects。
マイナーツールだなぁ・・・・
>>594
WebLogicは、アプリケーションサーバの第一人者だから、少なくとも最近まではシェアNo.1は間違いないと思うよ。
WebSphereなんて3.5ぐらいでやっとまともになった程度でしょ。使ってるけどね。
WAS4.0で仕様もJ2EE1.2準拠になったし、夏に出るらしい5.0に期待かな。
597483:02/05/12 23:17
PHPはしっとる、というか軽くやってたぞ?
まぁ、いまやっとるのが、ASPだし、PHPはそんなにかわらんしなぁ。
そもそも、先輩が会社でやるシステムが保守みたいなのが多くて
作る楽しみを感じない>新技術を試してみたい>やってみよう
という流れだから。
PHPやるなら、ASPとそんなにかわらんし、それなら慣れてるASPという感じ。
しかし、それじゃ新技術も試せないし、本末転倒になってしまう。(何より金がかかる)

で、.NETになったときにも対応できるように、オブジェクト指向言語
に慣れておこうというのもある。

まぁ、お互いに思惑が違うし、そうなったんだな。

Tomcatはそんなにいかんの?
ウェブはメインではないため、レスポンスなんかあまり気にしなくて
いいシステムなんだな。

アプリケーションサーバって製品によってそんなに違うの?

そのあたりが、かなり知りたい。
ちなみに、先輩は基本的にVBな人なので、Javaは半年ほどやったことがあるだけで、
あまり開発経験がないとのこと。なので、発起人となる私が色々と調べてるのです。
また、VBだと叩かれそうだが、いちいち叩かないでくれ。もともとCとかやってたらしい
し。
>583
あまり、生産的な意見がでそうにないので、常駐するのもどうかと割れながら
思うから、そろそろ、引こうと思う。客観的意見ありがと。

シェア No.1 と携わる人の数は一致しないよ。WAS は母体が母体だから
デカイ案件が多い。どうでも良いが WAS4 で EAR ファイル作らにゃ
ならんのはどうにかならんのか。
599デフォルトの名無しさん:02/05/12 23:31
>>597
さようなら、時の人・・・
やっぱり結局こうなっちゃうよね
600デフォルトの名無しさん:02/05/12 23:43
>>598
J2EEの仕様的にそうなってんじゃないの?
>>600
配布は楽かも知れないけどさ、開発フェーズだとちょっと
修正するのにも大変じゃん。
Ant 一発、とかできないの?
603デフォルトの名無しさん:02/05/12 23:59
>>601
オートリロードONにしとけば、クラスファイル直接差し替えで行けるから少しは楽でしょ。
604590:02/05/13 00:03
>601
あれ、時間もマシンパワーもやたら消費するので鬱です。
WAS4が変なのはオートリロードの間隔が、デフォルト3秒なとこ(w
WOは、DBとWeb間での仕様変更とか、楽でいいよね。
micromedia の ULTRADEVELOPER 4 買ったら WebSphere 3.5 の開発者版 CD-ROM
が入ってた。んで、これ、3.5.2 以上に持ってきたいんだけど、ひょっとしてそれ用の
E-FIX (FIXPACK) ってないのか? (Win2k)

http://www14.software.ibm.com/webapp/download/product.jsp?s=s&id=TDUN-49EVRT
う、さげちまった
483は逃げたか・・・
>>610
100以上前のレスに粘着。しかもage。
612!610:02/05/15 12:08
>>611
483 の最後の登場は >>597 ですよ。
>>611
ププ
>611=613
「恥の上塗り」って言葉を覚えれ。
611はわかったのかな?(゚∀゚)?
616デフォルトの名無しさん:02/05/16 02:33
611は逃げますた
逃げました
キモい粘着の居るスレはここですか?
汗 ダク デブオタ の粘着がいる スレ はここですか?
牛丼、汗だくで。
特盛り、汗だく、ワキガ付きで。
622デフォルトの名無しさん:02/05/17 01:58
611〜621=483
>>611
ププ


他になんか話題ねえの?


俺は 483 でも 611 でもないので、あしからず。
625デフォルトの名無しさん:02/05/17 08:31
シェアが、多ければいいってもの
でもないでしょ。

Weblogic6なんて、不具合出まくり
で、これ使ってシステム組んでる
メーカーが、客から
「うちらは、ベータテスターか?実績あるVer5使えゴルァ!」

とか言われてるそうな。
しかし、Weblogic5は販売されて無いし
メーカーも海外で問い合わせにも
時間がかかる罠(w

ところで、不治2ーのWebJって
どう?

Weblogic6と入れ替えてみたらWeblogic6よりまともに動くみたい
だけど。
626デフォルトの名無しさん:02/05/17 14:34
ちょっと困った状態になってるのでどうかご教授ください。
Apache-Jservで動作してるサーバにサーブレットを置くんですが、
同名のサーブレットがあった場合、設定内で先に見つかったものが呼び出されますよね。
例えば、
http://aaaa/servlets/Sample → /usr/A/Sample.class
http://bbbb/servlets/Sample → /usr/B/Sample.class
という動作を望んでいても、
http://aaaa/servlets/Sample → /usr/A/Sample.class
http://bbbb/servlets/Sample → /usr/A/Sample.class
となってしまいます。
名前を変えれば解決するのはわかるのですが、
Sample1.class、Sample2.class等の他のサーブレットとリンクしあってるので、
修正点が多く、また今後も/usr/C/、/usr/D/と増えていく予定なので、
名前変更は望ましくありません。
設定だけでこのように分けて呼び出すことは可能でしょうか?

ちなみに環境を変える権限が無いのと諸事情によって、
Apache-jservでの動作が前提条件です。
お手数ですがよろしくお願いします。
httpd.conf の VirtualHost 設定しかないのと違うか?
ちなみに同じ名前のクラスに違う実装するような設計は
あまり良いとは思わんが。
628626:02/05/17 15:19
返答ありがとうございます。

>httpd.conf の VirtualHost 設定しかないのと違うか?

すみません、具体的にはどのような設定にすれば良いのでしょうか。
Apache、jservの設定については良く知らないもので。

>ちなみに同じ名前のクラスに違う実装するような設計は
>あまり良いとは思わんが。

お恥ずかしい話、元々1サービス用に作ったんですけど、
短期間、低コストでサービス追加せねばならないので、
こういった次第になりました。
629デフォルトの名無しさん:02/05/17 15:28
>>626
javaの勉強をやり直したほうがよいと思います
630626:02/05/17 15:42
>629
Javaの経験も浅く、エキスパートとは間違っても言えないので、
日々勉強せねば、と思っています。
勉強し直せ、というからには何か根本的に間違っているのでしょうか。
同僚に聞いてみるとTomcatでは実現できた、とのことなので、
今回の件は、設定の問題かと思っておりました。
631629:02/05/17 16:12
サーブレットも単なるJavaのクラスなので、VirtualHostingうんぬんかん無しに同一メモリ内で動いているのであるから、当然、名前空間(パッケージ)が同じなので、先にクラスローダで先にロードしたほうが優先されてしまいます。(別JVMインスタンスを走らせているなら別)
なので普通は別のパッケージにして、デプロイメントディスクリプタで直接ServletをURLにマッピングするようにして配置します。
確かにTomcatはVirtualHoting時はTomcatのクラスローダがダイナミックに切り替えてくれるかもしれませんが、そもそもこういう設計をするべきではありません。
632626:02/05/17 16:56
丁寧な回答ありがとうございます。
デプロインメントディスクリプタには明るくないですが、勉強します。

ところで、このように既存のサーブレットを小変更して他のサービスで使用したい場合、
通常はどのように設計するのでしょうか。
重ねての質問で申し訳ありません。
633629:02/05/17 17:11
「サーブレットを小変更して他のサービスで使用したい場合」ってのはもう全然別のプロジェクトってそのサーブレットのコードを再利用したいってことですよね?
でもデバッグとか運用は単一のJServeの中でやりたいってことですな。
そん時はプロジェクトごとにパッケージを作りましょう。

例) package net.2ch.yourotherproject;

とにかくパッケージ名は必ずつけましょう。
634626:02/05/17 17:18
>「サーブレットを小変更して他のサービスで使用したい場合」ってのはもう全然別のプロジェクトってそのサーブレット
>のコードを再利用したいってことですよね?
>でもデバッグとか運用は単一のJServeの中でやりたいってことですな。
おっしゃるとおりです。

アドバイス、ありがとうございました。
635デフォルトの名無しさん:02/05/17 20:48
>>629

とゆーか、warコピーして別名にすればいいじゃん。
え?
JServ は WAR 対応してたっけ?
638デフォルトの名無しさん:02/05/17 23:53
>>625
INTERSTAGE使っているYO!
WebLogic6.2ほどクセは無いと思う。
日立の Cosminexus はどう?
今度、使うかもしれないんだけど。
640デフォルトの名無しさん:02/05/18 03:01
483はまだか〜!
しつこいな。
642デフォルトの名無しさん:02/05/18 08:08
>>631

おめぇ〜、本当に分かってんのか?
呼び出されるServletのContextが違えばそんなこたぁ関係ない。

>"別JVMインスタンスを走らせているなら別"
同じJVMインスタンスでも、TOMCATが・・・以下省略
TOMCATのソース読め。アホが。

初心者が2chで聞いても、答える奴等が初心者だから無理もねぇ〜な。
当然、玄人もいるけどね。

626の奴は、631の解答を見て、信じるだろう・・・。いや、絶対に信じている。
間違った知識を覚えていって、またその知識を2chで散乱さす。

危険
JServ に Context を分けるという概念、あったっけ?
>>642
>>626じゃないが、信じてた。
否定するだけじゃなく、具体的に回答してくれるとなお嬉しい。
645デフォルトの名無しさん:02/05/18 11:48
483逃げすぎ。
>>645=483
自作自演という罠
647607:02/05/18 21:22
WebSphere AS 3.5 ⇒ 3.5.2 の FixPack、今日見つけた。なんかリンク切れか?

http://www-3.ibm.com/software/webservers/appserv/efix-archive.html#fp353
648デフォルトの名無しさん:02/05/20 02:31
483のおかげですっかり廃れたな。
649 :02/05/20 03:30
つーか、>>483 を追い込もうと鼻息の荒い粘着が張り付いているから

      粘 着 隔 離 ス レ は 此 処 で す !!
>>647
なぜいまさらFixPack.2?
最新のFixPack6(最新が心配なら一つ前のFixPack5)のがよいのでは?

あと、あそこのFixPackはFTPを直接見に行ったほうが発見しやすいかも。
>>651 THX
以前作ったシステム、ノート PC の Win で動かしたくてさ。
FTP でディレクトリ見たけど、相変わらず IBM サイト汚ねーな。
653デフォルトの名無しさん:02/05/22 04:14
絶対既出だと思いますけど、アフォなんで許してください。

トムキャットやJRUNでサーブレット&JSPを動かすらしいですね。

アパッチ好きは、それらと連動させればいいそうですが、アパッチだけで動かすのは無理ですか?

アフォでごめんなさい・・・
>>642
Context単位でClassLoader持ってるからですよね?

>>652
あそこのは本当に汚いね。最初のころは何がなにやらわからなかったよ。
でも、まめに探し物してるとあれでもいいやって思えてくる(藁
単に慣れてしまっただけなんだろうけどね・・・・
俺はいまだに JServ が ClassLoader 分けてくれるか疑問。
バグフィクスはしているようだが JSDK 2.0 の頃の代物だぞ。

>>653
Apache だけで動かすのは無理。質問の意図が手軽さかリソース
消費量か知らんけど、手軽さならどのサーブレットコンテナも
インストーラが付いている。リソース消費量は Tomcat が常駐
3〜10MB くらい、その他の奴はデフォルトでいろいろ起動する
のでもうちょっと必要 (使ってなければほとんどスワップアウト
されると思うが)。まぁサーブレットコンテナもインストール後に
設定で使用最大メモリ量を調整すれば良い事だが。
656654:02/05/23 03:11
>>655
THX!!
わざわざ、意図まで汲み取ってくれてありがとう。手軽かどうかを知りたかったのです。

サーブレットコンテナつーのは、アパッチとサーブレットの間をとりもってくれるものだと覚えてたんだけど、あってる?
Jserv?とかあったな、そういや。

とにかく、サーブレットコンテナ入れれば動くわけなので、
入れてみよう。ありがとね。
657653:02/05/23 03:13
↑は、653が書きました。
あぁ、間違えた・・・

回線切って、寝ます

658デフォルトの名無しさん:02/05/23 05:19
Weblogicのはなしは出ないな(w

日本でWeblogic6なんか使ってる
とこはほとんど無いってことか。
>>642
いやだからね、その機能の実装が必須ならわかるよ?
じゃそのコードがほかのサーブレットエンジンで間違いなく同じように動くって保証があんたにはできんの?
>>658
つーか、ちょっと試しに使ってみようってのには向かないからだろ。
661デフォルトの名無しさん:02/05/23 23:56
>>660
そなの? 詳細きぼんぬ。
662デフォルトの名無しさん:02/05/24 00:30
>>660
バーカ
>>655
一応Servlet Zone(Context)単位でClassLoaderは分けてるよ。
664デフォルトの名無しさん:02/05/24 17:15
weblogicってデフォルトインストールでは[weblogic/myserver/public_html]
がドキュメントルートになるけど、[weblogic/任意のフォルダ/public_html]を
ドキュメントルートにしたいけど、どこの設定をいじれば良いんですか?
インストールからやり直さないと出来ないのでしょうか?
なんか、会社の先輩とプロジェクトを遂行するっていってたやつ
どうなったの?
>>666
ほじくりかえすなYO!
668デフォルトの名無しさん:02/05/25 10:42
オラクルのAPサーバ使っている人はいないの?
669デフォルトの名無しさん:02/05/26 00:58
tomcatのソースコードを見てて、
HttpServerRequestFacadeという名前のクラス
があるのですが、「Facade」とはどういう意味
なのでしょうか?
670デフォルトの名無しさん:02/05/26 01:02
でざいんぱたんの本を読め
>>669
ガンマ本によれば「サブシステム内に存在する複数のインタフェース
に1つの統一インタフェースを与える。Facade パターンはサブシス
テムの利用を容易にするための高レベルインタフェースを定義する。」
だそうな。まぁごちゃごちゃ/こまごましたインターフェースを簡素化
したラッパーという意味かな。
Facade
フランス語で「建物の正面。また,建物の外観を構成する主要な立面をもいう。」
たぶん、デザインパターンに出てくるFACADEの意味だと思う。
673669:02/05/26 01:21
>>670-672
有難うございます。デザインパターン
の本読んでみます。
「ふぁさーど」と読むようだぞ。
675デフォルトの名無しさん:02/05/28 01:44
バイオ・・・?
グレイマウザー・・・?
67788:02/05/28 02:40
>>676
ファファード…?
>>678
正解。
680デフォルトの名無しさん:02/05/29 21:57
もれずに、にこにこ・・・
681デフォルトの名無しさん:02/05/30 23:24
パンパーチュ!?
682デフォルトの名無しさん:02/05/31 20:05
>>681
正解!
afo?
>>683
正解!
685デフォルトの名無しさん:02/06/01 21:54
JSP書くのに適した、
またはみなさんがつかってるエディタor開発環境を
おしえておくれ
板違いだったらすまん
>>685
デザインフェーズは macromedia UltraDeveloper。
コーディングフェーズは秀丸+UltoraDeveloper が半々くらい。
とりあえずホームページビルダーは野暮ったすぎて嫌い (デザインも生成 HTML も画像も)。
>686

JSPのなかに処理が鬼のようにつまっている状態なのですが、
ステップ実行とかできるソフト(できればフリー)あります?
ないっすよねぇ・・・・?
JSPのステップ実行か…
>>687
あーんと、そういうのなら俺は Visual Age for Java 使うかな (IBM 関連なもんで; お奨めはできんが)。
フリーの Eclipse って JSP のステップ実行できるプラグインあったっけ?
>688
見てると泣けてくるソースなんだよ・・・・
>>687
そういった処理はサーブレットでヤレ。
JSPはページ出力くらいに考えれ。

オレはJBuilderPro使ってるが、689もいってるようにEclipseが
いいかも。
692デフォルトの名無しさん:02/06/01 23:09
>>690
J-Builderを試用してみれば?
質問。

server side JAVAで「beanを使う」って時の beanなんだけと、これって例えば BDKに付属してくる
jarアーカイブされた beanとかと同様 jarアーカイブにするものなの?
それとも classファイルのまま鯖の中に置いて「気分的に bean扱い」で beanと呼ぶものなの?
それから server side JAVAで使う用の beanを作る時に絶対継承/インプリしなきゃならないクラスってあるの?

以上。(教えてくんでごめん。)
>>693
大抵は「気分的 Bean」が正解。
普通は Serializable を implement するが (しなくても良いけど)
この意味をよく考えれよ。
695693:02/06/02 10:27
サンクス>694。言われて考えてみた。
Serializeする際の読み出し元or書き込み先が
アーカイブされたファイルじゃまずいだろって理解で
いーのだろうか?
696デフォルトの名無しさん:02/06/02 21:42
>>693
俺も同じ質問仕様としてこのスレ来たんだ。
わっかりにくいよなー。
何がびーんだ馬鹿野郎、普通のクラスじゃねーか、とか思ったりして。
だいたいさ、JavaBeansっていうフレームワークがあるのに、
そうじゃないものをJavaBeanって呼ぶ神経がわからねえよ。

あー今まで理解できなかったことがこれでやっとわかったズラ。
Bean=JSPサーバ上に置く単なるクラス。これでホントに良いのかな?
EJBが謎
>Bean=JSPサーバ上に置く単なるクラス。これでホントに良いのかな?
良くない。GUIエディタのパーツとかもbeanでつくるしね。
699696:02/06/02 22:00
>>698

いや、だからさ、そのbeanとJSPで言われるbeanってのは
別物でしょ? ってことを言いたいんだけど。
GUIパーツのJavaBeansは、こー作んなきゃダメ、っていう
規定があるじゃない。プロパティ持たないとダメよ、とか。
JSPでいうbeanっていうのはそういうことしなくていいんでしょ?
単なる普通のクラスをbeanって呼んでるだけでしょ?って
こと。
違うのかな。
700693:02/06/02 22:36
同士発見。>696
漏れも最初いわゆる GUIベースでの beanの説明を見て、少なくともそれと
同等の実装をサーバーサイドでもしなきゃーならんのかなーと思ってた。
でもサーバーサイドの構築経験者が beanと呼称するものを classファイルのまま
鯖に置いてたんで、それで混乱して質問してみた次第。

ただ GUIベースで使う beanと呼ばれるものも
・必ずしも jarに固めなくてもいい
・get**、set**で private変数にアクセスするようにする
つー基本路線では「同じモノ」なのかもとか思ってみたりした。
しかし異なる目的にある機能を提供するものを同じ名称で呼ぶのは
正直紛らわしいと思う。それじゃM$と変わらん。
701696:02/06/02 23:04
>>700

そうそう、さらに言えばEJB("Enterprise" JavaBeans)ってのも
あるじゃん。これもまた別もんだよね?
「EJBにはセッションビーンとエンティティビーンがあってうんぬん」
とかさ。俺は最初、JSPの説明のところで出てきているJavaBeans
ってのはEJBのことだと思ってた。
EJBは面倒くさそうだし(どの説明読んでもろくなのがない)、
かー、EJBわかんねえとJSP書けねえのか、しんどいなあ、とか
思ってた。だったらJSPの説明の前にEJB説明しろよタコ、とか。
beanなんて変な名前つけないで、クラスって言えよクラスって。
単なる普通のクラスじゃねーかボケ、と今は怒りでいっぱいです。
>>701
勝手に誤解してキレてんなよ(w
703696:02/06/03 00:39
誤解するような名前つけてんじゃねえ、って切れてるんだろがw
使い方が違うじゃん(w
705デフォルトの名無しさん:02/06/03 00:46
あんた、名前だけでものを判断してるだろ?
706デフォルトの名無しさん:02/06/03 00:51
>>701

今は怒りでいっぱいですか?
それじゃ Java やめれば?
誰も文句いいませんよ。
下らんネタでいちいち煽るな。
なんかバカが集まってきたな
下層階級はこういうときにしか参加できねえからな。
710デフォルトの名無しさん:02/06/03 14:24
>>664
web.xmlを使えば可能。
web.xmlは以前はweblogic.propertiesにパス等の設定していたが、
最近のバージョンのは変わったはず。確認要。
しかし、商用AP鯖ってWebSphereとWebLogic以外はあまり話を聞かないね。
Oracleのなんかもいい感じに思うし、無償AP鯖のHPもどうかな、と思うのだけど。
712質問です。:02/06/05 02:02
サーブレット勉強しようと思ってます。で、どうせならJbuilder
使ってやろうと思っているので「Jbuilderサーブレット開発」
という本を買おうと思ってます。でも、私のJはパーソナルなのです。
なんかサーブレット機能をやるにはエンタープライズとかじゃないと
無理っぽい気がするのですが、どうなんでしょうか?
713デフォルトの名無しさん:02/06/05 05:52
>>712
問題なし。
tomcat関連jarを全部ライブラリで指定して読み込んで、BootStrapとかなんだかのクラスを実行してやればデバッグとかもできる。
JSPのステップ実行は多分無理。
でもサーブレットの勉強なら基本的にいらんでしょ。
714Java&servlet初心者:02/06/05 13:10
サーブレットでGraphicsを扱う事ってできますか?

リクエストに応じて動的にサーブレットで画像を生成して、jpg等でサーバーに置いて、
htmlから参照させて表示させるようにしたいのです。
715デフォルトの名無しさん:02/06/05 14:05
名前とパスワード、メールアドレスの登録をするWeb

register.jsp(HTMLフォームがある)
1↓
RegisterServletでrequest.getParameter〜 4→ registerOK.jsp or registerFailure.jsp
2↓ 3↑
RegisterBeans(データベースにアクセス)

んで、
名前、パス、メールがヌルだったら、エラー
名前が既に登録されていたら、エラー
ってどうやんの? 

今は、RegisterBeansで、
if else if else ,,,で判定して、
RegisterErrorというenumクラスのエラーをRegisterBeansが持ってるのですが。
(Name_is_null...Mail_is_null...etc)

これらは例外にするべき?
jsp,servlet,beansの分業というか、Java例外の使いっぷりとかよくわかりません。
716デフォルトの名無しさん:02/06/05 14:07
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数:105420人 発行日:2002/05/030
どもども、風薫る5月ワキガも香るひろゆきですー。

今日はどうしても報告したいことがあるですよー。
東京地裁の顔になりつつある今日この頃ですが、最近裁判官がおいらを露骨に馬鹿にするですよー。
裁判を傍聴している人は既にご存知でしょうが、ついこの前は、おいらのことを
「あなたは売春クラブの経営者みたいな言い訳をしますね」
なんて言いやがったですよー。
どうやら売春クラブの経営者は警察に捕まると必ず
「出会いの場を提供しただけだ」
と、見苦しい言い訳をするらしいですよー。。。
そんなセコイ奴等とおいらを並べて語るとは悔しいけど、ストライクですー。。。えぇえぇ、、、

確かにおいらは企業や公人の誹謗中傷を禁止していませんし、削除もしません。
その上、「発信元は判らない」を看板とし、悪質な書き込みをし易い環境を提供し、いやむしろそれを売りにしようと目論んでいますが、そんなことはおいらのクチビルの厚さとは関係ないですよー。。。

ところで、中央大卒のおいらの同級生達がおいらのことを「宅八郎みたいな奴」と罵っているって本当ですか?。。。うぅうぅ、、、

んじゃ!
717デフォルトの名無しさん:02/06/05 14:56
>>714
できるよ
>>714
Jimi か JAI だろうな。
>>715
Servletで、
request.setAttribute("REGISTER_BEAN", registerbean);

JSPで
request.getAttribute("REGISTER_BEAN");

じゃだめなのか?
>>718
jimiって何? jini のこと?
jiniもJAIもServletで動的に画像を作成するのに必要ない。

>>714
そのServletを使うOSは何ですか?
Linuxで、Xが立ちあがってない環境で、そのServletを使っての・・・
書くの面倒くさい。 自分で調べてください。 

>720 シッタカ君ハッケソ。JIMIくらい検索しる。
722タロ:02/06/05 22:33
皆さんの知識をお借りしたく質問させていただきます。

サーブレット上で複数のJSPから同時に利用される、
Singletonのクラス、Sを作成しました。
このSは、コンストラクタをprivate宣言し
インスタンスを取得するための関数(getInstance())を
synchronize宣言をしています。

このクラスSを利用する、use.jspを作成しましたが、
ひとつ、問題にぶつかっています。

これで、クラスSはサーブレット内で唯一のインスタンスと
なると考えていましたが、僕の知識不足のようで、
クラスSのインスタンスが無い状態で(あっても?)、
use.jspを同時に複数呼び出しますと、synchronize宣言してあるはずの
getInstance()が複数呼び出されてしまいます。

クラスSのインスタンスを、複数のJSPから同時に
利用したいと考えていますが、
初期化は一度だけ行いたいと考えています。

サーブレット上で、グローバルなSingletonクラスを
作成する際に、参考になるWebページなどは無いでしょうか、

よろしくお願いします。
>>722
そりゃgetInstance()は何度も呼ばれるだろうが、
2度目以降に初期化しないようにコード書くだけじゃないの?

static boolean first = false
public synchronized S getInstance(){
  if(first){
    // 初期化
  } else {
    return this;
  }
}
>>723
Singleton って何か知ってる?
724 に Singleton って何なのか、聞いてみたいな。
private static S hoge = null;
public static synchronized S getInstance(){
  if(hoge != null)  return hoge;
  hoge = new S();
  // hoge の初期化処理等
  return hoge;
}
厳密にSingletonやろうとするなら、

private final static S hoge = new S();
public static synchronized S getInstance(){
  return hoge;
}

なんだろうけどね。

けど、実際書くなら自分も>>726のやり方かな。
728714:02/06/05 23:57
>>717,718,720
レスありがとうございます
とりあえず、できるという事で安心
サーバーはLinux+JRunを検討中
ちょっとだけ調べたけど、 なんか、Linuxだといろいろめんどそうね

JAIとかjimiはまだ詳しく調べてないですけど、これらがないと、画像処理はできないの?
動的に画像を生成、と書いたけど、やりたい事は、
CreateImageや、文字描画くらいです。
Graphicsオブジェクトを用意してそこに描画するのは
サーブレットではできないのかな
729デフォルトの名無しさん:02/06/06 00:07
>>727
遅延戦略ってしってるか?
クラスロードされても、実際に要求がくるまでインスタンスを
作らないようにして、無駄な処理を省くんだよ。
>>726のはそれ。>>727のは、クラスがロードされてしまうと
実際に使おうが使うまいがSのインスタンスが出来ちまう。
普通は>>726のように書く。>>726の場合は、hogeの初期化は
コンストラクタでやればいいと思うが。
730デフォルトの名無しさん:02/06/06 00:15
>>723
getInstance()はstaticでないと呼び出せないだろ。
コンストラクタはprivateであることが条件なんだから。
731デフォルトの名無しさん:02/06/06 00:20
>>729
Lazy Instantiation
732デフォルトの名無しさん:02/06/06 00:22
>>728
そりゃ、イメージの生成はサーブレットでもいくらでもできるが、
それをどこに表示するかだな。
サーブレットは普通のクラスだから、必要なパッケージをimportすれば
画像処理(加工とか)はできるけど、表示させるのはアプレットなどに任せればいい。
733デフォルトの名無しさん:02/06/06 00:38
>>727

このようなクラスは、実は単に全てのフィールド/オペレーションをstaticにしたものを使っても同じです。

Singletonパターンが全てをstaticにしたクラスに対して勝れているのは、
クラスではなくオブジェクトとして唯一であるため、オブジェクト個数を一つ以外に制限することができる点と、
うまくすればサブクラスを返させるようにしてポリモーフィズムによる拡張が可能という点です。

しかしprivateコンストラクタを用いてしまうと、サブクラスのインスタンス化が不可能になってしまうため、この効果が得られません。
また、C++ではprotectedコンストラクタにすることでサブクラスのインスタンス化を可能にしていますが、
Javaのprotectedはパッケージ内の他のクラスからもアクセス可能なため、この目的に沿いません。
(パッケージ管理をちゃんと行えていればそれでもよいのですが)

従って、Javaでは素直にSingletonを実装することはできないということになります。

Singletonの継承を捨てるなら話は別ですが、それならば、全てをstaticにすればよい話です。
まあ、全てstaticは見苦しいからあまりしないとは思いますが。

Javaで完全なSingletonパターンを実現するためには、interfaceと内部クラスを用いたトリッキーな方法を使わざるをえません。
>>733
説明的かつ意味の無い文章だな。多態化を使いたいなら Factory 使って
Singleton にしとけば良かろう。
735デフォルトの名無しさん:02/06/06 01:18
>>734
そーゆーことは
http://www.sk-jp.com/java/pattern/singleton.html
の作者に言ってくれ。
文字になってるからって鵜呑みにすんなよ... (;´д`)
737デフォルトの名無しさん:02/06/06 01:53
>>722

何のServlet Container使ってるんですか?
もしかしてTOMCAT? なら無理です。
ど〜してかと言うと、秘密です。
>>737
オートリロードの件? WebShere もオートリロードするとクラスローダーが
入れ替わって複数インスタンスできちゃうんだよね。莫迦が Singleton の
スレッドにサーバソケット開かせるような設計するともう大変。二つ目以降
のスレッドは起動失敗。せっかくのオートリロード機能も使えず、ちょっと
修正するたびにプロセスごとリスタート、ってね。今の SMβC だけど。
質問。
tomcatに DBとのコネクションプーリングの機能って存在してる?
あと、用語的に

DBコネクションプーリング≒データソース

でいいのだろうか? それともデータソースは
ネーミングサービスを使う事が前提の別もの?

以上よろしこ。
>>739
あったと思うが使ったことがない。
普通に会話してるときは「DBコネクションプーリング≒データソース」
であってる。細かく言えば、コネクションプーリングは「しくみ」と
いうか「方法」で、データソースは「概念」「クラス」等。
741737:02/06/06 03:17
>>738
全然違う。

738さんが言っているのは、それでClassCastExceptionとかにもなっちゃうやつでしょ?
それはServlet Containerの性質上仕方無い。Tomcat,JRunでもなる。つーか、それで泣いた
時期もある。
でも、今回のはTomcatの実装による問題。
>>741
Tomcat の実装で Singleton に関する扱いに何か問題あったっけ?
743741:02/06/06 22:01
>>742
まぁいいんじゃないの、無いと思うなら無いで。
744タロ:02/06/06 22:20
>>737

 趣味でやっているので、TOMCATです、

TOMCAT上の問題ということでしょうか?

 自分でも調べてみることにします。
>>743
分からん、ヒントだけでも教えてよ。
746デフォルトの名無しさん:02/06/06 22:35
ところで、WebSphere AS 4.0 AEってWin2k Proでは動かないの? インストールはできるんだけど。
対応OSじゃないから駄目なのかな? ちなみに、シングルサーバ版の方はちゃんと動く。
747タロ:02/06/06 23:01
 >>737

なんとなく、原因がわかりました、
大感謝です、ありがとうございました。
>>747
ぐほっ、気になるー
教えてくれー
>740
お答えサンキュ。
DBコネクションプーリングって実装的にはVectorか
ArrayListあたりに Connectionをぶち込んでおいて
接続状態を別途管理する、みたいな感じかなのかな。

もしこれを自前で実装する、というかしなきゃならないとしたら
この点は絶対気を付けておかないと! って事ある?
>>746

問題なく動く。なんらかの設定ミスかインストール失敗と思われる。
>>750
あ、そうなの? じゃあ今度再挑戦してみます。さんきゅ。
>>750
まだ自分もAEは試したことなかったので、一瞬「おや?」と思ってしまったよ。
一安心。

>>749
これなんかどうです?
ttp://archive.coreservlets.com/coreservlets/ConnectionPool.java
753749:02/06/07 02:43
>752
正直、すげえ参考になった。ありがとう。すごいサイトだね。知らなかったス。
考え方はだいたいあってたみたいなんでこいつに接続数監視による
保持コネクション数の動的な増加減少機能を追加するみたいな感じで
作ってみようかなと思った。でも tomcatの pooling機能を調べるのが先か。
勉強になったよ。
754751:02/06/07 23:46
WAS40AEのWin2kProへのインストール再挑戦してみました。
今度は見事に動いたよん。よかった、よかった。
755逝って良しの1:02/06/08 00:01
>>749
コネクションを食いつぶす。
756デフォルトの名無しさん:02/06/08 00:29
>>755
最大同時接続数を設定せよということかいな。
757逝って良しの1:02/06/08 01:13
リミッタは付けた方がいいね。
まずセマフォを実装する必要がある。
同時使用数に対して実際に確立する接続数を減らしたり増やしたり
する仕組みとかも。
ついでにトランザクションモニタみたなツールを作れる余裕を残し
ておくとがあると良い。
759逝って良しの1:02/06/08 02:14
セマフォってあーた・・・。
Javaなんですが・・・・。
>>759
? セマフォってプロセス間必須じゃないぞ?
つーかセマフォって何か知ってる?
信号機かな(w
Signal → Object#wait(), Object#notify(), Object#notifyAll()
Mutex → synchronized
Semapho → wait, notify, synchronized とフラグとカウンタ使って自作

ってのが Java の定番と思うが。synchronized みたいに言語レベルで
使えると非常にありがたいんだが (Release し忘れ防げるので)。
763逝って良しの1:02/06/08 08:49
とほほほ・・・
synchronized自体がセマフォを使った上位構造だというのに
そこから又セマフォ作っちゃうんですか・・・・
なにか間違ってる・・・。
synchronized はブロック内の同時実行スレッド数が 1 つに制限
されているから Mutex と思うが? Semapho なら最高 n スレッドが
同時に走るだろ?
http://www.tokumaru.org/techterm/semaphore.html

> ガスコンロが二口しかないために、ガスコンロの前に小皿があり、
> その上にオハジキが二つ置いてある。ガスコンロを使いたいコック
> は小皿のオハジキを取ろうとする。無事にオハジキが取れたら、
> コンロを使うことができる約束だ。コンロを使いおわったら、
> オハジキを小皿に返す。一方、オハジキを取れなかったコックは、
> 皿の前に張り付いて休眠状態に入る。休眠は、別のコックがオハ
> ジキを返してくれるまで続き、オハジキが取れるとコックは再び
> 動き出す。

限られた数のリソースを複数の処理で共有するためのしくみです。
766逝って良しの1:02/06/08 09:55
>Semapho なら最高 n スレッドが 同時に走るだろ?

そんな組み方しちゃうんですか・・・
まあOSが切り替えてくれるから動く事は動くけどね・・・。
>>766
マジボケ? green thread?
768逝って良しの1:02/06/08 10:32
引きながら話されても何言ってるのか判らん。
セマフォ使っておきながらスレッドの切り替えも行わないマルチスレッド
プログラムってなんなんだよ?
synchronized は解除できないので
サーバーサイドプログラムでは通常使いません
770逝って良しの1:02/06/08 10:55
(゚Д゚)ハァ!?. 厨房は逝けやゴルァ!!  
771 俺 != 769:02/06/08 11:09
>770

ネタかどうかも判断つかない>>770は死ね
772逝って良しの1:02/06/08 12:56
(・∀・)ハケーン
シングルスレッドPGがマルチスレッドに手を出して>>769のような
経験則を得たと見た。

だーら本なんか読むな。自分で考えろつってるだろ。
俺なんかセマフォなんつう言葉なんぞ知らなくても天然でデッドロック回避してたぞ。
773逝って良しの1:02/06/08 12:57
ああ、セマフォ知らなかったのは10数年前の話ね
synchronizedを解除できないってどういう意味?
何が困るの?
マルチスレッドプログラミングが出来なかったという意味。
プログラムが止まるので困る。
>>774
synchronized でブロックされたスレッドは
そのブロックが解除されるか、強制的に殺されるかのどちらかしかない。
別のスレッドからinterrupt投げてもダメ。

これの弊害を予想できない低脳PGはお願いだからJava辞めてくれ。
>>776
シングルスレッドしか使えないPGが大抵やる事だね。
ブロックで止まらない様に設計するんだよ。
どっちが低脳なんだか・・・・。
アフォ晒しあげ

 低 能 の 揚 げ 足 取 り 合 戦 始 め り ま す た
780逝って良しの1:02/06/08 14:33
揚げ足取りなのか?
枝葉末節の問題ではないぞ。

シングルスレッドPG ・・・ 月給25万
マルチスレッドPG・・・・・ 月給80万
くらいの格の違いがある。
781デフォルトの名無しさん:02/06/08 14:35
> そのブロックが解除されるか、強制的に殺されるかのどちらかしかない。

Javaってショボいな...
782逝って良しの1:02/06/08 14:35
ちなみに、マルチスレッドプログラミングできない奴が
サーブレットに触ってはいけません。
つうか、誤魔化しきれなくなっていつか追い出されるよ?
釣られた自覚も無いんだろうね(プ
>>781
Javaがショボイのはまあ事実だけど、
synchronized の件は有名なんだが知らないのか?
あのなあ、デッドロックの発生条件を知っていれば
synchronized を安全に使う方法ぐらい分かるだろ?

そんな基礎も知らないヴァカはマルチスレッドも同期機構も使っちゃ駄目だろ。
786逝って良しの1:02/06/08 14:42
>synchronized の件は有名なんだが知らないのか?

25万円PGの間で有名なんだね。
80万円PGは誰も知らないよ。プ
> synchronized の件は有名なんだが知らないのか?

IBMの技術解説ページでも取り上げられてたね。
つか常識かと
>>787

>IBMの技術解説ページでも取り上げられてたね

場所きぼん
789逝って良しの1:02/06/08 14:58
よくわからんがそのIBM様がデッドロックを回避する方法を
書いてるが、これを読む限りそんな事は書いてない。
http://www-6.ibm.com/jp/developerworks/java/001222/j_pr52.html
まあ読まなくても考えれば判る事だが。
その程度のことで偉そうにageんな
791788:02/06/08 15:02
>>789
サンクス。
読んで、考えてみます。
とりあえずこの本読んでない奴は帰れ。
http://www.shoeisha.com/book/Detail.asp?bid=9
持ってない奴とかいるのか?
>>793
いるに決まってるじゃん。白痴か?
>>794
字面通りにしか読めねぇのか、白痴よ
セマフォの勉強は終わったか (w
797デフォルトの名無しさん:02/06/08 21:00
semaphore と mutex の区別も付いてない生姜癖がおるな
798逝って良しの1:02/06/08 21:31
全然別のものと思ってるヤシも問題だな。(生姜癖?)
799逝って良しの1:02/06/08 21:34
つうか話題を逸らそうと必死だな(藁
「synchronaizeでブロックしちゃうよーん」の話はどうなった?
それを外部からロック解除して動かそう、などというシングルスレッド厨は
どこいった?
> 全然別のものと思ってるヤシも問題だな。(生姜癖?)

ずっと静観してたんだけど、ひょっとして天然?
>>逝って良しの1
おい、いい加減 synchronized がセマフォーじゃなくてミューテックスだって
事は理解できたか? 25万のプログラマさんよ (w

http://www-6.ibm.com/jp/developerworks/linux/020118/j_l-rt5.html

> 全然別のものと思ってるヤシも問題だな。(生姜癖?)

この期に及んでまだ燃料を投下してくれるんですか (藁
802逝って良しの1:02/06/08 22:33
http://a414s1.it.nanzan-u.ac.jp/seminar/OS/4th/
とりあえずぐぐる1発でさがしてきたけど、これぐらい本なんか読まなくても
天然で判ってないようじゃねえ・・・・。

>>802
Green Thread と Native Thread の違いを説明してください。
今の JVM の実装はどちらが主流かも。
>逝って良しの1
うるさいのでおなにーして寝てください
>>802
昭和の専門書みたいなページだな (藁
で、
> synchronized自体がセマフォを使った上位構造だというのに
これの説明は?
806逝って良しの1:02/06/08 23:02
知らんけど勘ではmutexロックのJava的オブジェクト指向版で、その機構は
Objectクラスにあるんじゃない?
807逝って良しの1:02/06/08 23:19
>>803
あ、俺に言ってたのか。
green thread知らん。
808デフォルトの名無しさん:02/06/09 02:14
途中参加!

synchronizedはmutexだろ。 そのmutexを実現するのに内部でsemaphoreを使ってる。

つーか、アホばっかだなここわ。
synchronized使って、semaphoreを実現する? アホだなコリャ。

809デフォルトの名無しさん:02/06/09 02:19
使わないでどうやって実現する気? (マジレス)
810デフォルトの名無しさん:02/06/09 02:56
なんでsemaphoreを実現すんだよ?
そのままsynchronized使えよ。 アホばっかだ・・・。
811逝って良しの1:02/06/09 03:02
お、俺は例外のはずだぞ・・・・

763 :逝って良しの1 :02/06/08 08:49
とほほほ・・・
synchronized自体がセマフォを使った上位構造だというのに
そこから又セマフォ作っちゃうんですか・・・・
なにか間違ってる・・・。
>>810
答えになってないな。出来ないということで OK?
Semaphore 作らないでコネクションプールとかファイルベースの
巨大掲示板とか作ってみれ。
>>812
ちょっと言い換えてやろう。
synchronized だけで上限 n のコネクションプール作って見れ。
>>812
無理とおもわれ
なんでセマフォー要らないっつー人がこんなに多いかなー
セマフォーがミューテックスの代わりになるのは分かるけど
その逆はないよー
>>803
native Thread=実行可能スレッドにタイムスライススケジューリングでCPU実行権を順に割り付ける。
メリット:どのスレッドも大体均等にうごくので、適当にコーディングしてもプログラマの意図に近い動作になる
デメリット1:きちんと意識してガードをかけないと、スレッド間共有データが同期しなくなる。
デメリット2:スケジューリングの精密なコントロールは不可能。JVMのスケジューラ依存。

デメリット1をわかっていない素人がサーバーサイドを作っている(流行に乗って無知バカのくせに
仕事で導入してる糞SIが、最近多い)と、大抵マヌケな事態になる。

green Thread=コンテキストスレッドが明示的に実行権を手放すまで、コンテキストスイッチが発生しない。
メリット:プログラマが完全にスレッドの実行スケジュールをコントロールできる。
デメリット:sleepだのwait/notifyだのyieldだのをきちんとプログラムに書かないと、悲劇が起きる。

J2SESDK付属のランタイムは、今はみんなnativeみたいだけど・・・
JVM仕様はどちらかでなければならないと規定しているわけではないので
どちらでもチャントうごくようにコーディングしなきゃダメよ。
>>812
スレッドN個だけに同時実行を許容するってことがあるという
ことないかい?つうか、素人?
>>816
ちげーよ。
脳内設計ばかりで実際に手を動かさない奴らばかりだな。

10 個のコネクションを 100 スレッドで共有する。すべてのコネクションが
リースされている時、11 個目以降はいずれかが空くまで待機する。

ってのを《Semaphore もどきを作らないで》実現してみろ。
>>817
スマヌ。誤爆。
>>819
そうか。失礼。
>>818
その、待機させているスレッドの「待機させる機構」は、
どんな風に作ろうと、結局セマフォと等価なんだよね。
ここはスレッドプログラミング入門編ですか?
>>821
空きが出来たら通知だろ?
それはセマフォじゃなくてシグナル。
それにセマフォを使うなとは誰も言ってない。
824逝って良しの1:02/06/09 03:32
>>813 >>818
とっくの昔に作ったよ。
つうかsynchronizeの機構を理解してないのか?
>>824
スピンロックしているバカが一人いるかも(藁
>>824
脳内でか (w
synchronized はインスタンスに対してロックかけるよな。幾つかの
インスタンスにそれぞれロック/通知を行うような仕組みにすれば
有限数のリソースのハンドルを管理できるわな。

で、それはなんちゃって Semaphore の機能じゃないんですか?
スレッドの玄人がいるようなので質モーン。

wait/notifyの機構について、FIFO(入ってきた順に待機状態を
解除する)を実現できるような仕組み作った事ある人いますか?
どうやったらいいでしょう?
>>827
Vector みたいな可変長配列 (キュー) に notify 用オブジェクト (型は
何でも良い) を入れてゆく。前のスレッドは処理が終わったらキューの
先頭にあるオブジェクトに notify。(キューの先頭の) 次のスレッドは
それを受けて実行開始。実際には「待ち」に入ってるかをフラグか何かで
持たなきゃいけないかも。
>>828
やっぱりそれしかないですか・・・

LinkedListでwaitかける寸前にaddLast、notifyかける寸前に
removeFirst、というあたりですよねえ。

waitコール用に無駄なオブジェクトいっぱい作る羽目になるのがどうも・・・
あ、Threadインスタンス自身でいいかな。
830828:02/06/09 03:57
そうだ、ThreadLocalが一番無駄がなくてよさそうだな。
今思いついた。ありがとー。
>>329
まぁ >>828 は一般的な話だけどね。大抵はもうちょっと設計で対処
する。通知用のオブジェクトはスレッドと一対一になってるインス
タンスであれば何でも良い。Thread インスタンス自身でも良いけど、
他で変な notify かけない保障はないからなぁ。ローカル変数で
new Object() やっても気にするほどのことは無いと思うが。
>>830
FIFO の仕組みをブラックボックス化してクラスにしてしまうなら
ThreadLocal だろうね。↓みたいな感じで。ところで 828 は俺。

final FIFO fifo = new FIFO();
fifo.lock();
try{
  // FIFO が要求される処理
} finally {
  fifo.release();
}
なんちゃって Semaphore プログラマの反論はまだですか?
まぁ synchronized があれば Semaphore は不要って言っておいて
Semaphore を作ってたんじゃね、俺なら恥ずかしくて隅田川に
身投げするよ。
834デフォルトの名無しさん:02/06/09 06:06
やっと分かった・・・かな?
ここにのさばるバカの発言の意味が。

お前等バカが言ってるのは、synchronizedとフラグを作って、
そのフラグをsemaphoreって言ってるんじゃない?

おいおい、ジョーダンはよしてくれよアホ達。
何があった
だれか話を整理してくれ (;´д`)
836ざっと呼んだ 835:02/06/09 06:32
コネクションプール実装するならセマフォいるね。
 ↓
(゚Д゚) ハァ? synchronized があるのになんでセマフォ作るんだよ。
 ↓
(゚Д゚) ハァァ? synchronized 使ってコネクションプール作ってみろ。
それ簡易セマフォ作ってるだろ。
 ↓
(>>834 は誰に?)
>>834
見苦しい
2点
>>834
すり替えに必死だな。
      yy_,
      ゙《llllllllizz,
      .゙《llllllllllllllllllllyyz,_
       ゙リllllllllllllllllllllllllllllllllllllyy__
        ,,》lllllllllllllllllllllllllllllllllllllllllllllllizzzy,,,,,
   .___uzlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllzzy,__
  zllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllyyy__
  アllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllizyyy,
    .゙ミ《llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllzzy,,,,,,,__
      ^リllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllliyy
      ,zllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllト
     ,illllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllト
   .,zllllllllllllllllllllllllll|》ミミミミllllllllllllllllll》厂 ̄ ̄ ̄¨゙¨ミミミミミミミミミミミミミリ》》》|llllllllllllllllllllllllllllllllllllllllllllllll′
   .゙゙゙゙゙゙゙゙゙゙゙⌒′     ゙lllllllllll;厂                     . ̄工|lllllllllllllllllllllllllllllllll
               .lllllllト             ._     ._,,yzlllllll》》ミミミ|llllllllllllllllllllllllllll″
               .《lll|′           _zll|.lli_  _ylllllll|ア″   .zillllllllllllllllllllllllllllllllz_
               .ll| .lミ;;lllllllllllllzzzzzzzzzylllllll|ミlll《.,illlllllllllllzyyyyyy;lllllllllllllllllllllllllllllllllllllllll|
               .lll!   .,工工lllllllllllllllllllllllllll}  lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll|リlllll《lll,
               .リト   |llllllllllllllllllllllllllllllllllllllァ  llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllli__|l|_.爻
                    ゙「《lllllllllllllllllllll;|アリllト  .゙lllllll;|ミミ《llllllllllllllllllll;;|《;lllllllllllllllllll|《llllllllllll|″
                      .″ ylll|厂  lll|゙   ゙《llli.   .゙゙^^ミ干!   .ミ《lllllllll¨ ア《llll|
                        . ̄    ″   .llllll、           .゙|lllllllト _yllllllll!
                                 .゙《lll!            lllllllliilll;;;;;;;|「
                                  .,|lllly          ._,lllllllllll|
                           ,yァ     |lllllllz    .___   .,yillllllllllll|「
                         ,,,yzlllミ     .ullllllllllllllト  .゙フllllllllllllllllllllllll厂
                       .'llllllll|リ″ .zy,,,,,,rlllllllll||厂    .《llll|¨リlllll|「
                        .,|ll「     ¨ミ|lllllllllll|゙ .__________ .ll|″.|lll「
                        .リ「 .,,,,,,yzllllllllllllllllllllllllllllll;;;;;;;|ミ「 .`  .″
                          ミミミミ厂¨″.゙¨¨′__,,yyyyz
                           .,y,   ____yzlllllllllllllll|厂
                            .¨ミ;lllllllllllllllll;;;;llllllllllll《
                              .¨^^^゙],yzlllllll|″

スネオはこのスレで全てを悟ったようです
841逝って良しの1:02/06/09 10:54
synchronizedとsleepとintteruptでできるってばよ
>>841
wait と notify じゃない辺りが痛いな、こいつ。
843逝って良しの1:02/06/09 13:13
おれはどっちでもいいけど
んでsynchronizedだとブロックしちゃうという話の弁明をまだ聞いてないが、
最後に言いたいことがあったらいってみ?
844デフォルトの名無しさん:02/06/09 13:29
>>815
大ウソ書くのはやめろ。
つーか、なんでこんな酷い書き込みに誰も反応しないんだ?


>>803
Native Thread:
 OSの提供するスレッド機構を用いて各スレッドを動かす。
 カーネルレベルで制御されるスレッドを用いることができるOS上では
 実行可能な各スレッドに別々のCPUを割り当てることができるので
 高いパフォーマンスを得ることができる。
 しかし、ユーザレベルのスレッドライブラリしか提供されていない
 OS上ではそのメリットを受けることはできない。

Green Thread:
 VM内部で、上記のユーザレベルスレッドライブラリと同様な
 仕組みを用いてスレッド管理を行なう。
 安定したスレッドライブラリが用意されていないOS上でも
 動くという利点がある。

コンテキストスイッチ云々ってのは、Java VMの実装に依存した話で
直接の関係はない。
845844:02/06/09 13:29
>>Semaphoreでいろいろ文句いっている輩
できれば、計数セマフォ(counting semaphore)と
2値セマフォ(binary semaphore)を区別して発言してくれ。


>>841
> synchronizedとsleepとintteruptでできるってばよ
sleepはモニタを解放しないから意味なし。

あんたがスレッドプログラミングについて無知なのはわかったから
静かにしていてくれ。
>>843
ネタをネタと (略
847逝って良しの1:02/06/09 14:47
>>846
そうか、ネタだったのか。
最後の言葉、しかと聞き届けたぞよ。

>>846
モニタってなんだ?
>モニタってなんだ?
質問する態度がなってないな。
849逝って良しの1:02/06/09 14:51
だってまた「ネタにマジレス」とか言うんだろ?
850逝って良しの1:02/06/09 15:02
synchronizedされたブロックの中で使えないという意味か。
中で使わなきゃいいじゃん。
851844:02/06/09 15:05
>>847
> モニタってなんだ?
おい、マジで聞いてるのか?
Javaの排他制御の基本だぞ。

もし、本当にモニタのことを知らなかったのなら、
> 782 :逝って良しの1 :02/06/08 14:35
> ちなみに、マルチスレッドプログラミングできない奴が
> サーブレットに触ってはいけません。
> つうか、誤魔化しきれなくなっていつか追い出されるよ?
このセリフそのままあんたに返すよ。
>>846
> モニタってなんだ?

おいおい、お前が最後の言葉吐いてどうすんだ (藁
つーか、お前本当は昨日の高校生とちがうか?
853逝って良しの1:02/06/09 15:12
俺はJavaヲタじゃねーから知らねーYO!
動きゃいいんだよ動きゃ。


    ★ 逆 切 れ で す か !!! ??? ★

855デフォルトの名無しさん:02/06/09 15:15
どうも話がかみ合わないと思ったらそういうことか。
おっけー、おっけー (w
856844:02/06/09 15:20
>>853
Java特有のものじゃない、一般的な概念だぞ。<モニタ

> 動きゃいいんだよ動きゃ。
synchronizedブロック内でsleep使うようなバカの作ったプログラムが
マトモに動くとは思えんが。
857逝って良しの1:02/06/09 15:21
だから俺は本読まないで天然で組んでるっつってるだろが。
したがってJavaの「モニタ」なんぞしらんし、Javaヲタの
知識自慢に付き合う気もさらさら無い。
とりあえず無勉強なジジィが一人いる事は分かった。
>857
とっとと失せろ
860逝って良しの1:02/06/09 15:24
>856
煽っても無駄。
>だから俺は本読まないで天然で組んでるっつってるだろが。
それでバグだらけのクソマルチスレッドプログラムを
量産しているわけですね。
「月給25万のシングルスレッドPG」よりもたちが悪いな。
862デフォルトの名無しさん:02/06/09 15:27
ハラショー!




                      何で自分で晒し上げてんの?
863逝って良しの1:02/06/09 15:27
ちゃんと動いてるんで実証済みだ。
864デフォルトの名無しさん:02/06/09 15:28
>>861
「月給25万のシングルスレッドPG」って何だっけ?
> ちゃんと動いてるんで実証済みだ。

彼は高校生のようですが、、、
866逝って良しの1:02/06/09 15:31
ちゃん業務で実用に供されて動いてるんで実証済みだ。

と書きなおして見る。
そういえば前の方でコネクションプール作ったって言ってなかったっけ?
sleep() と interrupt() 使ったんだよね...
sleep()とinterrupt()使ったコネクションプールか…
パフォーマンスが酷いことになってるんだろうなあ。(藁
870逝って良しの1:02/06/09 15:44
ちゃん業務で実用に供されてCPU負荷・レスポンスも実測済み動いてるんで実証済みだ。

と書きなおして見る。
>>870
高校生の妄想はそこまでにしておけ。
>>867-868
目からうころが落ちますた
>>869 THX
874逝って良しの1:02/06/09 15:56
∋oノハヽo∈
 ( ノD;)<よってたかっていじめてくるのれす・・・
875モーヲタうざい:02/06/09 16:03
モーヲタうざい
876逝って良しの1:02/06/09 16:05
よく考えたらwait と notifyつかう奴は素人。

sleep>>>>>>>>>wait
あたりまえじゃん。

>>874はにせもの
>>874
自分の知識の無さを棚に上げて >>759-786 のような発言をした
当然の報いだ。
呆れるのを通り越して笑いがこみ上げてきますた。
>>876
「よく考えたら」って言ってる時点でどうかと。

880逝って良しの1:02/06/09 22:33
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \_____
     \____/
881逝って良しの1:02/06/10 04:47
おまいら全員ヴァカだろ!?
引き篭りPGどもにカキコのネタ提供してやっただけでもありがたいと思え!
882ネタ:02/06/10 05:19
不正確な時間指定のsleepなんか、CPU無駄にするだろ。

waitつかえば、notifyかけるまでそのスレッドは確実にNotRunnable
なんだから、CPUの無駄な負荷がないだろ。チャントスレッドスケジュ
ーリングの理屈がわかってない奴がよくやる頭の悪い逃げ行為を、正当化
するんじゃないよ。

sleep/interruptオンリー野郎は、スピンロックバカと五十歩百歩だよ。
>>882
ビジーウェイトの話なんて出たっけ?
>>883
今出た。それが何??

俺はこんな言葉を知ってるんだぞ、と言いたかっただけだろ?
恥ずかしすぎ。
885デフォルトの名無しさん:02/06/10 19:17
質問です。

weblogic6.1を使ったWebシステムを開発しているのですが、
困ったことがおきています。

●やりたいこと●
あるリンクをクリックすると、次のような動きで次画面に遷移する仕組です。
「リクエスト」→「サーブレット」→「JSP」→「次画面」

●問題●
正常に「次画面」が表示されるのですが、
IEステータスバーのゲージだけが、動きつづけているのです。
(まるでまだファイル読み込み中のように)

●関係あるかも?●
weblogicのアクセスログを見てみると、
該当の動きをしている際に、
送信バイト数0バイトでPOSTメソッドが投げられてるようなのですが、
なぜそんなことになるのかも、よくわかりません。

●お願い●
この現象をなんとかして解決したいのですが、
どうしたらよいのか分からず困っています。
なにかヒントでももらえたら・・・と思うのですが。
よろしくお願いします。
>>884
そんな突っかかるなよ。被害妄想強すぎ。
887デフォルトの名無しさん:02/06/10 20:12
ギスギスは堂々とやれ
888デフォルトの名無しさん:02/06/10 21:26
>>885
> 送信バイト数0バイトでPOSTメソッドが投げられてるようなのですが、
> なぜそんなことになるのかも、よくわかりません。
これは起きてないけど、プログレスバーが動き続けるのは起きることがある。
IEのバグかもよ。
WOなら数分で解決だな・・・と逝ってみるテスト
>>885
俺ならとりあえずパケットスニファソフト入れて、パケットがどう
流れているかを調べるな。本当に POST で 0 バイト流れてるかとか、
変なところで切断かかってないかとか。

ところで重複投稿氏ね >>885
891逝って良しの1:02/06/11 02:17
>>882


880と881は俺じゃないけどワラタ。
892デフォルトの名無しさん:02/06/11 16:38
すみません、質問なんですが。
サーブレットっていうのは、CGIと違って、起動するとスレッドが
上がるだけだから軽い、っていう話ですよね? そういうことから、
サーブレットのクラスというのはマルチスレッドで動作するんだろう
なあ、と思っています。
でも、サーブレットのクラス(用語があるのかどうか知らないけど、
doGet()とかを実装するクラス)の中のフィールドっていうのは
全部のアクセス(例えば5人そのサーブレットを起動したらその
5人全員)から使われるので注意、って感じのことが本に書いて
あったんですが、これは要するに同じインスタンスがみんなに
使われる、ってことですか?
もしそうだとしたら、一般的にはどうやって影響が出ないように
するんでしょう? doGet()とかが呼ばれたら自分でスレッド
起こすんでしょうか?
>>892
> でも、サーブレットのクラス(用語があるのかどうか知らないけど、
> doGet()とかを実装するクラス)の中のフィールドっていうのは
> 全部のアクセス(例えば5人そのサーブレットを起動したらその
> 5人全員)から使われるので注意、って感じのことが本に書いて
> あったんですが、これは要するに同じインスタンスがみんなに
> 使われる、ってことですか?

その通り。
だからServletのクラスはスレッドセーフでなければならない。

スレッドセーフを実現するための方法は大きく分けて二つ。
synchronizedを使った同期を行なう方法と、オブジェクト自体を
不変なものにする方法。Servletでは後者を使う。
具体的には、Servletのクラスではメンバ変数を用いないようにすることで
スレッドセーフを実現している。
「メンバ変数がない = 状態を持たない = 不変なオブジェクト」
ってことね。

じゃあ、計算途中の状態などをどうやって格納するかというと、
その都度適当なオブジェクトをnewしてやればいい。
個々のスレッドで独自にnewしたオブジェクトなんだから、
他のスレッドからのアクセスされる心配はない。
>>893

>具体的には、Servletのクラスではメンバ変数を用いないようにすることで
>スレッドセーフを実現している。

それだけだとあまりに表現が微妙だ…
895デフォルトの名無しさん:02/06/11 22:09
>>893
どもレスありがとうございます。
えーとちょっと頭こんがらがってるんですけど、セッションの分
だけのスレッドが立ってる、ってことはいいですか?
で、サーブレットのクラスは、その全部のスレッドで一つのインスタンス
が共用されている、と。だからスレッドセーフじゃないとダメ。
それで、
そのクラスのメンバ変数→全スレッド共用
そのクラスメソッドのローカル変数→そのスレッドでしか使われない

よって、ローカル変数にnewしたオブジェクトを入れてやれば、それは
スレッド独立で使えるよ、ってことでしょうか?
逆に、例えばJDBC使ってるときにDBとのコネクションを最初に張る
だけにしたい、と思ったら、そのクラスのメンバ変数に入れておけば
あとから起動したときにコネクションをもう一度張る必要はなしで便利、
ってことも言えるのかな?
こんな感じでしょうか。

ThreadLocal使っちゃダメ?
>>894
>>具体的には、Servletのクラスではメンバ変数を用いないようにすることで
>>スレッドセーフを実現している。
>
>それだけだとあまりに表現が微妙だ…

スマソ、はしょりすぎた。

正確には、実際にサービスが動いている間で不変であればいい。
だから、HttpServlet#init()で初期化されて、それ以降は不変の
メンバ変数なんてのはもちろんOK
# 当然、そのメンバ変数に格納されるオブジェクトも
# スレッドセーフでなくてはならないけどね。

>>895
>セッションの分だけのスレッドが立ってる、ってことはいいですか?

各HTTPのコネクション毎に一つね。
セッションが同じでも、2回目以降同じスレッドで処理される保証はない。

>逆に、例えばJDBC使ってるときにDBとのコネクションを最初に張る
>だけにしたい、と思ったら、そのクラスのメンバ変数に入れておけば
>あとから起動したときにコネクションをもう一度張る必要はなしで便利、
>ってことも言えるのかな?

「そのクラス」を「あとから起動したとき」にどうやって使うのか
よくわかんない。
ローカル変数に格納してるんだから、リクエストを一回処理する間でしか
使えないよね。

>>896
使う必要はなし。
898デフォルトの名無しさん:02/06/11 23:13
>「そのクラス」を「あとから起動したとき」にどうやって使うのか
>よくわかんない。

あーやっぱりわかんなくなってきたです。
えーと、doGet()とかが実装されているクラスのインスタンスが
できるタイミングって言うのは、そのサーブレットがブラウザから
最初に呼ばれたとき。で、いつ消えるかは、そのインスタンス
への参照がなくなってガベージコレクションされたとき、ですけど、
いつ参照がなくなるんでしょう? 俺はサーブレットエンジンが止まる
までかなと思ってたんですが、そうじゃないんでしょうか?

もし、インスタンスがずっとあるんだったら、DBへのそのコネクションは
ずっと使える。うーん、違いますか?


899デフォルトの名無しさん:02/06/11 23:42
>>898
使おうと思えば使えるけれども、誰もそういうことはやらない。
例えば40個の(JDBC)Connectionを保持できるような配列を
クラスのメンバ変数として切っておいて
race conditionに注意しつつ空きスロットを探してコネクション
を使いまわすことは、やろうと思えばできるけれども、そのような
目的のためには、既にConnection Poolingという機構が存在する
ので、そちらを使うのが定石。

・実行時のConnectionの破棄(再作成)
・Connection数の上限値の変更
・現在使われているConnectionの数の参照
・(いわゆる)ハートビートに類する機構

といった機能も通常は欲しいはずで、出来合いの仕組みが
そういうことをサポートしているのであれば、わざわざそれに
劣るような物を作り込む必要はない。
900ゲト
>>898

まずはスレッドの正しい使い方を学んだ方がいいんじゃないかな?

>いつ参照がなくなるんでしょう? 俺はサーブレットエンジンが止まる
>までかなと思ってたんですが、そうじゃないんでしょうか?

サーブレットコンテナの実装によって変わる可能性がある。
今はどうかしらないけど、Tomcatの場合はその解釈で正しい。

ただ、実行中にサーブレットを停止できるような実装でもかまわなくて、
その時の後始末のためにdestroyメソッドがAPIで定義されている。

>もし、インスタンスがずっとあるんだったら、DBへのそのコネクションは
>ずっと使える。うーん、違いますか?

使える可能性はあるけど、いつ切断されるか判らないでしょ?
切断されなかったとしても、複数のスレッドが同じコネクションを
使いまわすわけだから、同時に実行できるクエリーが一つだけ
になっちゃうから、そういう使い方は普通はやらない。

>>899も書いてるけど、わかりにくそうだったんで(笑
902デフォルトの名無しさん:02/06/11 23:59
>899
どうもありがとうございます。
ちょっと不勉強で申し訳ないんですが、コネクションプーリング
という機構が存在する、っていうのは、どういうことなんでしょう?
例えばJ2EEのライブラリの中にそういうのを担当するクラスが
あるんでしょうか? それともアプリケーションサーバ(っていうか、
サーブレットエンジン)の機能? だとしたら、どんなサーブレット
エンジンにもある機能なんでしょうか?
903893=897:02/06/12 00:06
>>898
Servletのライフサイクルについては↓を見るべし。
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets4.html

>もし、インスタンスがずっとあるんだったら、DBへのそのコネクションは
>ずっと使える。うーん、違いますか?

DBのコネクションってのはトランザクションっていう「状態」を持つから
スレッドセーフじゃないよね。
# スレッド間でコネクションを共有してる場合に、他のスレッドが呼んだ
# Connection#rollback()のせいで全てご破算になったら目も当てられない。

だから、DBのコネクションは「共有」するのではなく
コネクションプールによって「使い回す」わけだ。


# と書いてるうちに、同じような書き込みがたくさんされている罠。
904デフォルトの名無しさん:02/06/12 00:07
>>902
javax.sql.ConnectionPoolDataSourceやjavax.sql.XADataSourceがある。
EJBを実装してるアプリケーションサーバ(WebSphereやWebLogic、JBossとか)
なら必須な機能なんで必ず実装している。
905デフォルトの名無しさん:02/06/12 00:09
>>もし、インスタンスがずっとあるんだったら、DBへのそのコネクションは
>>ずっと使える。うーん、違いますか?

>使える可能性はあるけど、いつ切断されるか判らないでしょ?
>切断されなかったとしても、複数のスレッドが同じコネクションを
>使いまわすわけだから、同時に実行できるクエリーが一つだけ
>になっちゃうから、そういう使い方は普通はやらない。

いつ切断されるかわからない、ですけど、それはコネクションプーリング
使ったときでも同じ・・・・ってもんじゃないんでしょうか?
複数のスレッドからコネクションを使い回すのは、やっぱりまずいですかね。
JDBCドライバって基本的にスレッドセーフだから、平気なんじゃないかなー
と思ってたんですが。
906デフォルトの名無しさん:02/06/12 00:10
あ、そうだ。勝手にロールバックされるっていうのがありますね。
たしかにそうだ。更新系は独立のコネクションでやらないとダメですね。
907デフォルトの名無しさん:02/06/12 00:13
>>904
なるほど。それではそのへんをマニュアル見て調べてみます。
ありがとうございました。
908デフォルトの名無しさん:02/06/12 00:14
>>905
ちゃんと管理していれば大丈夫。JDBCでは切断を検出できるし、
コネクションプールでは適当な時間使われなかったら自動的に切断する。

JDBCがスレッドセーフなのはメソッド呼び出しの同期だけ。
>>903の言うとおり、トランザクションを複数スレッドで共有はできない。
909デフォルトの名無しさん:02/06/12 00:23
>ちゃんと管理していれば大丈夫。JDBCでは切断を検出できるし、

ちゃんと管理する、っていうのは、プログラミングレベルで管理するんでしょうか。
切断されてたらつなぎ直す、って漢字の処理を入れるんでしょうかね?

>コネクションプールでは適当な時間使われなかったら自動的に切断する。

これは便利ですね。確かに使わない手はないですね、これは。
910デフォルトの名無しさん:02/06/12 00:42
>>906
そんなこといちいち考えるくらいなら、コネクションプールに管理を任せて
接続−処理−切断の流れでやれば簡単。
コネクションプール使えば、毎回「本当に」切断するわけではないから、
接続のオーバーヘッドも回避できる。
911デフォルトの名無しさん:02/06/12 03:56
>> 906
> 更新系は独立のコネクションでやらないと

参照系であっても性能面の問題は残るよ。
Connectionのthread safetyを保証するために、DBMSへの
リクエスト中には他のリクエストが割り込まないようにロックされている
ものとすると、結果的にはDBMSとの通信がシリアライズされることになり、
1つのConnectionだけでは利用可能なband widthをフルに使うことができない。

この辺は、Webで複数のGIFや何かを含むページの内容をGETするときに
シリアルにやるよりは同時にコネクションを複数張った方がトータル的に早い
のと同じ理屈。
912デフォルトの名無しさん:02/06/12 12:25
>>911

それってJDBCドライバの実装によるんじゃない?
913デフォルトの名無しさん:02/06/12 22:00
最近、mod_perlから移ってきたんですが、
いわゆるMVCのModelのクラスってアクセサとかSQLとか
ゴリゴリ書いてます?

db と テーブル名、Primary KEY、カラムを設定
してやるだけでOKなベースクラスがほしい。。。

perl では Class::DBI ってのがあります。

EJB はなんかおおげさすぎ。
914デフォルトの名無しさん:02/06/12 22:14
>db と テーブル名、Primary KEY、カラムを設定してやるだけでOK

EJBじゃん。

>EJB はなんかおおげさすぎ。

何ですと?と言う事はあれか、
EJBからトランザクション管理の機能だけ取り除いて欲しいって事か?
915デフォルトの名無しさん:02/06/12 22:40
>>913

>何ですと?と言う事はあれか、
>EJBからトランザクション管理の機能だけ取り除いて欲しいって事か?

書かなきゃいけないコードが多すぎる。Remote とか Home とか
いらんから、こうすぱっとできない?
916デフォルトの名無しさん:02/06/13 03:01
ちょっと待て!
リモートとホームのインターフェースだけだろ!?
それとも何かい、あんたはインターフェースの宣言文より短いコードでACID確保できると?
917デフォルトの名無しさん:02/06/13 06:09
>ちょっと待て!
>リモートとホームのインターフェースだけだろ!?
>それとも何かい、あんたはインターフェースの宣言文より短いコードでACID確保できると?

deploy がうざい。概念はとても崇高でよろしいのですが、
複雑すぎませんか?

単純に、標準的なSQLをはいてくれて、インスタンス化できて、
標準に外れるものは、自分でSQL定義できればいいわけで・・。

Java の文化にいまいちなじめない。。
918デフォルトの名無しさん:02/06/13 06:37
>>917
君はJavaには向かない。
崇高な理念・整った処理手順・体系化された記述様式
これらのためには、まわりくどかろうが冗長だろうが手間がかかろうが、
そんなのは些細なことです。
919デフォルトの名無しさん:02/06/13 06:56
>>918

確かに向いていないかも。。

でも、Java の Syntax で自分のいうクラスがつくれないかと
いうと、そんなはずはないので、どこかにあるはずだと。。。

ないならつくるしかないのですが、車輪の再発明は好きでないので。。
>>919
さくっとつくっちゃえばいいじゃん。

> ないならつくるしかないのですが、車輪の再発明は好きでないので。。
君のアプリ自身も車(略
921デフォルトの名無しさん:02/06/13 07:29
>>920

>君のアプリ自身も車(略

仕事で作らなければいけないアプリどこかに、
落ちてたら楽だ。

テンプレートエンジンはなにつかってます?
Freemaker perl like でイイ!
922デフォルトの名無しさん:02/06/13 07:55
>>921
> 仕事で作らなければいけないアプリどこかに、
> 落ちてたら楽だ。
仕事で作るかどうかは、同様のものがすでにあるかどうかとは関係ないだろ?
923デフォルトの名無しさん:02/06/13 08:07
922

>仕事で作るかどうかは、同様のものがすでにあるかどうかとは関係ないだろ?

確かに。じゃあいいかえるよ。

「客にいわれたようなものが、どこかにそのまま落ちてたら楽だ」

そういうのは車輪の再発明とはいえなくもないけど、
落ちているはずがない。

自分が嫌いなのは一生懸命クラス作ってできた!と
思うと、実はそういうものが存在していて、それを使えば
時間が1/10に短縮できたというケースなのです。それは
悔しい。人に指摘されるともっと悔しい。

そういうことないですか?
くだらねえこと2chに書き込んでる間にコード書いてたら・・・って

そういうことないですか?
925デフォルトの名無しさん:02/06/13 09:04
>>924

オモエモナ
926デフォルトの名無しさん:02/06/13 09:15
>>923
ああ。でもそのまま使えるものってそうはないからねぇ。
一応探すけど、そこに時間をかけるすぎるのももったいない。
必死に探さなきゃ見つからないようなもんなら、自分で作ったほうが良い。
それに一度作ったら、それを再利用すればいいんだから
まるっきり無駄というわけでもないでしょ。
927デフォルトの名無しさん:02/06/13 19:01
一度作って、2ヵ月後に見ると
「なんだこの糞コード」
「今度はちゃんとしたモノを作ろう」

作り直して2ヵ月後

「なんだこの糞コード」
以下略
>>913
あんたの言ってるようなレベルのものなら
ここで議論してる間にさくっとできるだろ。
煽りとか抜きでさ。
>>927
そんなの繰り返してる奴はただのDQN。問題外。
>>915
JBuilder使えば簡単なのに...
>>921
Velocity !!
Velocityいいね。何でも使えるし。

J2EE1.3のPIとJakartaプロダクトがあれば、大抵の面倒なライブ
ラリ書きは回避できるよね。
Jakarta-POIなんか、笑っちゃうよね。バカなこという顧客
にちょうどいい。Linuxでエクセルファイル作れとか、むちゃく
ちゃなことをいう奴いるからな、ほんとに。

それにしてもJavaはいいよ。なんでもただで揃うから。
IDEしたって、Eclipseなんか使ってると、もう金払ってIDE買うの
馬鹿馬鹿しくなるね。いろんなPlugInあるし。
933デフォルトの名無しさん:02/06/16 02:20
HttpSession session = request.getSession(true);

この意味わかる方教えてください!
セッションがあればそれを使う、なければ新しく作る
935デフォルトの名無しさん:02/06/16 02:27
>>934
ありがとう。trueの意味は何?
937デフォルトの名無しさん:02/06/16 02:29
>>936
この場合、trueとfaulseの違いはわかる?
少しは自分で調べろよ
>>938
どうやって調べるの?
本を見るとか、Web で検索するとかさ。
>>940
ここで調べてるつもりですがなにか?
やれやれ。
>>941
ちんちんむれむれ
Parameters:
true - to create a new session for this request if necessary; false to return null if there's no current session

ほれ、これだろ。
つーか、そんなんわからないでプログラムが組めるのか?
>>945
組む分には組めると思われ。
周りが泣きを見るのだろうが。
947933:02/06/16 17:24
>>946
SEでもPGでもなく、ただの大学生ですが何か?
たくさん釣れた。
>>947
このスレの人が迷惑してますが?
つか、ネタでしょ。
放置放置。
952デフォルトの初心者:02/06/17 23:01
あの、Javaはクライアントアプリいくつか作って遊んでたんだけど、サーバープログラムもやってみようかな?と思ってるのですが、まず初心者ならがに次の疑問があります、誰か教えてください。

1.1000人アクセスしたら?

 たとえば1000人のユーザーが同時にアクセスしてきたら、1つのVMに1000個のサーブレットアプリが立ち上がるのだ・・と思っているのですが、これは正しい?だとすれば、相当なメモリを食いそうだし、そもそもVMがちゃんと安定して動くのか不安・・・。

2.VMが落ちたら?

 なんらかの事情でVMが落ちた場合、どーなるんでしょう?
てゆーか、そういうこと実際あるでしょ?再起動の仕組みとかないと
困ると思うのですが、そこらへんはみんなどうしてるんでしょうか?
本買って嫁
>>952
Javaではそんな負荷に耐えられません。
順番待ちさせて、同時に処理する個数に上限を設けましょう。
VMが落ちたら・・・全てのセッションがアボートしてしまいます。
サーバーには自動的に再起動するなどの仕組みを用意しておくべきでしょう。
データの整合性を保つためにも、データはDBにストアしましょう。

しかし、極端な過負荷状況(主にメモリ)にしなければ、イマドキのVMは落ちません。
どの程度の負荷まで耐えられるか調べ、
それより十分低い状態で稼動するような仕掛けを用意するのがポイントです。

また、どんなに安定稼動していても、わずかなリソースリークが発生している
可能性があります。無用の心配を避けるためにも、週に一度はリブートする
ことをオススメします。

以上、Javaとはあまり関係の無い話題でした。sage。
956 :02/06/17 23:54
>>952
以前試した。WinNT/2k で 510 スレッド、IBM AIX で 1020 スレッドを
超えたあたりから Java VM が不安定になり始める (というか同一インス
タンスに対する wait/notify/synchronized がこの数くらいから機能
しなくなる)。Tomat みたいなサーブレットコンテナは普通「最大受付
可能リクエスト数」が設定できるので、スレッド発生の上限も制御できる。

VM が落ちた時のリカバリーの仕組みは商用アプリケーションサーバレベル
になると付いてくる。たとえば WebSphere は Java VM のプロセスが
落ちても nanny (監視プロセス) が検知して勝手に立ち上げ直してくれる
(ホットスタンバってる奴に切り替えるよりは早い)。Tomcat 等を使うなら
別途仕組みを作りこまなきゃいけないだろう (多分)。
957デフォルトの初心者:02/06/18 01:46
ご意見ありがとうございます。
サーブレットは1000人アクセスに耐えられないかぁ・・
ちょっと今面白い事を考えてて、URLをTVで公開して瞬間的に1000人程度の人に携帯電話やパソコンからアクセスしてもらって、そこでサーブレット動かす・・ってのを考えてるんだけど、Javaじゃキツそうだね。CGIにするか・・
>>957
CGI でも Java でも同じ。そもそも Apache がどれくらい上がるんだ?
普通そういうのは鯖 4〜 台にロードバランサーとかでクラスタ組む。
959デフォルトの名無しさん:02/06/18 20:06
つか、CGIだったら、1000スレッドどころか1000プロセスだぞ?
CGIで1000プロセス…

>>956
ハードの構成は?全く関係無いとも言えないだろ。
961デフォルトの名無しさん:02/06/18 22:42
>>958
へー、ロードバランサーかぁ、初めて知った、難しそうだね…
こいつらにTomcat突っ込んでDBを共有すればいいのか?
全然わからん・・・

>>961
ロードバランサの意味わかってるか?
クラスタの意味わかってるか?
きっとお前が思ってるのの300倍くらいは面倒だぞ。
963デフォルトの名無しさん:02/06/19 01:35
>>962
今知ったばっかりで何にもわかってません、そんな難しいのかぁ・・
少しずつ勉強します。
>>960
これ以上は守秘義務だ。自分で手動かせ。
965デフォルトの名無しさん:02/06/19 09:12
>>962
Tomcatでロードバランスすんのがそんなに面倒か?
>>965
彼には未知の領域なんだよ
彼のプロジェクトがデスマーチ化するのに、100000インスタンス!
見積もりが狂ってポシャるのに1000コネクション
969デフォルトの名無しさん:02/06/21 05:00
クッキーをサポートしないブラウザがセッションIDを
維持する為に、JSPやサーブレットに書かれているフォームや
リンクなどのURLを response.encodeURL(path/to/xxx.jsp)
しますよね。

これをいちいち書くのは面倒くさくないですか?

PHPの場合、クッキーが有効になっていない場合、セッションIDを
PHPファイル内の全てのフォームやリンクのURLに自動的に
付加(つまり <a href="path/to/xxx.php"> を <a href="path/to/xxx.php?sid=123456">
に勝手に変換してくれる)する機能がありますが、
JSP、サーブレットにはこのような機能はないのでしょうか?

またはいちいち encodeURL() を書かなくてもいい方法が
あるのでしょうか?
>>969
商用なら普通ある機能だと思うが。
サーブレットコンテナはどこの使うとる?
971デフォルトの名無しさん:02/06/21 06:41
>>969
JSPを利用するなら<a></a>を使わずに、
リンク用のカスタムタグを利用することで対処する。
<html:link href="http://www.2ch.net">http://www.2ch.net</a>
>>971
Jakarta の Taglib 使えと言うとるのか、拡張タグライブラリ作れと
言うとるのか分からんが、その程度の機能なら勉強がてら拡張タグを
使ってみるのも良いと思う。あれは作り始めるとめちゃくちゃ面白い。
973デフォルトの名無しさん:02/06/21 09:47
>>972
どちらでも好きな方で

【サンがアプリケーション・サーバーを無償配布】
米サン・マイクロシステムズは19日(米国時間)、Javaベースのアプリケーション
サーバー『Sun ONE Application Server 7』のうち、『Platform Edition』を
無償配布すると発表した。5月の『Solaris 9』の発表の際にOSにバンドルする
ことを表明していたもので、Solaris以外のユーザーが無償利用できるようになる。
対応OSはSolaris、Linux、Windows、HP-UX、AIX。Platform Editionのほかに
『Standard Edition』『Enterprise Edition』があり、Platform Editionと
Standard EditionのSolaris版とWindows版は9月にリリース予定。サンは無償
配布することで、米マイクロソフトが進めている『.NET』に対抗する。

http://japan.cnet.com/News/Flash/2002/2002-0620-F-1.html?mm

.NET に対抗っていうか HP のアプリケーションサーバ無料配布とか
BEA WebLogic, IBM WebSphere に対抗するシェア拡大策だろうな。
976デフォルトの名無しさん:02/06/21 12:01
>>975
無料だからってSIベンダが使うかねぇ?
まだ高い方が利益抜けるからいいんじゃない?
>>976
そもそも Platform Edition なんて SIer 入れるほどの開発には不十分と
思うが。利益の薄い底辺を切り離したように見える。
Tomcat使うよりずっとましだろ?
979969:02/06/21 14:55
>>970
Resin使ってるけど、そんな機能あるかなぁ??

>>972
Jakarta Taglibに >>971 が言うような機能のTaglibは
ありましたっけ?
>>979
Resin は知らんが、WebSphere ならコードや JSP の書き換えなしに
セッションの維持方法を Cookie か URL Rewrite の選択ができる。
WebLogic や JRun もできたような記憶がある。
981デフォルトの名無しさん:02/06/21 15:33
>>980
そりゃ便利だね。
でもまぁStruts使うなら、どっちにしろ、リンクタグ使うからなぁ。
982デフォルトの名無しさん:02/06/21 15:55
>>980
WebSphereは、AEだとCookieとURL書き換えと両方同時設定できるが
AEsではどちらかになってしまった気が。

おっ、イングランド先制。
負けちゃったね・・・