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

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
0002デフォルトの名無しさん2006/10/26(木) 22:31:05
はいはい、2getしてやったぞ。
0003デフォルトの名無しさん2006/10/27(金) 14:34:15
>>1
で、出来たのか?
0004デフォルトの名無しさん2006/10/28(土) 21:38:20
>>3
できてねーよ。できるわけがねーだろ。
本も読んだし、ググって例と同じようにやっても
できねーんだから無理なんだよ。
「できる」とか嘘ついたお前らをいつまでも罵倒し続けてやる。
0005デフォルトの名無しさん2006/10/28(土) 21:55:53
はいはい、わろすわろす
0006デフォルトの名無しさん2006/10/29(日) 15:30:59
CentOS3上で
httpd2.0.46+Tomcat5.5.20+mod_jk2+jdk1.5.0_09
の連携をやっているのですが、おかしな動きをします。
原因をご存知の方に解決法を教えて頂きたく書かせて頂きます。

変な動きとは、
A.{CATALINA_HOME}/conf/web.xml内のwelcome-file-listに指定のある
  ファイルのみ参照される。
B.上記ファイルの入ったディレクトリを指定した時のみJSPが稼動し、
  同ディレクトリ内の別名JSPを直に指定すると404となる。

例
1.welcome-file-list に「index.jsp」を指定
2.workers2.propatiesにて /tester/* を指定
3.{CATALINA_HOME}/conf/Catalina/localhost/tester.xml でContext指定
4.index.jspを3.で指定したフォルダに格納
5.WEB-INF以下フォルダとweb.xmlを作成

1〜5を実行のうえ、
http://www.hoge.com/tester/にアクセスするとOK
http://www.hoge.com/tester/index.jspにアクセスすると404

という動きです。
TOMCATではなく、Apacheの設定なんでしょうか・・・。
お知恵をお貸し下さい。
0007デフォルトの名無しさん2006/10/30(月) 10:27:03
WEB-INF/libディレクトリに入れたjarファイルは勝手にクラスパスに入るけど、
他のディレクトリにも同じような機能を持たせることって設定しだいで可能?

WEB-INF/hage 以下のjarファイルもクラスパスに入るようにしたい。
0008デフォルトの名無しさん2006/10/30(月) 11:13:34
>>7
クラスローダ自作して、設定を変えればおk。

ただし、
>WEB-INF/hage 以下のjarファイルもクラスパスに入るようにしたい。
なぜそんなことが必要なのか、激しく疑問。
0009デフォルトの名無しさん2006/11/03(金) 20:22:05
StrutsのFilterの設定がまったくさっぱりです
エクリプス3.1を使用しているのですが

web.xmlに
<filter>
 <filter-name>Encoding</filter-name>
 <filter-class>encoding.EncodingFilter</filter-class>
 <init-param>
  <param-name>encoding</param-name>
  <param-value>Shift_JIS</param-value>
 </init-param>
</filter>
<filter-mapping>
 <filter-name>Encoding</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

で、
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>
を
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd";>

ってやると
<?xml version="1.0" encoding="Shift_JIS"?>
のところにバッテンマーク

調べてもわからんです
0010デフォルトの名無しさん2006/11/03(金) 20:32:23
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd";>

じゃなくて

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd";>
001192006/11/04(土) 19:57:33
>>10
問題なくできました!!

本当にありがとうございます
0012デフォルトの名無しさん2006/11/08(水) 22:29:23
ViewHelperパターンって

・JSPの条件ロジックや表示整形ロジックを別クラスにしてJSPから呼び出す

・データベースからとってきたDTOをJSPでそのまま表示できるように
 アクションで変換する。

という2通りの使われ方してると思うのですが、みなさん実際はどうしてますか?
0013デフォルトの名無しさん2006/11/10(金) 12:53:43
tomcatを5に上げたら servletから Integerを setAttributeして jspに渡せな
くなった。
デフォルトコンストラクタが無いのが原因らしいので、MyIntegerのBeans作って
対処したけど、これってもっとスマートな方法ないの?
0014デフォルトの名無しさん2006/11/10(金) 20:18:01
サーブレットのフィルタを行いたいのですが、
web.xmlへの記述で、
<filter-mapping>内の<url-pattern>内に、/* と指定すると、
サーブレットのみではなく、*.jspや*.gifなどのリクエストに対しても
フィルタクラスが呼び出されてしまいます。

これをサーブレットのみが呼び出されるようにするにはどうしたらいいのでしょうか?
サーブレット名には拡張子がないので、拡張子でパターンを絞る事ができないんです。
0015デフォルトの名無しさん2006/11/10(金) 20:48:55
WEBプログラミング板にあるべきスレなんじゃなかろうか。
0016デフォルトの名無しさん2006/11/10(金) 23:24:11
質問させてください。

サイトAとサイトBがあって
サイトAにアクセスしてクッキーにjsessionidが保存されるわけなんだけど
セッションタイムアウトする前にサイトBに移動した場合
jsessionidはサイトBのもので上書きされてしまうものなのでしょうか。
0017デフォルトの名無しさん2006/11/10(金) 23:33:11
されない。
0018デフォルトの名無しさん2006/11/10(金) 23:44:48
ということはクッキーはサイト単位で管理されて
同じキー名でもサイトが違えば上書きされないということでしょうか。
0019デフォルトの名無しさん2006/11/10(金) 23:52:26
そう。
0020デフォルトの名無しさん2006/11/10(金) 23:55:12
ありがとうございます。とても勉強になりました。
0021デフォルトの名無しさん2006/11/11(土) 00:11:00
>>14

サーブレット1個1個登録すればOK
0022デフォルトの名無しさん2006/11/11(土) 12:59:43
Apacheのurlパターン指定でimgだけ避けて通るように出来たりしないの?
0023デフォルトの名無しさん2006/11/11(土) 14:28:54
>>13
Tomcat5.0.28とTomcat5.5.1で問題なく渡せたのだが

>>14
自分でかってに拡張子の無いパスを設定してるだけだろ。
拡張子を設定すればいいだけじゃね?
0024232006/11/11(土) 14:34:44
Tomcat5.0.28とTomcat5.5.17だった。
0025142006/11/12(日) 07:01:15
>>21 23
ありがとございます。
サーブレットの数が多いので拡張子を付けようと思います。
0026 ◆v/SR6P2sZU 2006/11/13(月) 01:43:17
教えてください。

apache2.x系 tomcat5.0 FedoraCoreLinux
という環境でjspをたたくと以下のExceptionが。

javax.servlet.ServletException: ActionMappingsまたはActionFormBeansコレクションが見つかりません
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.jsp.sample_jsp._jspService(sample_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

/usr/local/tomcat/opt/apr/jsp
にjspを。
/usr/local/tomcat/opt/apr/WEB-INF/classes
の下にclassファイルを置いているのですが、どうもclassファイルの方をみていないような・・・?

server.xmlの設定は以下です。
<Context path="/apr" docBase="/usr/local/tomcat/opt/apr" debug="0" reloadable="true" >

URI:http://xxx/apr/jsp/sample.jsp

/usr/local/tomcat/opt/apr/WEB-INF/classes
の下においたclassファイルを参照するような設定どこに書けばよいでしょうか。
0027 ◆v/SR6P2sZU 2006/11/13(月) 01:47:35
言い忘れました。
struts1.3系使ってます。

struts-config.xmlは以下。
<struts-config>
<form-beans><form-bean name="loginForm" type="LoginForm"/></form-beans>
<action-mappings>
<action path="/loginAction" type="LoginAction" name="loginAction">
<forward name="success" path="/sample.jsp" />
</action>
</action-mappings>
</struts-config>

jspは以下です。
<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ taglib uri="/WEB-INF/lib/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/lib/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/lib/struts-logic.tld" prefix="logic" %>
<html:html>
<head><title>ログイン画面</title>
<body>
<html:form action="/loginAction">
<table border="0">
<tr><td>名前</td><td><html:text property="name" /></td></tr><tr>
<td>パスワード</td><td><html:password property="password" /></td></tr>
<tr><td colspan="2"><html:submit value="ログイン" /></td></tr>
</table>
</html:form>
</body>
</html:html>
以上、ご教授ください。。
0028 ◆v/SR6P2sZU 2006/11/13(月) 01:53:33
小出しでスマソ

LoginActionとLoginFormはパッケージなしのdefaultパッケージです。

そいで
/usr/local/tomcat/opt/apr/WEB-INF/classes
においてます。

以上。
0029デフォルトの名無しさん2006/11/13(月) 08:08:35
なんで、動かない危険性があるのにデフォルトパッケージにするのかと。
0030 ◆v/SR6P2sZU 2006/11/13(月) 21:28:53
>29
パッケージをつくってそこにいれてやっても同じでした。

どうも/usr/local/tomcat/opt/aprの下を見てない感じが。
0031 ◆v/SR6P2sZU 2006/11/13(月) 22:06:06
ログです。
2006/11/13 21:57:37 org.apache.catalina.core.StandardHostDeployer remove
情報: コンテキストパス /apr のWebアプリケーションを削除します
2006/11/13 21:57:37 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/tomcat/conf/Catalina/localhost/apr.xml を処理しています
2006/11/13 21:57:37 org.apache.catalina.startup.ContextConfig applicationConfig
情報: アプリケーションのweb.xmlが見つかりません、デフォルトだけを使用します StandardEngine[Catalina].StandardHost[localhost].StandardContext[/apr]
2006/11/13 21:57:39 org.apache.catalina.core.StandardService stop
情報: サービス Catalina を停止します
2006/11/13 21:57:39 org.apache.catalina.core.StandardHostDeployer remove
情報: コンテキストパス /admin のWebアプリケーションを削除します
2006/11/13 21:57:39 org.apache.catalina.logger.LoggerBase stop
情報: unregistering logger Catalina:type=Logger,path=/admin,host=localhost
2006/11/13 21:57:39 org.apache.catalina.core.StandardHostDeployer remove
情報: コンテキストパス /apr のWebアプリケーションを削除します
(略)

/aprを消しに行っているのは良いのですが
0032 ◆v/SR6P2sZU 2006/11/13(月) 22:09:08
情報: サービス Catalina を起動します
(略)
情報: validateJarFile(/usr/local/tomcat/opt/apr/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2006/11/13 21:57:41 org.apache.catalina.loader.WebappClassLoader validateJarFile
情報: validateJarFile(/usr/local/tomcat/opt/apr/WEB-INF/lib/servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2006/11/13 21:57:41 org.apache.catalina.core.StandardHost getDeployer
情報: Create Host deployer for direct deployment ( non-jmx )
2006/11/13 21:57:41 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/tomcat/conf/Catalina/localhost/balancer.xml を処理しています
2006/11/13 21:57:41 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/tomcat/conf/Catalina/localhost/manager.xml を処理しています
2006/11/13 21:57:41 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/tomcat/conf/Catalina/localhost/admin.xml を処理しています
0033 ◆v/SR6P2sZU 2006/11/13(月) 22:10:33
(略)
情報: URL file:/usr/local/tomcat/webapps/ROOT からコンテキストパス にWebアプリケーションをインストールします
2006/11/13 21:57:43 org.apache.catalina.core.StandardHostDeployer install
情報: URL file:/usr/local/tomcat/webapps/servlets-examples からコンテキストパス /servlets-examples にWebアプリケーションをインストールします
2006/11/13 21:57:43 org.apache.catalina.core.StandardHostDeployer install
情報: URL file:/usr/local/tomcat/webapps/jsp-examples からコンテキストパス /jsp-examples にWebアプリケーションをインストールします
2006/11/13 21:57:43 org.apache.catalina.core.StandardHostDeployer install
情報: URL file:/usr/local/tomcat/webapps/webdav からコンテキストパス /webdav にWebアプリケーションをインストールします
2006/11/13 21:57:43 org.apache.catalina.core.StandardHostDeployer install
情報: URL file:/usr/local/tomcat/webapps/tomcat-docs からコンテキストパス /tomcat-docs にWebアプリケーションをインストールします
(略)

>32 と >33で、「〜を処理しています」と「〜をインストールします」
に、/aprに関するログがでてません。

ちなみに
:/usr/local/tomcat/conf/Catalina/localhost/にはapr.xmlというファイルは置いています。
0034デフォルトの名無しさん2006/11/14(火) 02:27:11
質問です。
StrutsでActionFormが必要ない(リクエストデータが無い)場合でも
ActionFormクラスを用意する必要があるのでしょうか?(省略は可能?)
もう一つ。
リクエストデータが「hoge.do?aaaaa」等のようにkey=valueの形式になっていない場合
ActionFormはどのように作るのでしょうか?(別のやり方になる?)
0035デフォルトの名無しさん2006/11/15(水) 00:23:26
>>34

>StrutsでActionFormが必要ない(リクエストデータが無い)場合でも
>ActionFormクラスを用意する必要があるのでしょうか?(省略は可能?)

必要ありません。struts-configで設定できる。

>リクエストデータが「hoge.do?aaaaa」等のようにkey=valueの形式になっていない場合
>ActionFormはどのように作るのでしょうか?(別のやり方になる?)

イメージがよくわかりませんが、request.getPrameterで取得できないものは
ActionFormつくっても無駄です。
0036デフォルトの名無しさん2006/11/18(土) 21:47:40
TomcatのJNDIレルムにおいて、LDAPSを使う場合の設定例が見つからないのですが
何か良いサンプルはありませんか?
0037デフォルトの名無しさん2006/11/21(火) 15:35:04
taglibの質問なんだけども、
チェックボックスとかラジオボタンのnameとかvalue属性以外の属性をセットするのってどうやるん(´・ω・`)?
例えばid属性とか。
0038デフォルトの名無しさん2006/11/21(火) 15:57:03
>>37
あらかじめ仕様で用意されている属性しか使えない。
属性を追加したかったら、カスタムタグを自作するしかない。
0039デフォルトの名無しさん2006/11/21(火) 19:29:33
>>38
サンクスコ(´・ω・`)
0040デフォルトの名無しさん2006/11/25(土) 01:43:08
doPostってIOExceptionとServletExceptionを投げるようですが、
これはどこに投げているんですか?
catchして処理したいのですが・・・
0041デフォルトの名無しさん2006/11/25(土) 02:18:51
>>40
サーブレットコンテナに投げている。
catchして処理するのは、doPostを呼ぶ側の処理でしょ。
処理したいなら投げずに処理すればいいのでは?
0042デフォルトの名無しさん2006/11/25(土) 06:01:52
JSPのカスタムタグで質問です。
例えば
<a href="<bean:write name="userId" scope="request">">
みたいに
HTMLの書式に反するような書き方が嫌なのですが、
<a href="{bean:write name="userId" scope="request"}">
このようなカスタムタグを作ることは可能でしょうか?
0043デフォルトの名無しさん2006/11/25(土) 06:04:59
>>42
えっと、普通に
<a href="${userId}">
じゃダメなの?
0044デフォルトの名無しさん2006/11/25(土) 06:41:42
>>43
すみません。環境を書くのを忘れていました。
Tomcat4.1.31?なのでEL式は使えないと思いました。
0045デフォルトの名無しさん2006/11/25(土) 06:45:58
質問です。
ActionErrorsオブジェクトの中身を
<html:erros>を使わずに<logic:iterate>を使って出力したいのですが
どのようにすればよろしいでしょうか?
0046デフォルトの名無しさん2006/11/25(土) 07:08:45
>>40
web.xmlに<error-page>を書いて、その遷移先で処理する
0047鰭2006/11/25(土) 12:01:49
Excuse me, help me please. JSPを使ってディスク内の指定ディレクトリを入力して、その内容を表示させたいんですが。どうやれば良いですか?多分、Fileクラスを使うと思うんですが・・・
0048デフォルトの名無しさん2006/11/26(日) 09:32:36
>>42
そんなカスタムタグの書式に反する書き方は出来ない。
0049デフォルトの名無しさん2006/11/26(日) 16:46:07
>>47
Fileクラスを使って一覧取得して表示
0050デフォルトの名無しさん2006/11/27(月) 10:10:28
Tomcatのログにこういうのがたまに出るんですが、
なにかまずいことでもあるんでしょうか?

2006/1/1 9:00:00 net.sf.hibernate.impl.SessionImpl finalize
警告: finalizing unclosed session with closed connection
0051デフォルトの名無しさん2006/11/28(火) 14:41:40
閉じてるコネクションで閉じてないセッションをファイなら伊豆してるから
0052デフォルトの名無しさん2006/11/28(火) 18:40:31
tomcatだと、一番最初のアクセスではクッキーが有効でもsessionIDをURL埋め込みで渡してきますがこれをやめさせる設定ってできますか?
できるなら方法かヒントを教えてください。
0053デフォルトの名無しさん2006/11/28(火) 19:34:04
Tomcatだと?
0054デフォルトの名無しさん2006/11/29(水) 07:48:10
例えば郵便番号の入力で
〒 [ 1 ] - [ 2 ]
このように2つのtextboxに分かれている場合で、

・1か2のどちらかが入力された場合、両方のテキストボックスで
 必須チェックと正規表現チェックが走る
・どちらも入力されていない場合はスルー

このような複雑なバリデーションをカスタムバリデータで
作ることは可能でしょうか?
0055デフォルトの名無しさん2006/11/29(水) 08:09:17
>>54
全然複雑じゃないし、カスタムバリデータを作る必要もない。
標準バリデータのみで十分可能。
0056デフォルトの名無しさん2006/11/30(木) 07:23:36
>>55
できるわけねーだろ馬鹿が。
0057デフォルトの名無しさん2006/11/30(木) 07:37:31
>>56
なんで?
こんなふうにvalidwhenとmaskでチェックかければいいじゃん

<field property="txt1" depends="validwhen,mask">
  <arg position="n" key="key" />
  <var>
    <var-name>mask</var-name>
    <var-value>^regrex$</var-value>
  </var>
  <var>
    <var-name>test</var-name>
    <var-value>
      ((txt2 == null) or (*this* != null))
    </var-value>
  </var>
</field>
<field property="txt2" depends="validwhen,mask">
  <arg position="n" key="key" />
  <var>
    <var-name>mask</var-name>
    <var-value>^regrex$</var-value>
  </var>
  <var>
    <var-name>test</var-name>
    <var-value>
      ((txt1 == null) or (*this* != null))
    </var-value>
  </var>
</field>
0058デフォルトの名無しさん2006/11/30(木) 12:33:50
最近学校の実習が終わり実習でやっていた事を家で
完成させたいと思い自分のパソコンの環境を整えようと
J2SDK1.4.2_11
tomcat4.1
eclipse3.2.0
struts 1.2.8
で環境構築をしたのですが
JSPのコンパイルされたクラスファイルが深いところに
なってしまっています
(C:\eclipse\workspace\myproject2\work\org\apache\jsp\jsp\jsp)
これの階層を浅いところにコンパイルさせたいのですが
どこら辺が原因となっていると思いますでしょうか?
0059デフォルトの名無しさん2006/11/30(木) 15:32:01
>>58
コンテキスト設定ファイル。
0060デフォルトの名無しさん2006/12/01(金) 03:11:07
>>56
恥ずかしい奴だな…
0061デフォルトの名無しさん2006/12/03(日) 17:15:45
eclipse3.2.1でlombozプラグインを使いたくて調べたのですが、
lombozプラグインを使用するためには、emf-sdo-runtimeが
必要とわかり、これも用意しました。

で、eclipse3.2.1が単体で動く環境は出来ており、
emf-sdo-runtime
lombozプラグイン
の順で導入、ググって調べたらパースペクティブのカスタマイズ
で「ビューの表示」を選べば「lomboz」のチェックボックスが現れ
るので、チェックを入れるとあります。

ここで躓いたのですが、「lomboz」のチェックボックスが表示さ
れません。

環境は下記の通りなのですが、どなたかうまくいっている方が
おりましたら、抜けている点など教えていただけないでしょうか。

jdk-1_5_0_09-windows-i586-p.exe
jakarta-tomcat-5.0.28.exe
eclipse-SDK-3.2.1-win32.zip
org.objectweb.lomboz-R-3.2-200610201336.zip
emf-sdo-runtime-2.3.0M3.zip
0062デフォルトの名無しさん2006/12/03(日) 18:06:11
>>61
それが正解
本当の姿がわからないんなら、lombozのall-in-oneパックを使ってみなよ
ちなみに今回はWTPに機能追加してるだけ
WTPの使い方ぐらいは自分で調べて
0063デフォルトの名無しさん2006/12/03(日) 18:57:25
>>62
all-in-oneパックおとしてWTPググってみます。
アドバイスありがとうございます。
0064デフォルトの名無しさん2006/12/03(日) 22:25:08
まあ、NetBeans5.5使うほうが楽なわけだが。
0065デフォルトの名無しさん2006/12/04(月) 08:56:11
糞エディターが直らない限りNetBeans使うことは無い
0066デフォルトの名無しさん2006/12/04(月) 16:05:28
つうことは、NetBeans6.0待ちだな
0067デフォルトの名無しさん2006/12/06(水) 22:39:53
web.xmlでエラーページを指定してエラーページを表示させるようにしてるんですが、IEだと表示されないようです。
firefoxは自分で作ったエラーページが表示されます。
ぐぐったら、512バイト以上あればIEでもウマーと書いてあったので、エラーページを512バイト以上にしましたが、表示されませんでした。
IEの設定変えることなしに表示させたいんですが、なにか解決はありませんか?
0068デフォルトの名無しさん2006/12/06(水) 23:13:06
>>67
512B以上あれば表示されるはず。
pageディレクティブで、isErrorPage="true" は設定してる?
0069デフォルトの名無しさん2006/12/06(水) 23:15:10
自己解決しました。
実は512b以上ではなく512kb以上だったようです。
なんかすいません。
0070デフォルトの名無しさん2006/12/06(水) 23:17:03
あ、回答ありがとうございます

>>68
isErrorPage="true"にはしています
とりあえず512kbの勘違いかな?と思いまして、512kbになるまで改行入れまくったら表示されました。
でも、やっぱり512bで表示されるんですかね・・・
■ このスレッドは過去ログ倉庫に格納されています