トップページ⇒tech
1001コメント315KB

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
0228デフォルトの名無しさん2007/02/22(木) 21:03:02
>>227
Strutsのバージョンやや使用しているServletコンテナとそのバージョン、
それからJavaのバージョン、サーバOSの環境などを
詳しく説明してもらわないとわからん
0229デフォルトの名無しさん2007/02/22(木) 23:42:36
>>227
マルチパートでデータ取ってる途中に
なんかブッちぎれたぞ
ゴルァ
ってjavaが怒ってるからサーバーの設定からネットワークの設定の範囲の問題じゃね?

ルーターに何かやってんじゃね?
0230デフォルトの名無しさん2007/02/24(土) 22:39:24
.warファイルに固めてサーバにデプロイするときlog4jの設定ファイル(log4j.xml)って
どこにおけばいいの?
エクリプス上では絶対パスでできたけど、サーバにデプロイするときに
絶対パスじゃまずいでしょう?

あと、任意の場所において設定することって可能?
0231デフォルトの名無しさん2007/02/24(土) 23:06:05
>>230
クラスパス上に置く。
WEB-INF/classesに置いてもいいし、
JARにしてWEB-INF/libに置いてもいい。

むしろ
>エクリプス上では絶対パスでできたけど
が俺には謎。
0232デフォルトの名無しさん2007/02/24(土) 23:29:17
WEB-INF/classesにおいてもエクリプス上で
DOMConfigurator.configure("log4j.xml");

だと読み込まない

"log4j.xml"を絶対パス("c:\abc\log4\log4j.xml"見たいな感じ)にしないと読み込まない

.warに固めてTomcat起動させてデプロイさせて実行するとき
DOMConfigurator.configure("log4j.xml");
だとやはり読み込まない(WEB-INF/classesにおいてあります)

どうすればいいのですか?



0233デフォルトの名無しさん2007/02/24(土) 23:53:43
warにするメリットなんてないだろ。
0234デフォルトの名無しさん2007/02/25(日) 01:29:05
なんで?
0235デフォルトの名無しさん2007/02/25(日) 10:36:00
>>233
開発環境がwinで評価環境・本番環境がUNIX計の時とかは便利だけど?
0236デフォルトの名無しさん2007/02/25(日) 13:02:18
>>235

なんで?
0237デフォルトの名無しさん2007/02/25(日) 14:55:40
>>236
むしろwar化しないメリットを教えてくれ
0238デフォルトの名無しさん2007/02/25(日) 15:31:06
中のファイルを簡単に置き換え可能だから
0239デフォルトの名無しさん2007/02/25(日) 15:42:02
コーディング時は、いちいちwar化しないと動作できないというのは効率悪い。
0240デフォルトの名無しさん2007/02/25(日) 17:09:56
なんか話の前提条件が合ってない悪寒。
war化するのはサーバにデプロイする必要があるからだろ?
開発中はそれこそEclipseでやってればデプロイなんて意識してやら無いだろうし。
0241デフォルトの名無しさん2007/02/25(日) 17:18:23
.warファイルにしてデプロイしても
違う方法でデプロイしても

”ファイルが見つかりません”(TT)

どうすればいいの?
0242デフォルトの名無しさん2007/02/25(日) 17:24:11
そういわれても、どうすればいいんでしょうね
0243デフォルトの名無しさん2007/02/25(日) 17:27:02
>>241
環境は?
そもそもファイルが見つかりませんと言っているのは誰?
0244デフォルトの名無しさん2007/02/25(日) 17:35:24
>>240
サーバにデプロイするのになんでwar化するの?
warにしてもデプロイできるけどwarにしないでもデプロイできるよ。
0245デフォルトの名無しさん2007/02/25(日) 17:55:27
>>244
war・earデプロイは商用鯖では良くある事
0246デフォルトの名無しさん2007/02/25(日) 18:04:01
いやいやTomcatスレだし。
02472452007/02/25(日) 18:09:38
>>246
すまん、忘れてたw
0248デフォルトの名無しさん2007/02/25(日) 18:15:21
>>243
Tomcatが言ってる

