トップページphp
984コメント425KB

■■ Servlet/JSP(EJB含む) 質問スレ ■■

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
0252nobodyさん02/10/03 14:07ID:KDvau4q1
>>250
ほらよ。
俺は結局1.3で運用してるがな。

ttp://www.acg-gmbh.de/mod_jk/
0253nobodyさん02/10/03 14:33ID:5xq1UjDr
>>251
ここは?
http://www.cc.rim.or.jp/~egami3/ejb/#4
0254pan02/10/03 15:25ID:???
>>249
有難うございます。
色々と調査した結果、Apache2.0.x用のmod_jkを発見できました。
コレを利用して立ち上げた所、正常に起動し、
exmaples以下のサーブレット&JSPが正常に動作するのを確認できました。
色々とアドバイス有難うございました。

ちなみにmod_jkの場所は、
ttp://www.acg-gmbh.de/mod_jk/ です。
tomcat-users MLにPOSTされていたのを発見しました。
0255nobodyさん02/10/04 11:27ID:???
0256nobodyさん02/10/04 11:33ID:gpSssjjt
JSPからServletのクラスを参照するにはどうすればいいのですか。
JSPファイルを表示させるときに「シンボルが解決できません」になります。
一緒に動かすServletの方はコンパイルできているのですが…。
0257nobodyさん02/10/04 12:05ID:???
JSP やサーブレットから他のサーブレットを参照するなんてことは普通やらない。
どうせデータの受け渡しをしたいだけだろ? ServletContext, HttpSession, HttpServletRequest
の setAttribute()/getAttribute() 使え。
0258 02/10/04 19:29ID:???
Staticallyにtomcatとapacheを連係させる方法しらべてるんですけど、
なかなかインターネットに情報がないですぅ。
どこもDSOをつかったインストール方法ばかりです。
どなたかStaticにApacheにインストールしてる方はいませんでしょうか?
ちなみに、mod_perlとPHPはDSOなしでApacheに組み込んでます。
025925402/10/04 21:35ID:???
>>255
なるほど。
ということは、ServletにNikki classを作って、JSPファイル内に
NIkki nikki = new Nikki(引数)
みたいな書き方はおかしいですか?
0260259=25602/10/05 06:54ID:???
誤爆してる…
>>257でした。すまそ。
0261nobodyさん02/10/05 09:56ID:???
>>259
JSP のコンパイルが通らないんだろ? import でちゃんとパッケージを指定
してる?
0262nobodyさん02/10/05 13:16ID:2e8trTi8
JDK1.4 + Oracle JDBC経由で Oracle9iに接続しています。

transaction内で、複数のデータをINSERTをしたいのですが、
1つ目のINSERTするレコードがないと、2個目以降のINSERT(別テーブル)は
成功しないテーブル構造になっているのですが、

1つ目のINSERT成功後、2個目のINSERT処理の、executeUpdate()
で、処理が止まってしまいます。(ロックされてる?)

特徴としては、関数呼び出しの構造上、以下のように動作します。

setAutoCommit(false)

createStatement
1つ目のexecute
Statementを開放

createStatement
2つ目のexecute
 <〜ここで止まる〜>
Statementを開放

 以降n回繰り返し

comit

これは、transactionのアイソレーションとかと関係あるのでしょうか?
executeをexecuteUpdateにしても同じ動きをしました。
0263nobodyさん02/10/05 16:43ID:/Ylxg1h6
丁度こっちにも同様の質問があがっとるぞ
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50
だ、SQL分自体はどおなっとるの?
0264nobodyさん02/10/05 19:06ID:2e8trTi8
>263
ほんとだ、同じことで悩んでる。

SQL文自体は、単体ごとにUPDATEすると実行されます。
(ちなみに、バッチ処理にして、executeBatchすると登録は成功します。)

各文ごとに、違うStatementを使うことが問題なんじゃないのかと
いう気がしてきました。世の中のサンプル見ても、Statementを開放
してることと、テーブルのリレーションの問題以外は問題がなさそう。

そもそも、1つめのレコードを予めDBに書いておいて、
2番目移行のUPDATEを実行すると、最後にUPDATEした奴
しかDBに書き込まれてないんですよね。

