redhat 6.7 32bit 환경에서 테스트중 에러가 발생했다..


톰캣 위치/webapps/jsp/HelloBean.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    
<jsp:useBean id="time" class ="java.util.Date" scope="page" />
<jsp:useBean id="hello" class = "com.test.HelloBean" scope="page" />
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Use Bean Test</title>
</head>
    <body>
    <h3> Use Bean Test</h3>
        Hello..
    <%= hello.getName() %>
    <hr>
    Time : <%= time.toLocaleString() %>
    </body>
</html>
cs


톰캣 위치/webapps/jsp/WEB-INF/classes/src/HelloBean.java

1
2
3
4
5
6
7
8
9
10
11
12
package com.test;
 
public class HelloBean{
    private String name = "World";
        public HelloBean() { }
            public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
}
cs


두 파일을 생성 한 후 "톰캣 위치/webapps/jsp/WEB-INF/classes/src/" 의 디렉토리에서 다음과 같이 컴파일 해준다.

# javac HelloBean.java

그 후 생성된 HelloBean.class 파일을 /webapps/jsp/WEB-INF/classes/com/test 로 옮겨준다.


그뒤 로컬에서 테스트 할 경우 웹 브라우저를 켜고

127.0.0.1:8080/jsp/HelloBean.jsp 를 실행하면 될 줄 알았는데!!!!!!!!!

아래와 같은 에러가 발생했다.

HTTP Status 500 - java.lang.NoClassDefFoundError: com/test/HelloBean (wrong name: hello/HelloBean)


이리저리 구글링을 해서 검색해본결과 

jsp 파일의 

<jsp:useBean id="hello" class = "com.test.HelloBean" scope="page" />

부분을

과 같이 한 단계 더 추가해 주고

<jsp:useBean id="hello" class = "com.test.simple.HelloBean" scope="page" />


java 파일도 마찬가지로 


패키지 선언 부분을 

package com.test;

다음과 같이 바꿔주고 실행해 보면 에러 없이 잘 뜨는 것을 확인할 수 있다.

package com.test.simple;

'Dev' 카테고리의 다른 글

find 명령어 사용하기  (0) 2016.07.22
ntp poll interval 에 대해서  (0) 2016.03.10
$$ 을 사용하여 임시 파일 만들기.  (0) 2016.02.23
[redhat 6.7] telnet server 설치  (0) 2016.02.19
CentOS 7 nfs 설정  (1) 2016.02.18

+ Recent posts