Tomcat5.5 Struts1.2.9
0249デフォルトの名無しさん2007/02/25(日) 20:52:52
サーバにコピーするときwar化してれば1ファイルなので

精神衛生上良い
0250デフォルトの名無しさん2007/02/25(日) 22:04:39
>>232
log4j.xml のパスを明示しなくても、クラスパスから勝手に探してくれますよ

Log logger = Logfactory.getLog( XXX.class );
logger.info( "おしらせ" );

とやると、WEB-INF/classes/log4j.xml が読み込まれる。
0251デフォルトの名無しさん2007/02/25(日) 22:46:32
つうか、warファイルなんて、IDEでビルドすればすぐ作れるのに、warを作る作らないでもめても仕方ないだろ。
0252デフォルトの名無しさん2007/02/25(日) 22:49:08
>>251
LinuxサーバでWEB-INF/classes/log4j.xmlを書き換える場合は?
warじゃないほうが簡単に書き換えられるじゃん。
それともIDEでwarを作り直してFTPでアップですか?
0253デフォルトの名無しさん2007/02/25(日) 23:11:43
log4jの仕様が悪い。
本来server.xmlなどで対応できるべき。
0254デフォルトの名無しさん2007/02/25(日) 23:15:29
Struts2 = Shale ?!
Struts2を落としたものの、どうにも入力補完がorg.apacheに対応してない
なぜだ?と思っていたら別物?
Struts2のところにBest Availableって書いてあったのに?

もしおかしなことを言っているようでしたら、ご指摘をお願いします
こんなことに時間かけ過ぎだ>俺
0255デフォルトの名無しさん2007/02/25(日) 23:22:34
javaってめんどくさいね
0256デフォルトの名無しさん2007/02/25(日) 23:35:47
>Struts2 = Shale
ちがう。
以前はShaleがStruts2と呼ばれていたが、
今のStruts2.xはWebWorkから引っ越してきた、全くの別物。
ShaleはStrutsプロジェクトから独立して
Apache Shaleプロジェクトで開発が進んでいる。
0257デフォルトの名無しさん2007/02/25(日) 23:36:28
>>253
>本来server.xmlなどで対応できるべき。
特定の製品依存にしろと?
0258デフォルトの名無しさん2007/02/26(月) 00:07:19
本番環境に一度デブロイしたヤツをそんなにマメに書き換えるんだろうか?
テスト鯖だったらwarじゃない方が簡単って意見もわかるが。

まあ、漏れはear派だけど。
0259デフォルトの名無しさん2007/02/26(月) 09:46:02
>>256
違ってましたか。ありがとうございます

何がなんだかわけがわからない
0260デフォルトの名無しさん2007/02/26(月) 23:30:57
少々教えてください。
54,57で少し出ていたのですが、strut-validaorで、
Aフィールドが「電話」のとき、Bフィールドでは電話番号のチェックを
Aフィールドが「mail」のとき、Bフィールドではメールアドレスのチェック
と言う風に、Aフィールドの値によってBフィールドの検証方法を動的に
変えることは可能なのでしょうか?

できれば、具体的な例で教えてほしいです。
54,57見ていると1つのフィールドに対しチェックをするというものだと
思っていた自分からすると目から鱗なのですが、
もう少し進んだこともできたりするのではないかと思い
書き込みました。

上記ができると、非常に便利なのですが・・・
0261デフォルトの名無しさん2007/02/26(月) 23:41:29
>>260
それはさすがに標準のルールのみでは無理。
ルールを自作するしかない。
でもロジックは標準のものを呼び出したり流用したりでいけると思うから
そんなに難しくないと思うよ。
0262デフォルトの名無しさん2007/02/27(火) 08:17:16
俺はログ設定は運用側の問題だと思うから、war には含めない。
log4j.xml は適当な場所(conf/とか)に置いてるね。
0263デフォルトの名無しさん2007/02/27(火) 12:16:54
サーブレットコンテナのロギング誰も使ってないのか
0264デフォルトの名無しさん2007/02/27(火) 22:04:06
Struts(Servlet+JSP)で開発を検討しているのですが、
画面のちらつきを抑えるという理由で、全画面Ajax対応です…