うーん。
0265259=25602/10/05 20:03ID:???
>>261
してるけど、通らないっす。
でも、指定の仕方が間違ってるのかも。

jspファイルが
USR_ROOT/###.jsp
にあって、参照したいServletは
USR_ROOT/WEB-INF/classes/###.class
にあります。
classpathはUSR_ROOT/WEB-INF/classes
で指定してあるのですが、
jspにimportを書く場合
<%@ import ### %>
であってますか?
0266nobodyさん02/10/05 23:27ID:???
>>265
デフォルトパッケージのクラスか? ちゃんとパッケージ名付けれ。

// USR_ROOT/WEB-INF/classes/jp/co/hoge/HageServlet.java
package jp.co.hoge;
...
public class HageServlet extends HttpServlet{
...

こういうサーブレットがあったとき、下のような使い方が出来なくも無い。

<%@ page import="jp.co.hoge.*" %>
<%
  HageServlet s = new HageServlet();
%>

普通はこんなことしないけど。
026726502/10/07 21:51ID:???
>>266
うおおっ!ようやくできました!!本当にありがとうございました!!

えっと、行った手順としては、
USR_ROOT/WEB-INF/classes/
026826502/10/07 22:08ID:???
途中で送ってしまった…

えっと、行った手順は
USR_ROOT/###.jsp ←問題のコンパイルできなかったファイル
USR_ROOT/WEB-INF/classes/index.class ←このファイルを最初に読み込んで、###.jspに処理を飛ばす
USR_ROOT/WEB-INF/classes/sansyou1.class ←###.jspにimportしたかったclass
USR_ROOT/WEB-INF/classes/sansyou2.class ←その他の外部クラス

という風なファイル構成だったのですが、
USR_ROOT/WEB-INF/classes/pack/sansyou1.class
USR_ROOT/WEB-INF/classes/pack/sansyou2.class

という風にpackageにして、###.jspは言われたように
<%@ page import="pack.*" %>
とすると、コンパイルできました。

ただ、どうしてデフォルトの場所では読み込んでくれないのか
という疑問も残りましたが。
ともかくコンパイルできて良かったです。ありがとうございました。

ところで、普通はデータを利用するのに外部クラスのメソッドをそのまま読み込まずに
setAttribute()/getAttribute()を使うのですか?
そうした方がメリットがあるのでしょうか。
もしよかったらもう少し教えて下さい。
0269nobodyさん02/10/07 23:51ID:???
とりあえずクラス名の先頭は大文字にしてくれ
話はそれから
0270nobodyさん02/10/08 13:49ID:???
>>111
送られるファイルのサイズを制限しているようなのですが、その処理を行っている実装部分はどこなのでしょうか?
web.xml に書かれている内容がどこで使われているのか、私の能力不足により解析できなかったので…。
027126502/10/08 21:20ID:???
>>269
なるほど。。。すみません。
そういった暗黙のルールが色々とあるのですね。
勉強します。
027226602/10/09 12:16ID:???
>>268
後からメンテナンスしやすい設計にするためだよ。サーブレットが作るデータが
必要なら setAttribute()/getAttribute() で受け渡せばいいし、サーブレットの
メソッドが呼び出したいなら、そのメソッドは Bean 化して別クラスにするのが
いい。そうすることによってクラス間の関係が疎になるので再利用しやすく後の
メンテナンス性が上がる。
027326502/10/09 21:46ID:???
なるほど。
クラスを直接importしなくてもデータのやりとりとか
特に問題なくできるのですね。
クラス同士はあまり密接に関わらせない方が良いのですか。
勉強になりました。
ありがとうございます。
0274nobodyさん02/10/11 22:13ID:4dmb/Mff
CompsitViewパターンにしてやろーと思っていて。
Strutsを使ってるのでTemplateタグで実現したいのですが

テンプレートから呼び出されるJSPのページにパラメータを渡すには
どうやればよいのでしょう?旨いやり方ありますか?

要はincludeならば
<jsp:include ...>
<jsp:param .../>
</jsp:include>
みたいなことがStrutsのTemplateタグで出来ないかと思案しているわけです。

template:insertをするPageのスコープにパラメータを埋め込んではみたんだけど
どーやらPageスコープってjsp:includeやらtemplateやら使ってもそれぞれのページ内
みたいで…まーあたりまえか(w
requestやらapplicationやらsessionに埋め込めばいいのだろうけど、なんとなく
イメージ的に違うって感じ。でもそれっきゃないのかなぁ?

誰かグルになってくださいませ。
0275nobodyさん02/10/11 22:31ID:???
<template:put> と <template:get> じゃダメなのか?
027627402/10/11 22:35ID:???
>275
ダメやっちゅーに。
ページコンポーネントの組み込みはでけるけど、その組み込むページに
どやってパラメータを渡すかってことが知りたいのです。
0277nobodyさん02/10/12 01:01ID:xShHXVsw
サーバー側に固有の数字をランダムに当てたディレクトリを
自動的に作成したいのですが、そのようなことができるメソッドってありますでしょうか?
ランダムな数字を作るのはわかっています。
ディレクトリを自動的に作成するメソッドがありましたらご教授ください。
おながいします。
0278nobodyさん02/10/12 01:05ID:???
>>277
File#mkdir(), File#mkdirs() の API リファレンス嫁
027927702/10/12 01:58ID:xShHXVsw
ホント馬鹿ですみませんがもう少しヒントをくらはい・・・。

String dirname = "場所";
boolean a = mkdir(dirname);

ってやると
シンボルを解釈できません。
シンボル:メソッドmkdir(java.lang.String)
ってでます。import java.lang.*;は書いてあります。
0280nobodyさん02/10/12 02:01ID:???
File directory = new File("C:\\あほ\\氏ね");
directory.mkdirs();
028127702/10/12 03:34ID:???
あほです。できましたです。
本当にありがとうございます。
氏ぬ前にもっと勉強します。
0282nobodyさん02/10/12 13:39ID:???
>276

だから渡したい値は<template:put>で<template:include>時に渡して、
組み込まれたページ側で<template:get>使って受け取ったら後は好きにすれば?
0283nobodyさん02/10/12 16:09ID:6y7+FqP1
>282
そっかそーゆ意味ね。
言葉足りなかったなぁ。それでもダメっす。
パラメータとして渡したいってのは受け取ったパラメータをlogicタグなどで表示切替
に使いたいって意味だす。

ん?もしかしてbean:defineの中でvalue="<template:get ...>"みたいなことができるってこと?
無理だとは思うが一応試してみるか…。ちょっと待っててな。
0284nobodyさん02/10/12 20:35ID:8Xp20As7
eWave使ったことある人、います?

今、JSPページのコンパイルエラー直そうと思ったんだけど、コンパイル一度も通ってないJSP→Servletのソースが何処にも保存されてないのね、eWaveって(^^;
おそらく何かしらの設定があるんだろうけど、たぶんオイラの英語力が不足してるせいで(T_T)、よくわかりません。

「ここを見れ」でいいので、何か情報をお持ちの方がいらっしゃればアドバイスをお願いします(拝)
0285M02/10/14 00:27ID:a3rDJN9b
JSPで掲示板を作ったのですが、TEXTAREAフィールドに入力されたコメント
の改行コードを<BR>に変換するにはどうすれば良いのでしょうか?

<PRE>入力コメント</PRE>で表示すると改行なしの長いコメントの場合
にページが横に伸びてしまうのです。どなたかお願いします。m(_ _)m
0286nobodyさん02/10/14 00:32ID:???
J2SE 1.4以降なら正規表現使って置換でいいんじゃないでしょうか。
1.3ならjakrta oroですか?
0287nobodyさん02/10/14 01:23ID:???
ガイシュツならすみません。

動的に作成したinputタグのnameを拾う方法はあるのでしょうか?

<form method="POST">
<input name="<%= temp[i][j] %>" type=text>
</form>

で、たとえばこの入力フィールドに"10"が
入っているか確認する場合、
if(temp[i][j].equals("10"))
とはできないですよね?
(変数名は、temp[i][j]の値そのものなので)

たとえば、POSTで投げられてくる値を
Iteratorとかで順番に拾えないのでしょうか?
0288nobodyさん02/10/14 02:29ID:???
>>285
書き込みフォームに WRAP="HARD" +鯖側 <PRE> で良いんでない? まぁ
普通は 1 文字づつ評価して <BR> に書き換えるわな。どうせ < → &lt; の処理とか
やってるでしょ。

>>287
何言ってるかぜんぜんわかんねーんだけど request.getParameter(temp[i][i]).equals("10") の
事か? request.getParameterNames() か? request.getParameterValues(temp[i][i]) か?
日本語勉強してこいよ。
028928702/10/14 08:10ID:???
>>288
言いたいことがうまく伝わらなかったようですが、
どの辺を調べればよいかはよくわかりました。
ありがとうございました。
0290M02/10/14 09:39ID:a3rDJN9b
>>288
返答ありがとです。

WRAP="HARD" +鯖側 <PRE> では<PRE>が優先されるようです。
ページが横に伸びてしまいました。

< → < の処理は次のようにやっててうまく処理されます。
でも改行の処理のやりかたがわかりません。
'\n','\r\n'はchar変数じゃないのです。

/** HTMLエンコードが必要な文字 **/
static char[] htmlEncChar = {'&', '"', '<', '>'};
/** HTMLエンコードした文字列 **/
static String[] htmlEncStr = {"&", "gg"", "<", ">"};



0291nobodyさん02/10/14 17:54ID:???
>>290
入力側で <TEXTAREA ... WRAP="HARD"> でって意味なんだけど、ちゃんと伝わってる?
それから鯖側で <BR> 変換やるなら↓でいいんでないの。

static char[] htmlEncChar = {'&', '"', '<', '>', '\n', '\r'};
static String[] htmlEncStr = {"&amp;", "&quot;", "&lt;", "&gt;", "<BR>", ""};
0292M02/10/14 23:38ID:a3rDJN9b
>>291
そうですよねー。
でも何回やっても<BR>に変換されない。。。。
もう少し頑張ってみます。ありがとうございました。
0293 02/10/14 23:55ID:???
>>292
ちゃんと htmlEncChar.length とか htmlEncStr.length 分のループ
してるか? 「4 回固定回数ループ」やってるんじゃねーだろーな。
てか、説明すんのめんどくせー

public static String escapeHTML(String text){
  StringBuffer content = new StringBuffer(text.length());
  for(int i=0; i<text.length; i++){
    for(int j=0; j<htmlEncChar.length){
      if(text.charAt(i) == htmlEncChar[j]){
        buffer.append(htmlEncStr);
      } else {
        buffer.append(text.charAt(i);
      }
    }
  }
  return buffer.toString();
}
0294M02/10/16 04:04ID:icD2I6vX
http://www.atmarkit.co.jp/fjava/rensai/jsp2_03/jsp2_03_1.html
↑このソースを変えてみた。

static public String HTMLEscape(String input) {
input = substitute(input, "&", "&;");
input = substitute(input, "<", "<;");
input = substitute(input, ">", ">;");
input = substitute(input, "\"", "";");
input = substitute(input, "\n", "<BR>");//追加
input = substitute(input, "\r", "");//追加
return input;
}

でもだめぽ。(′д`⊂)
0295nobodyさん02/10/16 06:21ID:???
>>294 のサイトだが…
すげぇ! こんな無駄な再帰を使うソースは初めて見た。しかもサーバサイド
想定なのに無駄な String/StringBuffer インスタンス作りまくりと来た
もんだ。まぁ表題見れば書いた人間のレベルが分かるか。
0296nobodyさん02/10/16 13:48ID:jmKbXjPs
Java で作成しているアプリがあるんですが、みなさんのお知恵をお貸しください。
管理者が ServerSide に生成した Session の中身を全て調べて、特定のセッションに対して値を更新/削除/追加する、って事をしたいんですけど、これを実現するためにはどうすれば良いのでしょうか?

サーバ・サイドのセッション・オブジェクトを全てリストとかで取得できるんでしょうか?
0297nobodyさん02/10/16 14:37ID:???
>>296
できません。データベースでやってください。
0298x02/10/16 15:08ID:0vsiXYHc
これって本当か?

↓ ↓ ↓
http://www.dream-express-web.com/space-trust.htm
0299nobodyさん02/10/16 15:46ID:???
>>297
やっぱり無理ですか…。
ありがとうございました。
0300nobodyさん02/10/16 16:54ID:???
>>299
無理っつーか、普通そゆことsessionでやらんだろ、ということ。
>>297の指摘通りDB使いなよ
0301nobodyさん02/10/16 23:19ID:R5uZ9QcZ
毎日使ってるPC(Windows)からTelnetしてLinuxのサーバに接続してます。
そこでサーバのTomcatやResinを立ち上げると
Telnetの画面がそのままコンソールになるようで
Telnetを閉じるとともにTomcatやResinまで落ちてしまいます。
Telnetを閉じても起動したままにできませんか?
(cronの1回だけバージョンとかあればよいのだろうか・・)
0302nobodyさん02/10/17 00:11ID:???
nohup でも使っとけ
0303nobodyさん02/10/17 00:13ID:???
>>301
disown
0304nobodyさん02/10/17 00:15ID:7NQKU9UN
>296
SessionFacade使え。
0305nobodyさん02/10/17 01:19ID:???
>>301
その Tomcat や Resin を立ち上げるコマンドの後ろに & を付けれ。
RPM で入れたんなら /etc/rc.d/init.d/tomcat ってコマンド無いか?
って俺それしか知らんのやけど >>302-304 のやり方って何すか?
0306nobodyさん02/10/17 01:43ID:Xvd1/r7V
サーブレットでHTMLのボタンを押して
クライアント側でサーバ内にあるGUIアプリケーション(Javaのクラスファイル)
を実行させることってできるんでしょうか。

例えば
クライアントがボタンを押す

Javaで作ったサーバ内にある
オリジナルの音楽再生プレイヤーが呼び出されて実行される
というようなことってできますか?

気になってしょうがないのでよろしくお願いします。
0307nobodyさん02/10/17 01:51ID:???
>306
気にすんな。
030830102/10/17 02:10ID:bSTwbaaG
>>305
&つけたらいけました。コンソールにやはり起動メッセージ出ますが
閉じても起動しっぱなし。感謝です!
>>302の方法ではTelnet終了したら落ちてしまった。
>>303は調べたけどzsh?

ちなみにこの現象はResinのみ。
Tomcatはコンソール支配されないです。嘘ついてゴメン
0309nobodyさん02/10/17 02:29ID:???
>>306
出来る。

>>308
激しく疑問なんだが Resin ってシェルから叩ける start/stop 用のコマンド
って付いてないのか? 止めるとき ps aux でプロセス見て PID で kill して…
と激しく面倒だぞ。
031030602/10/17 02:43ID:???
>309
Appletで作ったゲームはよく見るんですけど
GUIアプリケーションを実行させるサイトに出くわしたことがないので
気になってました。ありがとうございました。
でも、実行するクライアントはちょっと勇気がいりそうですね。
0311nobodyさん02/10/17 03:00ID:???
>>310
ちょっとまて、クライアントのボタンを押すとサーバ側でウィンドウが
立ち上がるような動きをするんだよな?

ちょっと自信が無いが Unix なら DISPLAY 変数をちゃんと設定しておいて
やれば大丈夫だと思う。Windows はどうなんだろう。サービス起動じゃな
ければ大丈夫かな。
0312306=31002/10/17 03:30ID:???
>>311
Vectorに登録されているようなGUIアプリケーションが
あたかもブラウザ上で呼び出して実行されている、
というような動作をさせることができるかな、と…

安易に大それた質問をしてしまってすいませんでした。
自分はまだあまり知識が無いので、できるとわかっただけで十分です。
ありがとうございました。
0313306=31002/10/17 03:40ID:???
例えば動画ファイルをクリックしてRealPlayerが起動するのは
クライアント側のGUIアプリケーションが起動するってことですよね。
そうじゃなくてサーバ側のRealPlayer(Java仕様)をブラウザ上で実行させる
ことができるかどうか気になったんです。

自分でも少しパニックになってきたので、放置していただいて結構です。
0314nobodyさん02/10/17 11:50ID:6ucWf4YE
んと、>>294の逆で、<TEXTAREA>タグとかから改行込みで入力された文字列の改行を<BR>に置換するのって、どーやればいいのでしょう?

単純に\nを<BR>で置き換える、ぢゃだめぽ。
0315hmk02/10/17 12:34ID:???
>>314
ドザから送られてきた改行は\r\nになってるっぽ?
0316nobodyさん02/10/17 13:21ID:???
>>313
それは無理。

>>314
\r\n を <BR> に置き換えれば良いんと違うか? 何が問題やねん。
0317nobodyさん02/10/17 14:02ID:???
>>313
HTTP上でX-WINDOW類似の仮想ターミナルやりたいってことね。
探せばそんな製品あるかもよ。まずはぐぐってみたら。

ひょっとして作ろうっての?
無理。
少なくとも>>313には絶対無理。
0318nobodyさん02/10/17 15:47ID:???
>>317
ああ、その手の奴なら VNC のアプレット版があるよ。鯖側で VNC 鯖起動しておいて
アプレット版の VNC クライアントでブラウザ上に鯖画面を丸ごと表示する奴が。
多分 >>313 が考えてるのとは違うだろうけど。
031930302/10/17 22:28ID:???
>>308
Linuxって言うから、bashだと思ったのだが。
disownはbashとか、zshの組み込みコマンド。
032030102/10/18 00:35ID:y14T4jTt
>>309
うむぅ、そうですねぇ、自分もResinはkillで止めてます。

>>319
bash: disown: /opt/resin-2.1.5/bin/httpd.sh: no such job
こういったメッセージが出てしまうのであきらめていたのです。。。
032131402/10/18 10:22ID:AgYFvi+M
>>315
>>316

……Unicodeにした後は\nだけ置換すればいいと信じきっていた自分が激しく鬱だ(T_T)
アドバイスありがとうございました(拝)
0322nobodyさん02/10/18 15:06ID:???
>>321
\n を <BR> に変換、\r を削除、が良いと思うが対 Mac でどうなるか分からん。
0323nobodyさん02/10/22 23:14ID:3vYtKYtk
MVCモデルで開発する時ってさぁ、ServletとJSPとBeanはそれぞれ別のチームで開発するでしょ?
で、Beanチームは単体起動での確認とか比較的簡単にできそうだけど、
JSPやServletチームはどうやって単体で稼動確認取ればいいのかなぁ?
JSPはBeanがないと動かないでしょ?
Servletに至ってはBeanとJSP(ダミーでもいいけど)がないとまともに動かない。
みんなはこういう問題ってどうやって解決してるの?

032430302/10/22 23:30ID:???
>>320

おおっそんな勘違いしてたんか!!
disownは、既に実行中のジョブに対して使うんだよ。
例えば、($で始まるのは、コマンド入力)
$./httpd.sh&
$jobs
[1] +running httpd.sh
$disown
$jobs
(何も出力されない)

ってなるの。disownに%1とか%2とかジョブ番号を指定すること
もきる。例えば、disown %2なら、jobsで[2]って表示されてる
プロセスを切り離しできる。
0325nobodyさん02/10/23 02:37ID:???
>>323
そればっかはダミーと言うかスタブ作るしかないな。後で差し替えが利くように
インターフェース切ってファクトリパターン使ったり、リフレクション使ったり
なるべく MVC 間の結合度を下げるようにする。
0326nobodyさん02/10/25 18:13ID:VrJoiV/x
JavaMail使ってPOSTする方法を教えて
0327nobodyさん02/10/25 19:33ID:???
>>326
そんなことできんの?
つーか URLConnection で十分じゃん。
つーか HTTP の POST の話?
0328nobodyさん02/10/26 01:40ID:???
■DOMAPIを使ってXMLを読み込んで、適当に変換処理を行った後
 JSP等でHTML出力する
■TransformerオブジェクトでXML+XSLT変換処理を行った後
 JSP等でHTML出力する

XMLの内容(量)によるとこもあるだろうが、どちらが高速に変換させて
出力処理をさせることが出来るんでしょう?
※あくまで出力処理の範囲で、コーディングの開発は無視
0329...02/10/29 02:39ID:???
ApacheとTomcatの連携がうまくいかず困っております。
Tomcatを startup.sh で起動すると
mod_jk.conf-auto が作成されるとあるのですが、
これが作成されません。何か条件があるのでしょうか?

#それぞれ独立しての稼動はできております
#server.xmlのPort8080の部分はコメントアウトしております
#Apache1.3.26 Tomcat3.x Debian
0330nobodyさん02/10/29 09:28ID:???
>>329
Tomcatのバージョンは?
Tomcat4ならmod_webappを使ったほうが簡単
0331...02/10/29 19:54ID:???
Tomcat3.3.1で不可能でしたので3.2.1にしたところあっさり解決してしまいました。
数々のモジュールを組み込んでおり、自分自身が混乱してました。
お騒がせいたしました。
0332nobodyさん02/10/29 20:40ID:2+2rI4fz
あぱし2.0.X用mod-jkのwin32バイナリ、いつの間にかリリースされてますな。
ttp://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v1.2.0/bin/win32/
0333nobodyさん02/10/30 13:03ID:3yGzF2Oi
Connectionクラスをinit()で作成して使いまわそうしたんですけど、うまくいきません。
いまはdoGet()が呼ばれる毎に作成しています。これってコスト高い?



0334nobodyさん02/10/30 23:31ID:???
>>333
コストが高いかどうかは使われ方しだい。ちゃんと負荷テストやれ。
商用 AP サーバなら普通はコネクションプールを使う。
0335nobodyさん02/10/31 00:25ID:???
商用じゃなくても使う
0336ジョン・プレーヤ・スペシャル02/10/31 19:41ID:FYPcLGlN
質問といううかグチ。
仕事でJSPでメール送るプログラム組むなんて事を安請け合い
したんだけどさぁ、まぁ、sendmailでちょちょいでしょうなんて
perlライクに考えていたわけですよ。
テストサーバにjavaやらtomcat入れてとりあえずJSPが動くようにする
この頃からperlとは違いすぎるなぁと不安になる。
えーとメールを送るのは・・・・どうやらjavaMAILとJRFという
ライブラリを使うことがわかる。
JSPハンドブックを買ってサンプルプログラムを打ち込んで(ソース付け炉や!)
動かしてみる、、、エラーの嵐、、まるでベーマガの頃に戻ったかの
ように本を見ながらデバック、デバッグ、デバッグ、文法エラーはなく
なってコンパイルまでは出来ているみたいだが、変なエラーがドバっと
出る。どうやらSMTPサーバが「Could not connect」らすぃ。
サーバの事はよくわからんのだよ、JSPくん!
SMTPサーバってそのサーバのIPじゃいけないのか?sendmailの設定
が問題なのか?さっぱりわけワカメ。ギャーーー!誰か変わってぇぇ!
0337nobodyさん02/10/31 21:24ID:D/zYL1kU
http://www4.big.or.jp/~tan-y/programming/javamail.html
「SMTPによるメール送信」を読めば救われるかも。
>props.put("mail.smtp.host", smtpHost);
>Session sess = Session.getDefaultInstance(props, null);
このへんがキモかと思われる。
0338ジョン・プレーヤ・スペシャル02/11/01 22:02ID:???
>>337 sama
ありがとうございます。でも、SMTPが通ってなかったわけでは
なくて、実はもっと、、、もっと初歩的なスペルマミスでっすた。
はぁぁぁ
でも、遠回りしてイロイロ調べたせいでJSP/サーブレットの事が
なんとなくわかってきたぞ。なんか言語覚えるのってココまでが
大変で、これからはけっこう楽なんだよな(楽観)。
0339nobodyさん02/11/05 22:01ID:R2YenpcU
Tomcat4.1でサーブレットのお勉強をしようと思い、導入してみたのですが・・・
動きません・・・
Tomcatはjakarta-tomcat-4.1.12-LE-jdk14.exe
JAVAはSDK1.4.1
OS Win2000
を使っています。webappsの下にaというフォルダをつくり、web.xmlやclassesなどの
ディレクトリをつくって、server.xmlを編集しました。フォルダaにあるindex.htmなど
は見れるのですが、サーブレットが動きません。サーブレット自体は以前のヴァージョンの
Tomcatで動作確認済みです。プリーズヘルプミー!
0340nobodyさん02/11/05 22:12ID:???
とりあえずserver.xmlは元に戻してみたら。書かなくても動くし。
てゆうかwebappsの直下に前バージョンで動いていたヤツをjarで固めて置いて置けばいいじゃん。
Tomcatが起動時に勝手に解凍して配置してくれるんだから。

0341nobodyさん02/11/05 22:23ID:R2YenpcU
>>340
レスありがとうございます。server.xmlをもとにもどしてやってみます。
以前のヴァージョンはアンインストしちまいました。
手元にはclassファイルしかないのでとりあえずserver.xmlをもとにもどし
てみます。

034233902/11/05 22:39ID:R2YenpcU
server.xmlをもとにもどしてやってみたら404でした。
exampleフォルダのclassesにクラスファイルを入れた動いたのですが・・・
どうしたら任意のフォルダからサーブレットを動かせるのでしょうか?
0343nobodyさん02/11/05 22:57ID:???
そもそもそのディレクトリはTomcatが起動時に正しくコンテキスト化してくれてるかな?
localhost_log.YYYY-MM-DD.txtみたいなログファイルで起動時に例外が発生してないかどうか
確認したほうがいいかも。(コンソールには起動時例外は表示されなかっちょうな気がする)

Tomcatは起動時に、webappsの下にフォルダがあり、かつその下のweb-infディレクトリに
web.xmlがあるものを自分のコンテキストだと認識するらしいから、まずweb.xmlを疑った
ほうがいいかも。




0344nobodyさん02/11/05 22:58ID:???
表示されなかっちょうな気がする
   ↓
表示されなかったような気がする
034533902/11/05 23:14ID:R2YenpcU
>>343
コンテキスト化とはなんでしょう?
ログファイルを確認したところ起動時に例外が発生したような形跡はないように
思います。普通に「Webアプリケーションディレクトリ a を配備します」というような
感じになってました。
web.xmlの内容は以下の通りなのですが・・・まずいところありますか? 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

</web-app>
0346nobodyさん02/11/05 23:27ID:???
web.xmlが空やねん・・・。
web.xmlには普通Servletのマッピング情報を書くんだよ。
例えばこんな感じ。(うろ覚えなので間違っているかも)

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <servlet>
  <servlet-name>TestServlet</servlet-name>
  <servlet-class>sample.test.TestServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>TestServlet</servlet-name>
  <url-pattern>/servlet/TestServlet</url-pattern>
 </servlet-mapping>
</web-app>

これで、WEB-INF/classesの下にあるsample.test.TestServletという名前のServletが
http://localhost:8080/xxxxx/servlet/TestServletで呼び出せるようになるはず。
(微妙にミスってたらごめん)

J2EEではアプリケーション単位でxmlファイルに構成情報を記述して、自己完結性の高い
パッケージ配布方式を実現しようとしているから、web.xmlはしっかり勉強しておいたほうがいいよ。
だっていちいちWebアプリをインストールする度にserver.xmlみたいなミドルウエアの根幹に
手を入れるのは面倒くさいし危険でしょ?
ここら辺を抑えておくと、やがてEJBのような高度なものをやることになっても、
デプロイの仕組みがちゃーんと理解できるようになる。基本は一緒だから。


0347nobodyさん02/11/06 00:33ID:???
>>344

土佐弁みたいでカコイイぞ。>なかっちょう
034833902/11/06 00:34ID:brJh6AGy
>>346
動きました! ありがとうございます。
しかし、新しいアプリの度にweb.xmlを更新しなくてはならないのでしょうか? exampleフォルダにいれた場合はweb.xml
を更新せずともサーブレットが動作しました。
また、以前のヴァージョンのときもweb.xmlは345に書き込んだ通りで動きました。

そのあたりをご教授願います。
0349nobodyさん02/11/06 00:38ID:QtBZH+Bh
質問なのですが、
Javaの開発でIISって使えるのでしょうか?
それともアプリケーションサーバーはWASとかでないと
無理なのでしょうか?
0350nobodyさん02/11/06 01:27ID:???
>>349
IIS は Java の動くアプリケーションサーバではありません。
WAS 以外にも Tomcat, WebLogic, iPlanet, JRun などもありますので要件に
あったものをどうぞ。
0351nobodyさん02/11/06 01:29ID:???
>>348
examples はあらかじめ出来上がった web.xml が入ってたから。
前バージョンで web.xml に記述が無くてもサーブレットが動いていたのは
Servlet Invoker という、サーブレットを起動するサーブレットがデフォ
ルトで server.xml に設定されていたから。
■ このスレッドは過去ログ倉庫に格納されています