■■ Servlet/JSP(EJB含む) 質問スレ Part2 ■■
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/05/14 11:32ID:RETM9b3/前スレ
■■ Servlet/JSP(EJB含む) 質問スレ ■■
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
0486481
03/10/28 22:45ID:???0488nobodyさん
03/10/29 01:45ID:???0490nobodyさん
03/10/31 22:19ID:mtbGF6Sw自作クラスライブラリを作って$CATALINA_HOME/shared/libに置きました。
その中からリフレクションAPIを使って、WEB-INF/classesの下に置いてある
クラスをロードしたいのですが、Sharedクラスローダとアプリケーションクラスローダの
守備範囲が違うためか、Class.forName()を使っても、ClassLoader.getSystemClassLoader().loadClass()を使っても、
ClassNotFoundExceptionが飛んでしまいます。
こういう場合のスマートな解決策ってどんな感じでしょうか?
0492+++
03/11/01 00:24ID:???http://www.zdnet.co.jp/developer/0308/24/dvn03.html
ReflectPermissionというのもあるよ。
0493nobodyさん
03/11/01 04:04ID:???何をしたいのかわからないけど、
WEB-INF/{classes,lib}内からロードしておいて
自作クラスライブラリとやらにロードしたクラスの
インスタンスなりClassクラスなりを渡してやるとかではダメですか?
ダメなら、何をしたいのかとダメな理由を具体的に書いてみるとか。
0494490
03/11/01 09:27ID:PnQ6V1Fi>>493
今まさに、その仰った通りの方法でしのいでますが…
やりたいことはJakarta DB SQL Commonsの簡略化版で、DB問合せ結果をBean
にマップして返すという処理です。処理自体は共通なのでSharedに置きたい、
がBeanクラスはWEB-INFの下に置きたい。かつ、アプリの中でBeanクラスを
渡すのではなくて、struts-configみたいなXMLファイルにクラスの名前を書いて
おいて、それを共通処理に読ませたい(ので、493で言われたクラスを渡す方法は使いたくない)。
>>492
Tomcatのクラスローダがああなってる理由は一応わかるので、セキュリティを
いじるのはあんまりやりたくないんでつ
0495nobodyさん
03/11/02 14:30ID:XjVR5g7/じゃぁ、クラスローダを渡してやるのは?
public class SharedClass {
private ClassLoader classLoader;
private Map beanNameMap;
public SharedClass(ClassLoader cl, Map map) {
classLoader = cl;
beanNameMap = map;
}
public Object newInstance(String name) {
String className = (String) beanNameMap.get(name);
return Class.forName(className, true, classLoader).newInstance();
}
}
public class MyServlet extends HttpServlet {
private SharedClass sharedClass;
public void init() throws ServletException {
Map map = /* クラス名を書いておいたファイルから読み込む */
sharedClass = new SharedClass(this.getClass().getClassLoader(), map);
}
void useSharedClass() {
Object bean = sharedClass.newInstance("hogebean");
・・・
}
}
でも、これで解決するような話なら
あまり悩むようなことではなさそうだし
私、何か勘違いしてるかな?
0496nobodyさん
03/11/04 05:31ID:XuV+B38+起こして溜まってしまった、利用されていないコネクションを
強制的に返却なり捨てるなり、DataSourceそのものを初期化する
方法ってありませんか?
0498nobodyさん
03/11/10 17:37ID:beKsstU3>307 名前:nobodyさん 投稿日:2003/07/15(火) 17:07 ID:mN7Rw2O3
>apache 2.0.46にtomcat4.1.24を連携させて動かそうとしています。
>http://localhost/examples/でサンプルのディレクトリ一覧を表示するとこまでは行けたのですが、
>jsp、servletsのディレクトリの内のhtmlが404エラーが出て読み込みません。
>サンプルプログラムに直接アクセスしたりtomcat単体で動かすとちゃんと実行できますし、
>apacheと連携させないでtomcat単体で動かすとhtmlも表示できます。
>どうやったらapacheとの連携でhtmlファイルを読み込むことができますか?
これと同じ事が起こったんですけど、
コネクタはmod_jk2.soを使っていて310の書き込みを見てhttpd.confに、
Alias /examples "/usr/local/jakarta-tomcat/webapps/examples"
を書き加えましたが改善されません。
もちろんパスも間違えていません。
朝から検索しまくってるのですが全然見つかりません。
良い解決法はないでしょうか?
0499nobodyさん
03/11/12 07:29ID:BQSDQCno<A href="sample.java?param1=<%= java.net.URLEncoder.encode("パラメータ1") %>">ここをクリック</A>
のような感じで、エンコードをしてからサーブレット(sample.java)に渡しているのですが、
サーブレット側でgetPrameterで受けとるときに、何も値が入ってません。
1バイト文字なら問題ないのですが。。。
0500nobodyさん
03/11/12 09:39ID:???そのJSPから生成されたHTMLを調べないのはなぜだ?
0501nobodyさん
03/11/12 14:00ID:???0503nobodyさん
03/11/14 00:15ID:/cKQoZtV0505nobodyさん
03/11/16 17:28ID:xjmY728Y<%@ page language="java" contentType="text/html; charset=Windows-31J" %>
なんですが、auのHDML-HTMLコンバーターがWindows-31Jを認識しません。
<%@ page language="java" contentType="text/html; charset=Shift_JIS" %>
と書くと認識しますが、JDK1.4.1からShift_JISとWindows-31Jはコードのマッピングが
違うため、いくつか文字化けする文字があります。
みなさんどうしてますか? 気にしてない?
0506nobodyさん
03/11/18 03:20ID:YWvRXQpihttp://takeoba.cool.ne.jp/moreJava/servletHello.htm
を試したところ、ステータスが404表示されたので
「あー、HelloWorldサーブレットの場所が分からないのね」って思い
web.xmlに次の文を追加したところ
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
今度はエラーステータス500が表示されてしまいました。
他のサイトのサンプルをみてもとても簡単にサーブレットを起動
させているので自分の環境が悪いのかなぁって感じています。
同じようなことを経験された方がいましたら是非対応テクを教えてください。
また上記サンプルを試して(デプロイも含めて)無問題だという方ございましたら
お手数ですが挙手おねがいします。
もう一度自分の環境を洗ってみます。
ちなみにTomcat4.1.27、j2sdk1.4.2です。よろしくお願いします。
0508nobodyさん
03/11/18 10:20ID:???教材が悪かったな。
そのページに書いてあることは間違いだらけだ。
だいたいそのままやってもコンパイルできないだろ…。
とりあえずtomcatのログを見てがんばってみるか、
それでもダメだと思ったら教材を替えれ。
0509506です その1
03/11/18 15:06ID:jQNQBxBOサンプルがダメダメってことですか?だとしたらとてもショックです。
夕方から始めてその時間まで粘ってたんです。
だけど他のサイトとか見ても大体同じようなことが記述されているんですよね。
ちなみにコンパイルは通しました(開発環境はエクリプスです)。
508さんはおそらくservlet.jar以外のクラスパスのことをおっしゃてるんですよね。
またTomcatに表示されるエラーですが、長いので抜粋しますと、
type:
Exception repor
descriptiont:
The server encountered an internal error () that
prevented it from fulfilling this request.
exception:
java.lang.ClassCastException
:
:
てな感じです。何か深いとこで例外が発生してます?
0510506です その2
03/11/18 15:07ID:jQNQBxBOHelloWorldが表示されないのは、何か情報が足りないんですかね?
そこでお伺いしたいのですが、例えばサーブレットを作成してできたclassファイルを
CATALINA_HOME%\webapps\examples\web-inf\classes\の直下にデプロイする
ということは技術的に問題はないですよね?
またweb.xmlに<servlet>、<servlet-mapping>を記述する必要はあるのでしょうか?
つかり本当は記述すべきだが、特に必要なしってこともあるのかということです。
(サイトによってはそこまで言及していないところもあったですから・・・)
私も再度チャレンジしてみます。
すいませんがまた気が向いたら何か情報を書き込んでください。
0512nobodyさん
03/11/18 23:10ID:???agent多すぎてなんだかな。
レスポンスを変えると、JSPソース埋め込みの、「�@」みたいな
いわゆる98文字がおかしなことに。
0513nobodyさん
03/11/20 01:17ID:jMJIcLvQmod_webapp.soかmod_jk.soのLinux版バイナリを手に入れたいのですが、どうすればいいでしょうか?
jakarta.apache.orgから探せません・・・_| ̄|○
0514nobodyさん
03/11/20 04:55ID:???http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/v2.0.1/bin/linux/i386/
0515nobodyさん
03/11/20 23:41ID:jMJIcLvQサンクス。
もっともなのでビルドしますた。
configureの引き数間違えたりして手間取りましたが。
0516nobodyさん
03/11/21 16:50ID:YzFZUN0Eもう一回まっさらな状態からやり直せばできるんじゃん。
きっと無駄なことをやりすぎでは (´Д`;)
>>508
漏れはコンパイルできたけど・・・。漏れの環境がおかしいのか (´Д`;)
0517nobodyさん
03/11/22 01:14ID:gGrGrQPOWindows-31Jではなくて、MS932にすると、認識されます。
0519nobodyさん
03/11/27 02:08ID:aFey5batみなさんXSS対策とかどうしてますか?
HTMLタグを除去するにも
自分で1から書かないと逝けないのですか?(;´Д`)
0521nobodyさん
03/11/27 06:58ID:???http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/StringEscapeUtils.html
こういうのもあるよ
0522nobodyさん
03/11/28 00:52ID:???DB用のエスケープとか、文字数制限もやりたいとかやると
結局自分で書いたほうが早い。
0523519
03/11/28 22:03ID:???HTML関連だけならcommonsだけでも十分ぽです
早速使ってみます(=゚ω゚)ノ
0524nobodyさん
03/11/30 20:19ID:???操作できるツールってありませんか?
アプリの裏管理のとして組み込みたいのですが。
0525nobodyさん
03/11/30 21:41ID:???0526nobodyさん
03/12/02 16:56ID:bqzh3QZl組みたいんでつけど、サンプルソース付きの本とか知らないでつか?
サイトでもいいんでつけど。
0527nobodyさん
03/12/02 22:48ID:???localhost/hoge/foo/ , localhost/hoge/bar/ とかいうようにデプロイってできるの?
0528nobodyさん
03/12/02 23:43ID:???今日Tomcatでやったらできた。
<Context path="/hoge/foo" docBase="どこか/foo" .... />
0530nobodyさん
03/12/04 22:11ID:???さんくす。デプロイ自体は問題なくできますね。
けどwarの展開がなんかうまくいかん。
0531526
03/12/05 10:50ID:nKIx4TdKレスありがトン。
所要量展開(MRP)のサンプルが、狂おしい程欲しい。
0532526
03/12/05 12:45ID:???この本に「第9章 実用アプリケーションの作成 9-3 スケジュール管理:基本機能」
ってのがあるみたいだぞ?オレは読んだことないが。
http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4798006041/contents/ref=cm_toc_more/249-9631441-2769117
0534nobodyさん
03/12/09 19:35ID:???JSPカスタムタグに
<rtexprvalue>要素がありますが、
これはどう発音するのですか?
るてくすぷるばりゅー?
0537nobodyさん
03/12/12 00:48ID:???これはCGIの機能と同じと思ってさしつかえないのでしょうか?
(CGIはファイルIOでデータのやり取りをする程度の知識しかしらない。)
SAXを用いるより軽いのでしょうか?
質問していて恐縮ですが、もう寝させていただきます。返事は後日に。
0538nobodyさん
03/12/12 21:18ID:???はい。ここで問題。
1)直列化とは何をどうするものなのでしょう?
2)CGIとは何でしょう? ファイルI/OしないCGIはあるのでしょうか?
3)SAXとは何でしょう? csvとかバイナリとか読めるのでしょうか?
0539nobodyさん
03/12/12 21:51ID:???jsp内にsession.setAttribute("hoge", "hoge");という記述をし<jsp:forward page="hoge.jsp" />で
ページを移動したあと、にsession.getAttribute("hoge");で取得した値がnullを返します。
最初のページと次のページでsession.getId()の値が違うため別セッションになっているような気がします。
ちなみにこの現象はIEでのみ発生し, operaやnetscape等では発生しません。
当方の知識ではさっぱりこの現象が理解できません。どなたかお知恵を貸していただけないでしょうか?
環境はRedHat7.2, apache1.3.20-16, tomcat-4.1.29, mod_webapp(4.1.12)になります。
よろしくお願いいたします。
0540nobodyさん
03/12/13 04:18ID:???Apache通さないでTomcatに直接アクセスした場合も発生する?
0541nobodyさん
03/12/13 10:53ID:???apacheを通さないでも同じ現象になりました。
クライアントの環境ですが、Win2K+IE5.5 WinXP+IE6.0で現象を確認しております。
NT4+IE6.0では発生しませんでした。
それとWin2K+tomcat-4.1.29の組合せでは現象が出ませんでした。
0542nobodyさん
03/12/13 12:09ID:???別の機械で同じ環境を用意すると動作しました。
大変お騒がせいたしました。申し訳ありません。
0544538
03/12/13 21:05ID:???いや、自分で調べろって言いたい前に、質問が質問になってないのよ。
例えばここが野球スレだったとしてさ、
今さっき、ヒットエンドランの技を知った。(w
これは六甲おろしと同じと思ってさしつかえないのでしょうか?
(六甲おろしはアルプススタンドでシャウトをする程度の知識しかしらない。)
オリックスでバントするより強いのでしょうか?
質問していて恐縮ですが、もう寝させていただきます。返事は後日に。
というような感じで、俺にどう答えろと?
無視して欲しかったんなら謝る。
0545nobodyさん
03/12/15 22:32ID:xeYZT3ZQsessionに割り当てられる識別子は、
「識別子は実装依存であり、Servletコンテナによって割り当てられます。 」
と、APIドキュメントに記述されてますが、
tomcatではこの識別子のサイズを変更する事は可能でしょうか?
tomcat4,1,29で割り当てられる識別子が32バイトと長い為、
少し短くしたいと思うのですが・・・。
0547545
03/12/17 00:53ID:???一応報告でつ。
時間かかりましたけど、ソースを探してるうちにそれらしき箇所を発見しました。
/src/share/org/apache/catalina/session/ManagerBase.java 内で、
SESSION_ID_BYTES という変数で、jsessionidの文字列の長さを指定してますた。
明日変更して実験してみまつ。
Tomcatの動作に問題無ければいいんだけど・・・。
0548545
03/12/17 14:30ID:???sessionidは、
1) SESSION_ID_BYTES で指定されたサイズのバイト配列に乱数をセット。
2) この乱数のMD5値を取得後、MD5値を1バイト毎にchar型の英数字2文字に変換
のように作成されていますた。
MD5が128ビットである為、SESSION_ID_BYTES の値を変えても無駄ですた。
結局 2) でMD5から英数字に変えるとこをchar型の英数字1文字にさせる事で
sessionidを16文字にできますた。
ざっとテストしたところ、問題なさそうです。
・補足
なぜsessionidを短くしたかったかというと、携帯向けサイトでsession管理をさせたい為、
デフォルトの32文字では長すぎて、表示されるページのサイズが大きくなる為です。
0550nobodyさん
03/12/18 01:06ID:???だったらResin使えば?SessionIDもっと短いよ。
0553nobodyさん
03/12/18 03:12ID:???7万ページビュー/日のサイトで使ってるけど落ちないよ。
Resinは一見速く見えるけど、マルチスレッドの並行処理をさせると
とたんに激遅になる。Tomcatのほうがこの辺はちゃんと作ってある印象。
0554nobodyさん
03/12/18 14:01ID:???0555nobodyさん
03/12/18 23:49ID:???あるけど問題なかったよ。スピードなら秒1000PVぐらいは安定で出た。
激遅になるのはなんか設定が違うんだと思うけど。
TOMCATは前はちょと不安定すぎだったので懲りたんだけど、いまは
ちゃんと動くんですね。
0556nobodyさん
03/12/18 23:59ID:???ResinはDBコネクションプールとか便利だから使ってたんだけど
いまいちコネクションプールの挙動おかしくて、安定したのは
この半年って感じですが。ver.3系列はまだ怖くて入れてないです。
商用なら素直にWebSphere使えとかいわないでね。高いにょ。
0557nobodyさん
03/12/20 02:53ID:3Ajk+rATtomcat 4.1.xだと、遅いながらも、落ちないでがんばってた。
混雑時、tomcat 4.1.xだとjspのコンパイルに失敗しやすい。
メモリは2G、適切にJVMの設定をしてるはずなのだが・・・。
0558nobodyさん
03/12/20 09:10ID:???JVMのメモリサイズってどうしてます?
うちも2GB積んでるんだけど、あまり大きくとるとフルGC実行時に反応しなくなるので
512MBにしてるんですが。残りの1GB以上が無駄になってるけど(;´Д`)
0559nobodyさん
03/12/20 13:59ID:???うちは、メモリ2Gでなんとなく↓な設定にしてますが、みなさんどう?
-server
-Xms512M
-Xmx1024M
JDKは1.4.1です。
なお一日1回サーブレットコンテナにリブートかけてます。
(GCできないリーク対策。っていうか保険)
残りの1Gはキャッシュだと思ってあんまり深く考えない
ことにしてます。でもキャッシュといってもコンテンツ全部で
100Mもないんですが・・・
0560nobodyさん
03/12/21 18:10ID:???このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0561nobodyさん
03/12/22 01:29ID:lBVSbJ12今日の夕方ころからjakarta.apache.orgとかアパッチのサイト
にアクセス出来ないんだ。俺だけ?それとも何かあったの?
0562nobodyさん
03/12/22 01:37ID:lBVSbJ12確かに、Xmxは実メモリの半分〜75%くらい、Xmsはその半分、という話に
なってるけど、Xmsがあまり大きいとGCが大変らしいので、せいぜい256で
止めてます。
逆に、システムの速度計測なんかする間だけXmsとXmxを大きく取って
計測中だけレスポンス・パフォーマンスが良いように見せかける手もあるとか。
それと、スレッドスタックサイズがデフォルトでは大きすぎるって話なので
Xssを196k〜256kにしてる。
デフォルトでは512kも取ってるんだけど、重いスレッドが多くない限りは
それほど要らないとかなんとか。
0563a
03/12/22 02:01ID:???patch当てるようにって
作者のページに書いてあるの知ってる?
0564nobodyさん
03/12/22 21:58ID:xP8Tyv35どうやるんですか?
プロセスの終了とともに更新したいんですけど
教えてください。
0565nobodyさん
03/12/22 22:01ID:???無理。っていうか意味わからん。
0566nobodyさん
03/12/22 22:14ID:???ああ、レスありがとうございますたすかります。
>プロセス
Servletからアプリを実行して、その後JSPにフォワードするんですが、
そのアプリが終了したらJSPのページを更新したいんです。
どうにかなりませんか?よろしくおねがいします
0567nobodyさん
03/12/22 22:18ID:???言っていることがよくわからない。
ServletやJSPで「プロセスの終了」「アプリの終了」とは
Servletコンテナの停止(アプリケーションサーバの停止)だ。
アプリケーションサーバが停まったらJSPなんか動かないだろ?
0569nobodyさん
03/12/22 22:53ID:???そうですか、もしかして見当違いのこと言ってますかね?漏れ
だとしたらほんと申し訳ないです。
じゃあ、っていうか、JSPを5秒ごととかに自動更新とかもできないですかね?
0570nobodyさん
03/12/22 23:16ID:???>JSPを5秒ごととかに自動更新
JSPの話でも何でもない。HTMLタグの問題。METAタグのrefreshでも使え。
ttp://tohoho.wakusei.ne.jp/html/meta.htm
0571nobodyさん
03/12/24 14:18ID:q/VRYBlL0572+++
03/12/24 18:59ID:???こないだ出てたWEB-DBpressに書いてあったのでちょっと驚いた。
やり方も書いてたので571さんは参考にすればいいかもね。
Tomcat4.xでしたいって場合は知らない。
0573nobodyさん
03/12/25 01:05ID:???セッション保持できる。
0574+++
03/12/25 11:53ID:???そうなの?てか、商業的Webコンテナはそういう機能たいてい持ってるからね。
それから、読めばTomcat4でも追加できるって書いてた。
これ無いと辛いんじゃないのかな、実運用じゃ。
0575nobodyさん
03/12/25 23:33ID:???ぐらいのWebサーバーなら普通に1サーバーでさばけるよ。
もちろん表示するものにもよるんだけど。
むしろDBのほうがボトルネックかな。
0576sage
03/12/28 01:05ID:k5T4K5TZ一般的には、同じマシンを参照する様にバランサを設定するけど、
場合によっては、セッション保持用のサーバを設置します。
または、DBへセッション情報を保存。
DBへの保存はあまり進めない。
0578+++
04/01/05 13:24ID:???負荷分散というより、Tomcat(orマシン)が落ちるのが不安なので。
某ムック本にもセッションレプリケーションが無いために苦労した、という
記述があったし。
0580nobodyさん
04/01/10 12:46ID:qUk4zghmTOMCATのインストール(?)についてわからないので質問したいです。
TOMCATをインストールして
localhost:8080にアクセスすると
ダイアログボックスにユーザー名とパスワードの入力を促す画面が
出てきて、そこから先に進まなくなってしまいます。
ユーザー名などを入力しても
Unauthorized という画面が表示されておしまいです。
どなたか対処方法を教えてください。
よろしくお願いします。
[OSのVER]:WINDOWS 2000
[tomcatのVER]:tomcat4.1.24
よろしくお願いいたします。
0581nobodyさん
04/01/10 13:02ID:???tomcatの出しているダイアログじゃ無い気がするな。
ダイアログを舐めるように見て誰が出しているのか確認する。
FireWallやプロキシが出しているなら通過するように設定する。
0582538
04/01/10 13:20ID:???そのインストールしてあるパソコン上でアドミニ権限でログインして実行しても
同じメッセージ出る?
他のパソコンからアクセスしているのなら、表示しようとしているファイルに対するアクセス
権限がないだけだと思うけど。
もしOSじゃなくてtomcat自身が出しているダイアログボックスっぽかったら、ユーザadmin
パスワードなしでやってみ。
0583580
04/01/10 13:44ID:qUk4zghm回答ありがとうございます。
他のサイトで同じ症状が発生してる人がいて
ORACLEによるものじゃないか?といわれていました。
私もORACLEをインストールしてあるので、その可能性があるかもしれません。
そのメッセージを出してるものってどうやったら調べられるのでしょうか?
(初心者ですいません)
ちなみにログインはアドミニ権限で、同じパソコンでアクセスしようとしてます。
よろしくお願いいたします。
0584nobodyさん
04/01/10 14:12ID:???XPなら netstat -o でプロセスIDが分かるけど、2000は駄目みたいだね。
tomcatを起動する前に netstat -a で 8080をlistenされてないか調べるくらいかな。
Oracleを止めるわけには行かないだろうし、sever.xmlを編集して
tomcatのポートを変えるのがいいんじゃないかな?
0585580
04/01/10 14:52ID:???ありがとうございます。
tomcatをとめてからnetstat -a したら やっぱり 8080 が listen
になってたので、ORACLEがつかってたみたいです。
それでtomcatのポートを8081にしたら、
できました。ありがとうございました。
0586nobodyさん
04/01/10 18:08ID:???その情報はいつまで保持されるんでしょうか?
セッションが切れても保持できるんでしょうか?
また、データをArrayListにしているBeansプログラムを
幾つかのサーブレットやBeansから見たいときは
どうすればよいでしょうか?
今そのBeansをセッションに追加して、見ているのですが、
ほかによい方法があったら教えてください。
お願いします。
■ このスレッドは過去ログ倉庫に格納されています