複雑なAjaxを余り意識せず、Strutsの開発イメージで
構築できるライブラリってないですか?
探しても見つからなかったもので。

そもそも、ちらつきを抑える方法がAjax以外にないものかと…
0265デフォルトの名無しさん2007/02/27(火) 22:05:04
チラツキの意味がわからん。画面遷移=チラツキ?
0266デフォルトの名無しさん2007/02/27(火) 22:38:22
漏れもちらつきの意味が解らんが・・・。

ページ遷移する時にタラタラ描画がされるというのなら
単に回線インフラとか鯖のレスポンスの問題だと思うが。
02672642007/02/28(水) 02:15:33
画面は数秒おきに自動更新されます。
ピカッと光るようなものがちらつきです。
自画面を再表示時に、画面が更新されていないようなイメージを
目指しています。
0268デフォルトの名無しさん2007/02/28(水) 06:40:24
それはただ単に頭悪いと言うかそもそもの選択が悪い気ガス。

ヤフオクの残り時間表示もそういう意味では多少チラついたりするんだが、
かなり無駄というか本質的でない事に体力使えて羨ましいというか
なんというか・・・。
0269デフォルトの名無しさん2007/02/28(水) 07:41:00
>>267
画面内で実際に更新する内容が限られてるのなら
Ajaxは有力な選択肢になる
Strutsで作っているのなら、手っ取り早いのはServletResponseから
Readerを取得して、そこにJSON型の結果データを出力すればいい
0270デフォルトの名無しさん2007/02/28(水) 08:14:57
株価ツールみたいなリアルタイム画面を
meta refreshかなんかで無理やり実装してるってことか。新しいな。
しかし、Ajaxの自動実行はどうやるつもりだ?
JavaScriptにsleepはないが・・・
0271デフォルトの名無しさん2007/02/28(水) 08:58:51
setTimeout、setIntervalあたりでできるんじゃない?
0272デフォルトの名無しさん2007/02/28(水) 09:16:54
FlashとかJavaAppletを選択肢に入れないのはなぜだ
0273362007/02/28(水) 09:49:28
>>237
すまん。レス番間違えた。
なんでwar化しないのか俺が知りたかった。

>>244
warにしないと汚くなるじゃないか。
ゴミが溜まって処理できなくなるし

他のバカ顧客が勝手な配備をさせしないためにも
意図的にwar化しておくべき。

所定のディレクトリ以外に置いた場合は保証をしないと
そうやって、顧客に圧力をかけておかないと

0274デフォルトの名無しさん2007/02/28(水) 09:51:17
>>252
もっと頭使えよ。
log4jは別のとこに置け。
といっても、どっちみちclassに自動展開されれば勝手に弄れるし
0275デフォルトの名無しさん2007/02/28(水) 11:31:47
顧客にサーバなんていじらせません・・・
02762682007/02/28(水) 15:10:54
>>270
まぁ、そんなとこです。
>>271
それ使います。
>>272
JavaAppletも検討しましたが、Ajaxになりました。
・要員が集まりにくい→工数増
・Ajaxより重い?微妙です。

>>267
なるほどJSONという型があるのですか。
最大で、縦10列、横行列のHTMLテーブル全ての値を更新するデータ量です。
JSONはオブジェクト型のようで、この辺りが心配です。
まぁ、XMLよりは早いでしょうけど。

ActionクラスでReaderを使うというのも参考になりました。
サーバー側は画面遷移機能と開発のしばりという意味で
Strutsを使っておきたいですので。
(それほど強い縛りではないですが…)

