- PR -

eclipseで作成したjspが動きません。

1
投稿者投稿内容
9876
会議室デビュー日: 2004/03/31
投稿数: 16
投稿日時: 2004-03-31 13:19
こんにちは。
最近、eclipseを使い始めました。

こちらのサイトを参考にして
http://www2s.biglobe.ne.jp/~yuuki_ki/opensource/js_eclipse6.htm
サーブレット、jspを作成しまいた。
ディプロイも特に問題なく終了し(successfullと出ている)いざjspを動かそうとurlを入力してみると以下のメッセージがでます。
HTTP Status 404 - /ShowDateJSP.jsp
type Status report
message /ShowDateJSP.jsp
description The requested resource (/ShowDateJSP.jsp) is not available.
ちなみに同時に作成したサーブレットは動きます。
はじめたばかりで右も左もわからず途方にくれております。
ディプロイ自体に問題があるのでしょうか?



開発環境
os:windows2000 professional
eclipse 2.1.2
Apache Tomcat 5.0.12
j2se 1.4.2
Lomboz 2.1.1
Apache ant 1.6.0
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-31 13:43
JSP を配置した場所と、リクエストした URL はどうなっていますか?
9876
会議室デビュー日: 2004/03/31
投稿数: 16
投稿日時: 2004-03-31 14:16
開発環境ではcドライブにappというディレクトリを作り
その中に様々なアプリをインストールしています。
今回は以下のようなディレクトリ構造です。


tomcat→c:\app\Apache Software Foundation\Tomcat 5.0
j2se→c:\app\j2sdk1.4.2
eclipse→c:\app\eclipse
ant→c:\app\apache-ant-1.6.0


プロジェクトの保存場所は以下のようになっています。

C:\app\eclipse\workspace\J2EEPJ
+ \bin(この中にclassファイルとjspファイルがあります。)
+ \ExLomboz(この中にWEB-INF等があります。ちなみにclassesやlibの
中には何もありません。)
+ \j2src(この中には何もありません。)
+ \src(この中にソースファイルがあります。)
+ .classpath
+ .project


デプロイ後のtomcat webappsの中は以下のようになっています。
c:\app\Apache Software Foundation\Tomcat 5.0\webapps\ExLomboz
+ \META-INF
+ MANIFEST.MF
+ \WEB-INF
+ \classes(この中にclassファイルとjspファイルがあります。)
+ \lib(この中には何もありません。)
+ weblogic.xml
+ web.xml
+ resin-web.xml


入力したurlは以下のとおりです。

サーブレット:http://localhost:8080/ExLomboz/ShowDate
jsp:http://localhost:8080/ExLomboz/ShowDateJSP.jsp

やけくそでこんなのも入力してみました。
http://localhost:8080/ExLomboz/ShowDateJSP
http://localhost:8080/ExLomboz/WEB-INF/classes/ShowDateJSP.jsp
http://localhost:8080/ExLomboz/classes/ShowDateJSP.jsp



それから書き忘れたことがあります。すいません。
関係があるかどうか判りませんが当初、ant1.6.0を使用していたのですが
デプロイを実行すると以下のようなメッセージがでてしまいます。

Buildfile: C:\app\eclipse\workspace\J2EEPJ\ExLomboz\WEB-INF\build.xml

undeploy:

init:
[mkdir] Created dir: C:\app\eclipse\workspace\J2EEPJ\dist
[mkdir] Created dir: C:\app\eclipse\workspace\J2EEPJ\dist\WEB-INF
[mkdir] Created dir: C:\app\eclipse\workspace\J2EEPJ\dist\WEB-INF\classes
[mkdir] Created dir: C:\app\eclipse\workspace\J2EEPJ\dist\WEB-INF\lib
[copy] Copying 3 files to C:\app\eclipse\workspace\J2EEPJ\dist
[copy] Copying 2 files to C:\app\eclipse\workspace\J2EEPJ\dist\WEB-INF\classes

deploy:
[jar] Building jar: C:\app\eclipse\workspace\J2EEPJ\ExLomboz\WEB-INF\ExLomboz.war
BUILD FAILED: java.lang.NoSuchMethodError: org.apache.tools.zip.ZipOutputStream.<init>(Ljava/io/File;)V
Total time: 3 seconds

