- PR -

JSPでタグライブラリがロードできない。

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2005/04/16
投稿数: 51
投稿日時: 2005-12-21 17:59
JetspeedのポートレットにJSPを表示させたいと思っています。
そのJSPではタグライブラリを利用しています。
しかし上手くそのライブラリがロードできません。

まず環境を記します。
------------------------------------------------------
OS : Mac OS X Server 10.4
Tomcat バージョン: 4.1.29
Jetspeed バージョン:jetspeed-japan-1.5_ja_2
------------------------------------------------------

Windows2000上で
バージョンの異なるTomcat(5.0.16)、
同じバージョンのJetspeedを用いています。

開発とテストはそこで行い、
上述のMacにプログラムを移植して確認しています。

あるポートレットには簡単なJSPを表示させます。
そのJSPでは最初に次のような宣言をしており、
/WEB-INF/templates/jsp/tld
内に収容したtldを利用しています。

<%@ taglib uri="/WEB-INF/templates/jsp/tld/sql.tld" prefix="sql" %>

JSP内ではこのtldを通常どおり(次のように)利用しています。
<sql:setDataSource
〜  />

Windows上では、
単に
@ このJSPを作成し、
A /WEB-INF/templates/jsp/tld
内にtldファイルを配置するだけで思った動きをしました。

一方、それと同じ方法ではMac上(上記環境)では上手く動きませんでした。

web.xmlにこのtaglibについて記載しなければならなかった、と思い
まず TOMCAT_HOME/webapps/jetspeed-japan/WEB-INF/web.xml に
次に TOMCAT_HOME/web,xml に次のように記してみました。

<taglib>
<taglib-uri>/WEB-INF/templates/jsp/tld/sql.tld</taglib-uri>
<taglib-location>/WEB-INF/templates/jsp/tld/sql.tld</taglib-location>
</taglib>

しかしどちらのweb.xmlに記載しても上手くはいきませんでした。

エラーの内容は「setDataSourceがロードできません」というものです。

他に何をすべきか、何かアドバイスをいただけないでしょうか。
何卒よろしくお願い申し上げます。
しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2005-12-23 10:57
こんにちは。

念のため確認しますが、jstl.jarとstandard.jarにはクラスパスが通っていますよね?
あと、sqlだけでなく、coreやfmtなど他のタグライブラリも使えないのでしょうか?
未記入
ベテラン
会議室デビュー日: 2005/04/16
投稿数: 51
投稿日時: 2005-12-26 16:42
お世話になっております。

jstl.jar と standard.jar が格納されているディレクトリが
環境変数CLASSPATHとして設定されていればよろしいでしょうか。

ちなみにその状態で、
同じtldディレクトリに格納されているその他のタグライブラリも
呼び出せません。

よろしくお願い申し上げます。
しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2005-12-26 19:09
Tomcat全体で共有するなら、{TOMCAT_ROOT}/common/lib (だったかな?)に、
そのアプリケーション固有のものとするなら、{WEB_APP}/WEB-INF/lib にjstl.jarとstandard.jarを配置しなければなりません。

みてると、なんとなくこれらのライブラリがないように思います。
jstl.jarとstandard.jarは、Tomcatには標準で付いて来なかったと思いますので、特別にインストールした記憶がないなら、おそらく入ってないでしょう。
その際は、java.sun.comからJWSDPをダウンロードして来てください。
未記入
ベテラン
会議室デビュー日: 2005/04/16
投稿数: 51
投稿日時: 2005-12-27 07:59
報告です。

大変失礼致しました。
恥ずかしくて申し訳ないのですが・・・・・・

私はJetspeedを利用しているので
TOMCAT_HOME/webapps/jetspeed-japan/WEB-INF/lib
にjstl.jarやらstandard.jarやらpostgresのドライバやらを
反映しなければいけなかったところ
それを最初に忘れていたらしく、
(以前は反映していたのですが
再度やり直したときに漏れていたようです。
恥ずかしいことに、入れたとばかり思い込んでおりました。)
それらを格納しただけで解決しました。


つまり私のうっかりミスと、完全な思い込みによる問題だったのです。
大変恥ずかしく思います。すみません。


結局、/etc/bashrcに記載していたCLASSPATHを消しても
TOMCAT_HOME/webapps/jetspeed-japan/WEB-INF/web.xml
から<taglib>の記載を消しても問題なく表示されました。

Windowsと同様に、
@ JSPに<%@ taglib uri="/WEB-INF/templates/jsp/tld/sql.tld" prefix="sql" %> といった宣言をし、
A そのuriに実際のtldファイルを格納すれば
Macでも問題なく表示できています。

どうもありがとうございました。
以後気をつけます。
1

スキルアップ/キャリアアップ(JOB@IT)