他にも助言あれば頂きたいです。
0277デフォルトの名無しさん2007/02/28(水) 22:39:40
わざわざJSONで受けてjavascriptでテーブル更新じゃなくて
サーバー側でXML・XSLとか直接テーブルのHTMLを文字列で作ってinnerHTMLでいいやん。
どうしてもJSONで受けたいならJSON渡すだけでテーブル作ってくれるようなjavascriptのライブラリを探せば?
特定列を固定できてスクロールできるようなテーブルとか作ってくれるのもあるし。
02782682007/03/01(木) 00:33:18
>HTMLを文字列で作ってinnerHTMLでいいやん。
確かに。JSONで受けて、クライアントでゴリゴリする必要はないですね…
クライアント側が複雑になりそうですし。
>JSON渡すだけでテーブル作ってくれるようなjavascriptのライブラリを探せば?
探しましたが見つからなかったです。

ActionクラスでDB検索→HTML生成→Reader書き込み→return nullってやつですかね。
0279デフォルトの名無しさん2007/03/01(木) 00:38:24
LinuxでTomcatの構成を考えていますが、動的コンテンツのみで、
そもそもapacheって必要? セキュリティや詳細なアクセスログをとりたい
のなら別ですが、オールインワン構成であれば、余計な負荷をかける
だけになると思うのですが、実際のところどうでしょう。

書籍等で、apache + Tomcat の連携が多かったものですから。
0280デフォルトの名無しさん2007/03/01(木) 01:23:40
>>278
悪い、ReaderじゃなくてWriterだったw
というか、XML or HTMLなら、Writerに書くんじゃなくてJSPやVelocityを
テンプレートで使ったほうがいいと思う
0281デフォルトの名無しさん2007/03/01(木) 01:28:11
TomcatってWebアプリごとに任意のクラスパスを追加ってできる?
とある事情があってWebアプリごとにTomcatのホームディレクトリ配下以外の場所に
Jarとか設定ファイル類をおきたいんだけど。
0282デフォルトの名無しさん2007/03/01(木) 01:51:09
>>281
つ[WEB-INF/classes or WEB-INF/lib]
0283デフォルトの名無しさん2007/03/01(木) 21:59:47
Tomcatで通信したリクエストとレスポンスの全内容を
ログに残すことってできないでしょうか?
0284デフォルトの名無しさん2007/03/01(木) 22:10:07
>>283
つ TCPモニタ
0285デフォルトの名無しさん2007/03/01(木) 23:04:57
>>284
感動しますた。ありがとうございます。
0286デフォルトの名無しさん2007/03/02(金) 01:20:02
>>282
そこ以外でWebアプリごとにJarファイルを置く場所はやっぱり無理なのかな。
リビジョン違いのWebアプリを1台のマシン環境で確認できる環境を作りたいから
環境変数CLASSPATHでもできないし。

Tomcatそのものを環境分分けるとかしないとダメかな
0287デフォルトの名無しさん2007/03/02(金) 09:17:27
>>286
Apacheとの連携でできる
0288デフォルトの名無しさん2007/03/02(金) 09:43:52
Tomcat6 Stable Release あげ
0289デフォルトの名無しさん2007/03/02(金) 17:56:30
6でパフォーマンスさらに良くなるかな?
02902602007/03/05(月) 00:20:42
>261
ってことは、struts-validatorを利用することは可能なのですね。
独自のvalidatorルールズ作れば良いと。

 ただ、フィールドの値を2つないし3つチェックする為には
validator-rules.xmlに追記しないといけないと思うのですが、
どのようにすればよいのでしょうか?
それとも、各プロパティに適用するValidatorルールをvalidation.xml
なんかに記述してそれを見るのか・・・

ググッても2つのフィールドをっていうのが出てこないので困ってます。

validation.xmlにform名とフィールどと対応するjavaクラス(チェッククラス)
を記述し、validator-rules.xmlにvalidation.xmlの呼び出し部分を記述する
見たいな感じなのでしょうか?

上記みたいな説明でわかりやすく教えていただけないでしょうか?
お願いします。です。
0291デフォルトの名無しさん2007/03/05(月) 00:37:44
>>290
StrutsとCommons Validatorのソースとにらめっこすれば、
そう難しいことではないんだけどね・・・


ここで手取り足取り教えるのは正直めんどいので・・・

