
会社で使用しているサーバが、どうも、SUN OSのようなのですが、ローカルのTomcat環境では問題なく動くJSPのプログラムが、サーバにアップすると、500エラーが発生し、デバッグに必要な手がかりが全く表示されないので、困惑しています。
サーバへは全てバイナリモードでアップするように言われていて、テキストファイル等はリモートでも改行コードがCR+LF(windows)であることに気がつきました。
そこで質問なのですが、JSPでは、改行コードがLF(UNIX)だとエラーが発生する設定もあり得るものでしょうか。
さらに、JSPは、jspファイルに変更を加えたら、サーバも再起動しなければならないのでしょうか。サーブレットとは異なり、再起動は必要ないと思っていましたが、先輩に頼んで、再起動してもらわなければなりません。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
> そこで質問なのですが、JSPでは、改行コードがLF(UNIX)だと
> エラーが発生する設定もあり得るものでしょうか。
少なくとも私がJavaを始めてからこの現象にぶち当たったことはありません。
無いとは言い切れませんが、あまり考えなくてもいいかも。
改行コードよりも文字コードの方が厄介…orz
> <%@ page import="java.util.regex.*" %>
> や、
> String.split("正規表現");
当てずっぽうですが、サーバのJavaバージョンが
1.3以下ってことはないですか。
どっちもJDK1.4からのAPIなので…。
ともあれ現象や500エラーとだけ言われてもつらいので、
例外エラーを吐いてるログ残ってませんか?
>さらに、JSPは、jspファイルに変更を加えたら、サーバも再起動しなければならないのでしょうか。
多分必要なし。
JSPは初回アクセス時にJSP→Java→classという変換&コンパイルする機構を持っているから。
でも、一旦止めた方が気休め程度ですが安心かもしれない。
アクセス中の人がいたら面倒な事になるかもしれないし…。
> ページを編集するなどしてエラーになるような更新を行うと~
エラーページの場合、JSP→Java→classの過程でコンパイルエラーが
発生するでしょうからそのせいで、classの上書きが起こらず
前のJSPが動くという現象なのではないでしょうか。
この辺は最初から書いてあると嬉しい情報です。
解決しないようなら補完願います。
・サーバのJDKバージョンとアプリケーションサーバの種類とバージョン
(InterstageServer特有の問題だったら分かんないなぁ…)
・ローカル(開発機?)のTOMCATとJDKのバージョン
・500エラーの他に出力される例外エラー等のログ
この回答への補足
後にCR+LFに変換したファイルをアップしてもエラーのままだったので、おっしゃるとおり改行コードは関係ないらしいことがわかりました。
> 当てずっぽうですが、サーバのJavaバージョンが1.3以下ってことはないですか。
それが一番の心当たりがあります。次回、バージョンを調べてみることにします。
他には、サーバが特有なためか、JSPの暗黙のオブジェクト変数の、(ローカル環境では問題ない)「application」変数も使えないこともわかりました。サーブレット関連APIにもバージョンの違いがあるのでしょうか。
> 発生するでしょうからそのせいで、classの上書きが起こらず
> 前のJSPが動くという現象なのではないでしょうか。
なるほど、そうなら理解できますね。
先輩いわく、500エラー等でログを吐かないようにしているそうで、かなりやっかいです。
ローカルはTomcat5.5 JDK1.5だったと思います。
サーバは今度調べてみることにします。
でも、正規表現、application変数などの使えないコードを削除していくと、最終的にはやっとエラーが起こらず、動いたので、だいぶ原因が見えてきました。
ありがとうございます。
No.4
- 回答日時:
富士通のサーバってのが、わからないですが、私が過去に経験したのは、
試験環境tomcat4.1と実機websphere6.0 という間で
試験環境で正常に動作したのに実機で駄目だったというのがあります。
そのとき問題になったのは、tagとスクリプトレットの展開順序の違いでした。
Windows上のtomcatは内側から展開していきますが、unix上のwebSphere6.0では左から順に展開しているようでした。
そのため、
<%= abc.getAttr("<jsp:hoge id="foo" />") %>
こんなタグが、Windowsのtomcat上では正しく展開されて実行されるのに、
unixのwebSphereではエラーになる("<jsp:hoge id="という属性がないと言われる)
というのがありました。
No.2
- 回答日時:
以下のサイトとかを見ていたら、単に「FTPの転送モードの設定」のことじゃないかなと思うのですが・・。
タイトル: CGIの漢字・改行コードについて
http://www.miloweb.net/pastbbs/0002/603.html
改行コードの話
http://ash.jp/code/return.htm
No.1
- 回答日時:
アップ先のサーバの種類はなんですか?
アップ先もtomcatですか?
それとも、WebSphere/WebLogic等の別のサーバですか?
この回答への補足
どうやら、富士通のサーバ(ソフト)らしいです。
サーバの再起動は、SSHでログインして、先輩がシェルスクリプトでその都度、行っているようです。
色々試すと、エラーが発生しないjspページはの場合は、再起動なしでもアップした直後に動くようです。
一方、ページを編集するなどしてエラーになるような更新を行うと、アップロードしたにもかかわらず、エラーなしで動いていた前のバージョンのjspページのまま動き続け、その後、再起動した直後から、エラーが発生するという挙動に気づきました。
ローカルのTomcatでは問題なく動く以下の、
<%@ page import="java.util.regex.*" %>
や、
String.split("正規表現");
などで、500エラーが出ることがわかりました。
ただ、それ以上の環境についてはまだ詳しくわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
構文エラーのやり直しについて
-
struts-config.に対する読み込...
-
eclipseでのsvn認証エラー回避方法
-
エラー:org.springframeworkが...
-
Javaの実行時エラーの解決法
-
JSPページから、同じJSPページ...
-
jspのファイルでエラーが出る
-
タグが閉じてないというエラー...
-
「型 ArrayList は総称ではあり...
-
シンボルが見つかりませんとい...
-
oracle java1.7でsignerエラー
-
JSP内でString型からint型に変...
-
Javaで「class、interfaceまた...
-
enum列挙子に使える文字列と使...
-
JSP NullPointerException
-
コンパイル時にエラーが出てし...
-
processingでのアプリビルドエ...
-
eclipseのエラーについて質問で...
-
JSFのmessagesタグによる、エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
エラー:org.springframeworkが...
-
タグが閉じてないというエラー...
-
コンパイル時にエラーが出てし...
-
構文エラーのやり直しについて
-
tomcat起動時エラー
-
Eclipseの環境について
-
eclipseでのsvn認証エラー回避方法
-
eclipseをバージョンアップした...
-
Javaのエラーについてです
-
「型 ArrayList は総称ではあり...
-
JSP内でString型からint型に変...
-
JSPで意味不明のコンパイルエラー
-
JSP NullPointerException
-
Eclipse デバッグ エラー処理
-
getParameterについて
-
eclipseのエラーについて質問で...
-
【ジェネリックス】コンパイル...
-
Buttonを配列とすることができ...
-
JSPページから、同じJSPページ...
おすすめ情報