そこで過去ログを検索したところ同様の状況にみまわれた方がいらっしゃったので
そこでの対処方法を試しました。(c:\app\eclipse\plugins\org.apache.ant_1.5.3\ant.jarのファイル名_ant.jarに書き換えました。)するとデプロイは成功するのですがjspファイルをエディタで開くとエラーがでるようになりました。そのためant1.6.0の使用をやめてデフォルトのant1.5.3に戻しました。
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-31 14:26
JSP の配置場所が間違っているようですね。
WEB-INF はクライアントからアクセスできませんよ。
参考にされたサイトに、プログラム配置・実行についての解説がありますので、確認してみてください。
9876
会議室デビュー日: 2004/03/31
投稿数: 16
投稿日時: 2004-03-31 14:55
うまくいきました。たいへんありがとうございました。
どうやら基本的なことを落としていたようです。
ということはデプロイ用のbuild.xmlの内容に不備があるということに
なります。以下が今回使用したbuild.xml(参考にしたサイトからダウンロードしました。)
の内容なのですがどう直せばよいかよくわかりません。ひとまず自分なりに解釈してコメント
をつけてみました。☆マークの場所をどうにか直せばうまくいくような気がします。

<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<project name="webmodulebuilder" default="deploy" basedir=".">

// 変数定義(パスの指定だと思われる。)
<!-- set global properties for this build -->
<property file="build.properties"/>
<property name="dist" value="../../dist" />
<property name="web" value="../" />

// 処理@
<target name="init">
<!-- Create the dist directory structure used by compile
and copy the deployment descriptors into it-->

// ディレクトリを作成する
<mkdir dir="${dist}"/>
<mkdir dir="${dist}/WEB-INF"/>
<mkdir dir="${dist}/WEB-INF/classes"/>
<mkdir dir="${dist}/WEB-INF/lib"/>

// ??へファイルをコピーする
<copy todir="${dist}">
<fileset dir="${web}">
<include name="**/*.*"/>
<exclude name="**/jsp_servlet/*.class"/>
<exclude name="**/build.xml"/>
<exclude name="**/deploy.xml"/>
<exclude name="**/build.properties"/>
<exclude name="**/servers.xml"/>
<exclude name="**/targets.xml"/>
<exclude name="**/*.war"/>
</fileset>
</copy>

// binの中身をすべて/WEB-INF/classesへファイルをコピーする
☆ ここでjspファイルをWEB-INF以外の場所へコピーすればよいのか?
<copy todir="${dist}/WEB-INF/classes">
<fileset dir="${project.dir}/${bin.dir}">
<include name="**/*.*"/>
<exclude name="**/jsp_servlet/*.class"/>
</fileset>
</copy>

</target>

// 処理A
// なんだかよくわかりませんがwarファイルを削除したりしているようです。
<target name="deploy" depends="undeploy,init" >
<!-- Create the distribution directory -->
<delete file="${war}.war"/>
<jar jarfile="${war}.war" basedir="${dist}"/>
<copy file="${war}.war" todir="${deploy.dir}"/>
<delete file="${war}.war"/>
<delete dir="${dist}"/>
</target>

// 処理B
// ここもよくわかりません。
<target name="deployTool">
<ant antfile="./deploy.xml" dir="." target="deploy" inheritall="true">
</ant>
</target>

// 処理C
// なにもしていません。
<target name="undeploy">
<!-- Sometimes you can undeploy with deleting the module file but it is best dealt on an appserver basis
at undeployTool target -->
</target>

// 処理D
// ここもよくわかりません。
<target name="undeployTool">
<ant antfile="./undeploy.xml" dir="." target="undeploy" inheritall="true">
</ant>
</target>

</project>

それから例えばコンテキストディレクトリをtomcatのwebappsではなくて
任意のディレクトリに配置する場合は手動でコンテキスト用のxmlを
\conf\Catalina\localhost\へ作成しなくてはならないのでしょうか?
(tomcat4の場合はserver.xmlの編集が必要?)
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-31 15:09
Eclipse で開発する時点で Web アプリケーションのルートディレクトリ配下に置いておけばいいんじゃないですか?(今回の場合、ExLomboz の直下)
build.xml の不備ではないと思います。(確認したわけではありませんが)
9876
会議室デビュー日: 2004/03/31
投稿数: 16
投稿日時: 2004-03-31 15:21
ありがとうございました。
参考になりました。
1

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