ぐぐより先に、公式ドキュメント。
http://struts.apache.org/1.3.5/faqs/validator.html
↑このへんからリンクのある
http://www.raibledesigns.com/rd/date/20030226#struts_validator_validating_two_fields
このへんを参考に汁。
あくまで、参考だから、応用が必要。
ズバリ正解そのものではないので注意。
0292デフォルトの名無しさん2007/03/05(月) 13:30:48
TomcatでOracle 10gが使いたいんですけど
classes12.jarが10gに入ってないみたいなんですけど
どうしたらよいでしょうか?
0293デフォルトの名無しさん2007/03/05(月) 13:43:02
>>292
otnからDL
0294デフォルトの名無しさん2007/03/05(月) 13:58:58
classes.jar懐かしいな。最近Oracle使うプロジェクトやってないからなあ
というかjarファイル名いい加減変えろよな。classesじゃ何のjarかわかんね。
0295デフォルトの名無しさん2007/03/05(月) 15:26:27
zip時代よりまし
0296デフォルトの名無しさん2007/03/05(月) 15:42:29
JavaBeansってSirializeインターフェイスを実装しないと
いけないんですか?
0297デフォルトの名無しさん2007/03/05(月) 20:12:59
セッションに入れる場合とかは必須
0298デフォルトの名無しさん2007/03/05(月) 22:28:12
Sirialize実装しないとどうなるんですか?
0299デフォルトの名無しさん2007/03/05(月) 22:31:14
beanをセッションにいれるのはObject型だから問題ないんじゃない?
ファイルとかDBとかにインスタンスを保存する場合じゃないの?
0300デフォルトの名無しさん2007/03/05(月) 22:38:29
>>298
HttpSessionそのものがシリアライズ対象だから、
HttpSessionに入っているオブジェクトがシリアライズされていないと、
例えばコンテナ起動・停止時やクラスタリングのレプリケーション時に
HttpSessionのシリアライズ・デシリアライズに失敗して
正常にSessionを維持できなくなる。
0301デフォルトの名無しさん2007/03/06(火) 00:58:54
>>294
とっくに変わってるが。
0302デフォルトの名無しさん2007/03/08(木) 03:13:30
JSPのソースが70キロバイトを超えると、出力されるHTMLが
途中で切れるのですが、これはJVMの問題でしょうか?
0303デフォルトの名無しさん2007/03/08(木) 07:41:03
いいえ
0304デフォルトの名無しさん2007/03/08(木) 07:45:24
<%@ page buffer="128kb" %>
0305デフォルトの名無しさん2007/03/08(木) 11:00:45
基本は.doという拡張子ですが、Struts丸出しな感じがするので、他の拡張子に
変えたり、他のパターンに変えようかなと思っているのですが、一般的にはどの
ように変えることが多いでしょうか。
静的なページも含めすべてのページの拡張子を.jspに統一して、Actionを.doで
はなく.htmlにしている人がいるのですが、こういうのもありでしょうか。
0306デフォルトの名無しさん2007/03/08(木) 11:11:41
.aspにしている。
0307デフォルトの名無しさん2007/03/08(木) 16:29:59
しばらくtomcatから遠ざかっていたため、
久しぶりにtomcatをダウンロードして(5.5.20)サンプルを作り始めました。

質問:
以下の○1.と、○2. はやっていることは同じだと思ってよいですか?
みなさんは○2.をいつもやっていますか?

○1.
ある web アプリの中で
input.html (HTML form があって、適当に日本語を入力させる) → ResultServlet.java
みたいにつくったとします。
input.html の form のテキストボックスで日本語を入力して、
ResultServlet.java のなかで String name = (String) request.getParameter("name") すると、日本語が化けてしまいます。
input.html は Shift_JIS で作っているので、ResultServlet.java の request.getParameter() の前に
request.setCharacterEncoding("Windows-31J");
を入れたことで回避できました。

03083072007/03/08(木) 16:30:29
307 の続きです。

