2013-07-08 93 views
8

こんにちはで(私はTomcatで、単純なJSPファイルをコンパイルしようとしているが、私はこのエラーメッセージにorg.apache.jasper.JasperExceptionが:JSPのクラスをコンパイルできません:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /WebContent/test.jsp 
Member cannot be resolved to a type 
10: <body> 
11: <% 
12:  //MyBatisDao myDao = new MyBatisDao(); 
13:  List<Member> list; // = myDao.func("test"); 
14:  //out.println("Result list= " + list); 
15: %> 
16: </body> 

なtest.jspを持つ保管Webコンテンツ)

<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<%@ page import="pageNumber.*, java.util.*, java.io.*" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
<% 
    List<Member> list; 
%> 
</body> 
</html> 

Member.java

package pageNumber; 
public class Member { 
private String id; 
private String pw; 
private int point; 
private int lvl; 

public Member() {} 
public Member(String id, String pw, int point, int lvl) { 
    this.id = id; 
    this.pw = pw; 
    this.point = point; 
    this.lvl = lvl; 
} 

public String getId() { return id; } 
public void setId(String id) { this.id = id; } 
public String getPw() { return pw; } 
public void setPw(String pw) { this.pw = pw; } 
public int getPoint() { return point; } 
public void setPoint(int point) { this.point = point; }  
public int getLvl() { return lvl; } 
public void setLvl(int lvl) { this.lvl = lvl; } 
public String toString() { 
    return "ID= " + id + ", PW= " + pw + ", POINT= " + point + ", LVL= " + lvl; 
} 

}

私のTomcatがクラスファイルを見つけることができないので、私の知る限り、私はこの問題を持っています、 ので、私はページ番号が私のパッケージ名です

  • ビルド/クラス/ PAGENUMBER(で私のクラスファイルを配置しています)
  • WEB-INF /クラス/ PAGENUMBER
  • Tomcatの仕事\ \カタリナ\ localhost_ \ orgの\ apacheの\のjsp \ PAGENUMBER

が、それのどれも働いていません。 ヘルプがありますか?


編集: それは実際に私にエラーの新しいタイプを与えた私は

<%@ page import="java.util.List, pageNumber.Member" %> 

<%@ page import="pageNumber.*, java.util.*, java.io.*" %> 

から私の輸入申告を変更した後:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 15 in the generated java file 
Only a type can be imported. pageNumber.Member resolves to a package 

An error occurred at line: 12 in the jsp file: /WebContent/test.jsp 
Member cannot be resolved to a type 
9: </head> 
10: <body> 
11: <% 
12:  List<Member> list; // = myDao.func("test"); 
13: %> 
14: </body> 
15: </html> 
+0

"Member.java"に 'package'宣言がありますか? – Thilo

+0

外部の.jarを使用する場合。 WEB-INF/libに保存してください – Gero

答えて

0

には、あなたのメンバーあなたのJSPへのクラス:

<%@ page import="pageNumber.*, java.util.*, java.io.*,yourMemberPackage.Member" %> 
0

Tomcatにクラスファイルを手動で配置する必要はありません。ただ、それはあなたがあなたのJSPにインポートしている唯一のアプリケーションパッケージですが、以来、Memberのためのあなたのパッケージ宣言が正しく

package pageNumber; 

として定義されていることを確認してください。

<%@ page import="pageNumber.*, java.util.*, java.io.*" %> 
0

この問題は、JSPでpageNumber.Memberクラスをインポートする必要があるために発生します。 java.util.Listのような別のパッケージとクラスも必ず含めてください。

<%@ page import="pageNumber.*, java.util.*" %> 

はまだ、あなたのJSPでスクリプトレットを使用してことで大きな問題を抱えています。 How to avoid Java Code in JSP-Files?を参照し、ELJSTLの練習を開始し、代わりにMVCソリューションに焦点を当てます。

+0

私はあなたのことについて、Luiggiについては分かりません。私はすでにpageNumber.Memberとjava.util.Listを追加したが、それでもエラーが出ると言った。 –

+0

@MartinYang私は 'pageNumber.Member'クラスを' pageNumber'がパッケージ名とし、メインのWebページフォルダ(WebContentなど)に 'test.jsp'ページを作成することで、正確な問題を再現しようとしました。 '<%List list>のスクリプトレット(私の好みに対して)。 %>私は '%@ page import =" pageNumber.Member、java.util.List "%>を' 'の前に追加し、プロジェクトをビルドしてデプロイし、魅力的に働きました。おそらくあなたが私たちに言っていないことがもっとあります。環境をきれいにして、プロジェクトを再構築して展開してください。 –

+0

EclipseまたはTomcatに「特別な」設定を設定しましたか? b/c私が何をしても、それは私のコンプに集められていないようです。 –

0

あなたのこの行:

<%@ page import="pageNumber.*, java.util.*, java.io.*" %> 

は、このような%@シンボルが必要です:

<%@ page import="pageNumber.*, java.util.*, java.io.*" @%> 
7

これ多分jarファイルの競合によって引き起こされます。サーブレット/ WEB-INF /ディレクトリのservlet-api.jarを削除します。%Tomcat home%/ libにはすでにこのlibがあります。

+0

servlet-api.jarを削除した後 Tomcatが機能しなくなりました。それを交換した後には機能しましたが、同じエラーが発生しました –

0

Webプロジェクトからサーブレットjarを削除してください。アプリケーション/ Webサーバーは既にどのようにしていましたか。

関連する問題