레슨 1.4에서는 애플리케이션 테스트를 위해 웹 프로젝트를 작성하는 단계를
설명합니다.
시작하기 전에 레슨 1.3을 완료해야 합니다.
이 레슨에서는 다음을 수행합니다.
- 웹 프로젝트 EJBCounterWeb을 작성합니다.
- 웹 페이지 EJBCount.jsp를 작성합니다.
- 서블릿 EJBCount.java를 작성합니다.
- 서블릿을 실행하여 애플리케이션을 테스트합니다.
- EJBCounterDB 추출
- 필수 데이터베이스를 가져오십시오. 가져오기 마법사는 EJB 3.0 카운터 프로젝트에 대한 지속성을 제공하기 위해
데이터베이스를 가져옵니다(EJB 3.0 학습서 자원 가져오기).
- 을 펼치고 EJBCounterDB.zip을 두 번 클릭하십시오.
: WebSphere® Application
Server 설치 폴더의 /derby/databases 폴더에 데이터베이스의 압축을
푸십시오.
: WebSphere Application
Server 설치 폴더의 /derby/databases 폴더에 데이터베이스의
압축을 푸십시오. - 데이터베이스 디렉토리에 대한 비루트 사용자 액세스를 제공하십시오. 가장
쉬운 방법은 모든 사용자에게 액세스 권한 chmod ugo+x databases를 제공하는 것입니다.
- 압축을 푼 데이터베이스에 대한 비루트 사용자 쓰기 액세스를 제공하십시오. 예를 들어, 데이터베이스 디렉토리에 대한 액세스 권한을
가진 경우 비루트 사용자로 압축을 풀 수 있습니다.
- Java™ EE 퍼스펙티브에서 엔터프라이즈 애플리케이션 프로젝트를 마우스 오른쪽 단추로 클릭하고
를 선택하여 웹 프로젝트 마법사를 여십시오.
- 웹 프로젝트 페이지의 프로젝트 이름 필드에 EJBCounterWeb을
입력하십시오.
- 프로젝트 템플리트 필드에서 단순을 선택하십시오.
- 프로그래밍 모델 필드에서 Java EE를 선택하십시오.
- 배치 페이지의 사용 가능한 구성 옵션 목록에서 배치를 클릭하여
배치 구성 페이지를 여십시오.
- 대상 런타임에서 WebSphere Application Developer v7 또는 v8을 드롭 다운 상자에서 선택하십시오.
- WebSphere 바인딩 및 확장기능용 지원 추가를 선택 취소하십시오.
- Web 모듈 버전 필드에서 3.0을 선택하십시오.
- EAR 멤버십 필드에서 EAR에 프로젝트 추가를 클릭하십시오.
- EAR 프로젝트 이름 필드에 EJBCounterWebEAR이 표시되는지 확인하십시오.
- 다른 기본값을 승인하고 완료를 클릭하십시오. 연관된 퍼스펙티브를 여시겠습니까?라는 메시지가 표시되면
아니오를 클릭하십시오.
- EJBCounterWeb 프로젝트를 마우스 오른쪽 단추로 클릭하고
를 선택하십시오.
- 새 웹 페이지의 파일 이름 필드에 EJBCount.jsp를 입력하십시오.
- 웹 페이지 편집기의 소스 보기에서 모든 기존 코드를 이 코드로 바꾸고
CTRL+S를 눌러 저장하십시오.
<%@page session="false"%>
<HTML>
<HEAD>
<TITLE>IBM WebSphere EJB3 and JPA1 Counter Sample</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.0 and JPA 1.0 Counter Sample</H1>
<P>
<B>
This application communicates with the WebSphere Application Server using http requests to increment a stateless EJB 3.0 counter bean which is using a JPA 1.0 entity (ie. keeps a persistent counter in a Derby database table).
</B>
<FORM METHOD=POST ACTION="counter">
<BR/>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",0);
String msg = (String) request.getAttribute("msg");
if (msg == null) msg = "";
%>
<B>Click on the Increment button to increment the count</B>
<BR/><BR/>
<INPUT TYPE=SUBMIT VALUE="Increment">
</FORM>
<H3><%=msg%></H3>
</BODY>
</HTML>
- EJBCounterWeb 프로젝트를 마우스 오른쪽 단추로 클릭하고
을 선택하십시오.
- 새 서블릿 페이지의 Java 패키지 필드에 com.ibm.example.websphere.ejb3sample.counter를 입력하십시오.
- 클래스 이름 필드에 EJBCount를 입력하고 다음을 클릭하십시오.
- 이름 필드에 EJB Count Servlet을 입력하십시오. URL 맵핑 필드에서
기존 맵핑을 편집하고 /EJB Count Servlet을 강조표시하고 편집을 클릭하십시오. 패턴을 /counter로 바꾸고
완료를 클릭하십시오.
- EJBCounterWeb 프로젝트를 마우스 오른쪽 단추로 클릭하고
특성을 선택하십시오.
- 배치 어셈블리를 선택하고 Manifest 항목을 선택한 후 추가를 클릭하십시오.
- EJBCounterSampleEE6.jar을 선택하고
완료를 클릭한 후 확인을 클릭하십시오.
- 를 펼치고
EBJCount.java 파일을 두 번 클릭하십시오. Java 편집기에서 파일이 열립니다.
- 기존 코드를 다음 코드로 바꾼 후 CTRL+S를 눌러 저장하십시오.
package com.ibm.websphere.ejb3sample.counter;
// This program may be used, executed, copied, modified and distributed
// without royalty for the purpose of developing, using, marketing, or distributing.
import java.io.IOException;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This servlet demonstrates an EJB3 counter bean with JPA.
*/
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Use injection to get the ejb
@EJB private LocalCounter statelessCounter;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = statelessCounter.getTheValue();
}
catch (RuntimeException e) {
msg = "Error - getTheValue() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Stateless Bean with JPA: " + ejbCount;
// Set attributes and dispatch the JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = statelessCounter.increment();
}
catch (RuntimeException e) {
msg = "Error - increment() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Stateless Bean with JPA: " + ejbCount;
// Set attibutes and dispatch the JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
- 엔터프라이즈 탐색기 보기에서 를 펼치고
EJBCount.java 파일을 마우스 오른쪽 단추로 클릭하고 을 선택하십시오.
- 카운터 애플리케이션이 웹 브라우저에서 열립니다.
EJB 3.0 카운터 학습서를 마치겠습니다.