○2.
http://www.nihon-eng.co.jp/c-break/TechNote/tomcat/TCAT55_Inst.htm#web.xml
(リンク元は http://www.nihon-eng.co.jp/c-break/TechNote/tomcat/TCAT55_MnFrm.htm )
をみると、自分の web アプリの web.xml に以下を追記せよとあります。

<filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>filters.SetCharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>Shift_JIS</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

これは、その web アプリへ飛んできた全ての http request に対して、
filter がまず横取りして、文字コードを全て Shift_JIS (Windows-31Jのほうがいいかなと思いますが)に
変換してから、各 Servlet や jsp に処理が移るというように理解してます。
0309デフォルトの名無しさん2007/03/08(木) 23:41:21
お疲れ様です。

>以下の○1.と、○2. はやっていることは同じだと思ってよいですか?

一緒だと思ってもらっていいともいます。

>みなさんは○2.をいつもやっていますか?

はい。普通はそうすると思います。

以上です。よろしくお願い島す。
0310デフォルトの名無しさん2007/03/09(金) 15:38:36
JSP/Servletの環境でCSVファイルにSQLでアクセスする手法は
どのようなものがあるでしょうか?
0311デフォルトの名無しさん2007/03/09(金) 15:46:03
CSVとSQLの用語を調べてから作業開始したほうがいいよ
0312デフォルトの名無しさん2007/03/09(金) 16:05:19
すみません。わかりにくいですね。
えっとASPの場合はリンクのような方法があるのですが
JSP/Servletにも同様のものがあるかなと思いまして。
http://www.katch.ne.jp/~h-inoue/tips/asp/0001.html
0313デフォルトの名無しさん2007/03/09(金) 16:57:11
ttp://csvjdbc.sourceforge.net/
こんなのがあったぞ
0314デフォルトの名無しさん2007/03/09(金) 17:04:03
>>313
よさげですね。ありがとうございます。
03153022007/03/10(土) 04:57:32
>>304
遅くなりましたがありがとうございました!バッファサイズがデフォルトで
8KBって初めて知りましたorz
0316デフォルトの名無しさん2007/03/10(土) 09:12:30
Strutsで普通につくるとブラウザリロードしたときに
再送信しますか?っていうダイアログ出ますか?
基本forwardだから出ると思うんですが
0317デフォルトの名無しさん2007/03/10(土) 10:31:41
Tomcatって性能的に本番サーバーとしても使えますか?
0318デフォルトの名無しさん2007/03/10(土) 10:56:36
>>316
フォームをPOST送信した後、forwardした場合の話かな?
それなら、出るよ。

>>317
使えます。
0319デフォルトの名無しさん2007/03/10(土) 11:19:52
>>318
出ないようにするとStruts使う意味なくなりますか?
0320デフォルトの名無しさん2007/03/10(土) 11:43:48
>>319
べつにかまわんよ
0321デフォルトの名無しさん2007/03/10(土) 12:26:09
>>317
案件次第
0322デフォルトの名無しさん2007/03/11(日) 04:07:55
>>317
どっかのOSS系のベンチマークを取ってる協会?によると、
tomcat4系までは遅く、5系から劇的に速くなるらしい。(高負荷時)
0323デフォルトの名無しさん2007/03/11(日) 17:17:37
作り方としては
formからpostするときには
postされたservletが次のservletにredirectして
そのservletからjspにforwardするのがいいですかね
0324デフォルトの名無しさん2007/03/11(日) 20:56:03
>>323
なぜそんな回りくどいことをしたいのか理解に苦しむが、
そもそもこのスレのお題であるStrutsを使ったら、普通はそうはならんけどね。
0325デフォルトの名無しさん2007/03/11(日) 21:25:20
普通だと再送信しますか?っていうのが出てしまいますよね?
0326デフォルトの名無しさん2007/03/13(火) 16:08:54
日経ソフトウェアを見るとsessionに格納するJavaBeansも
シリアライズがimprementsされていないのですが
なぜでしょうか?
03272452007/03/13(火) 18:10:53
>>326
日経ソフトウェアだから
■ このスレッドは過去ログ倉庫に格納されています