![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
javaでuseBeanエラーの解決方法
レンタールサーバーを経営しており、javaを使ってショッピングカートを動かしているお客様からエラー解除してほしいという依頼を受けました。
該当するサイトのショッピングページで「購入」ボタンを押すと
Error:org.apache.jasper.JasperException: /(ユーザー名)/Casher.jsp(2,0) The value for the useBean class attribute Cart is invalid.
と表示されます。
お客様曰く、java側に問題はないので、管理側でどこかのパーミッションを書き込み可能なものへ変更すればいい、ということでしたが、javaの知識は一切ないためホームディレクトリの上から順に、片っ端にパーミッション変更をして試していますが、ファイル/フォルダの量が膨大すぎて解決に時間がかかりすぎてしまいます。
お客様もどのファイル/フォルダのパーミッションを変えればいいのか?パーミッションをどんな内容に変えたらいいのか知らないそうです。
インターネット上でしらみつぶしに調べましたが解決方法は一切見つけられませんでした。
(同じ質問内容を別の掲示板で質問している人を見つけましたが、誰も回答してませんでした)
いったいどのファイルのパーミッションを変えればいいのでしょうか?
javaの知識が一切ないため、おおよその見当すらつきません。
「もしかしたら」というような些細な情報でも構いませんので教えてください。
お願いします!
No.4ベストアンサー
- 回答日時:
・bean(フォルダ)の下に
「Cart.class」「Cart.java」がありました。
Cart.java
に
package bean;
の記述があれば
<jsp:useBean id="product" scope="session" class="bean.Cart" />
こうね。
askaaska様、ありがとうございます!!!!
解決しました!!!!
もう本当にありがとうございます!解決できてすごく嬉しいです。
classの値に「bean」を付けるか付けないかで、こんなにも違うのですね!
今回のことはすごく勉強になりました!
的確なアドバイス本当にありがとうございます!
すごく感謝します!!!
No.3
- 回答日時:
>Casher.jspの中にある記述はこうです。
><jsp:useBean id="product" scope="session" class="Cart" />
>
>/web/WEB-INF/classesの中にはaskaaskaさんが指摘してくださったCart.classはありませんでした。
>代わりにclassesフォルダの中は
>・bean(フォルダ)
>・ShopKeeper.class
>・ShopKeeper.java
んー
そのbeanより下にCart.classがあったりしないかしら?
この回答への補足
askaaskaさん、何度も回答してくださってありがとうございます。
>そのbeanより下にCart.classがあったりしないかしら?
ありました。
・bean(フォルダ)の下に
「Cart.class」「Cart.java」がありました。
ではこの場合、Casher.jspの中の記述は
<jsp:useBean id="product" scope="session" class="Cart" />
のままで正しいということでしょうか?
記述が間違っているなら、どのように記述すると正しく動くか分かりますか?
No.2
- 回答日時:
Java側に問題がない
という相手の主張を信じたら負けよ。
そこもきちんと疑わないとね。
Casher.jspを作ったのが誰だか知らないけど
その2行目がおそらく
<jsp:useBean id="cart" class="Cart" scope="session" />
こんな感じで書かれているのよね。
~/WEB-INF/classes/Cart.classが存在しているのかしら?
もしもCart.classがパッケージに属していて
~/WEB-INF/classes/shopping/Cart.class
(package shopping;という実装がCart.javaにある)
<jsp:useBean id="cart" class="shopping.Cart" scope="session" />
こうなるはずよ。
この回答への補足
早い回答ありがとうございます!
以前同じ現象になった時、サーバー管理側(私達)でパーミッションを変更したら解決したことがあったためお客様は「こちらに負は一切ない!」と豪語されています。
でも2009年9月にサーバーを移動しており、Tomcatバージョン3.2.3からバージョン5.0.28に変わりました。(以前起こった時はバージョン3.2.3での話です)
JSP のバージョンも変わっているのでコンパイルに可否が出ているのでは?と問いかけましたが「そんな環境には一切左右されないものだから」ということでした。
javaの知識が無いので「あ、そうなんですか」と2つ返事してしまいましたが・・・(笑)
でも仰るとおり、原因を色々な視点で考えるべきですね!
Casher.jspの中にある記述はこうです。
<jsp:useBean id="product" scope="session" class="Cart" />
/web/WEB-INF/classesの中にはaskaaskaさんが指摘してくださったCart.classはありませんでした。
代わりにclassesフォルダの中は
・bean(フォルダ)
・ShopKeeper.class
・ShopKeeper.java
が入っています。
この場合Casher.jsp内の記述はどうしたら良いのでしょう?
(お客様からは、ファイル内を変更する許可はいただいています)
No.1
- 回答日時:
一番確実で早そうな解決方法は、たぶんそのショッピングカートの開発元に問い合わせ、ですね。
。。エラー内容を見る限りはパーミッションが原因の可能性は低そうな気がします。(遠因である可能性はあるかもですが
軽くぐぐってみましたが、考えられるのはこんなところでしょうか。
-----------------------------------------------
・Tomcatがそのクラスを読み込めていない
⇒配置すべきファイルに不足はありませんか?
・参照クラスがデフォルトパッケージに配置されていると使えない
⇒これはもうプログラム側の問題です。
-----------------------------------------------
その他、どうしてもよくわからなくなったときは、
一度すべて消して、もう一度手順見ながら再インストールする、とかも良いかもしれません。
(お客様のコンテンツに勝手にそんなことしていいのか、って問題はおいといて)
なお、大量ファイルのパーミッションを変更するのであれば、shell上で、
chmod -R 666(とか) hoge
のように指定すれば、hoge ディレクトリ配下すべてのパーミッションが666になります。
参考URL:http://www.google.co.jp/search?q=The+value+for+t …
この回答への補足
早い回答ありがとうございます!
開発元がどこなのか、ちょっと把握できませんね~。
問い合わせるならお客様にお願いすることになりますが、問い合わせて頂くようお願いしたことはありますが「パーミッションを変更すれば・・・」の返事のみとなりましたので、現在までその線で動いてました。
>Tomcatがそのクラスを読み込めていない
> ⇒配置すべきファイルに不足はありませんか?
すいません、クラスとは何でしょうか?
元々Tomcatはすでに用意されていましたのでTomcatのデータを置いている場所に問題はないと思います。
ただ、今回のエラーの前にショッピングカートで[購入]を押すとHTTP400エラーが表示されたことがあり、サーブレットを実行するようになっていない原因によりweb.xml内のservletとservlet-mappingのコメントアウトを外した経緯があります。
web.xml内で必要なものがまだコメントアウトされている可能性があるってことでしょうか???
>・参照クラスがデフォルトパッケージに配置されていると使えない
> ⇒これはもうプログラム側の問題です。
んー・・・これもすいません、よく分かりません。
参照クラスってどんなファイルなのでしょう?
デフォルトパッケージってどこにあるのでしょう?
Casher.jspの中が
<jsp:useBean id="product" scope="session" class="Cart" />
となっていますが、クラスってclass="Cart"のことでしょうか? (参照クラスって"Cart"?)
>その他、どうしてもよくわからなくなったときは、
>一度すべて消して、もう一度手順見ながら再インストールする、とかも良いかもしれません。
これはちょっと怖いですね。最終手段としておいておきます。
パーミッション変更方法として「-R」を提案してくださいましたが、フォルダ内のファイルの元のパーミッションが同じではないので、一緒くたにパーミッション変更してしまうと、元に戻す時に元がどうであったか分からなくなるので、あえて1つ1つのファイルを変えています。
1つのファイルを変えてカートの動きチェックして元に戻し、次のファイルを1つパーミッション変えてカートの動きチェックして元に戻し・・・の繰り返しですねぇ。
変更を試みているパーミッションは「755」「700」「777」を主にしているのですけど、パーミッション変更してみるなら「666」が良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaクラスファイルをEclipseで...
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
jdbcドライバのjarファイルにク...
-
earファイルを展開する方法
-
Eclipse「リフレッシュ」と「ク...
-
VisualStudioでC++クラスを追加...
-
「メイン・マニフェスト属性が...
-
EclipseでのJSP・Servlet開発に...
-
JSP内で外部jsファイルを指定する
-
【Eclipse】パッケージ・エクス...
-
コマンドライン引数のワイルド...
-
JARファイル・JARコマンドに関して
-
JAVAで外部ファイルをインクルード
-
javaでファイルの実態チェック(...
-
Eclipseでデバッグが出来ないエ...
-
ファイルのパスの取得について
-
「削除するか、クラスパスの正...
-
EclipseでHTTP404エラーが出る。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
Eclipse・プロジェクトで、フォ...
-
SVFの設定について:クラスパス...
-
【Eclipse】パッケージ・エクス...
-
earファイルを展開する方法
-
eclipse でclassesフォルダーが...
-
「メイン・マニフェスト属性が...
-
ResourceBundleクラスの使い方
-
EclipseでHTTP404エラーが出る。
-
【Eclipse】逆コンパイルでエラ...
-
jdbcドライバのjarファイルにク...
-
DOMParserを使いたいのですが
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
VisualStudioでC++クラスを追加...
-
『ClassNotFoundException: org...
-
プログラム実行の際に、「ソー...
-
Eclipseで、クラスを新規作成す...
おすすめ情報