시작전 설정
Eclipse 가 deploy 등등 조작(?)을 하려면 서버 설정을 하나 해줘야 합니다.
- 서버 시작
시작 → 프로그램 → Oracle WebLogic → User Projects → base_domain → Start Admin Server for Weblogic Server Domain
- Administration Console 실행 → 상단에 Preferences 클릭
- 마지막 Automatically Acquire Lock and Activate Changes를
체크해제하고
Save 클릭
- 왼쪽 상단의 Change Center가 수동으로 바뀌었습니다.
- Release Configuration을 클릭하여
Lock & Edit 버튼이 활성화되게 바꿉니다.
이 상태가 되어야 Eclipse가 자동 배포 등이 가능하게 됩니다..
Eclipse에 Runtime Server 추가하기
- Eclipse IDE for Java EE Developers로 시작합니다... File → New → Other... 선택
- Server → Server 선택. Next 클릭
- 처음에는 WebLogic이 없습니다.
Download additional server adapters 클릭
- 기다리면 정보를 받아와 목록이 생깁니다.
Oracle WebLogic Support 선택. Next 클릭
- 라이선스에 동의.
Finish 클릭
- 프로그램을 다운로드 받아 설치한다고 합니다.
OK 클릭
- 다운로드 및 설치 중... 설치가 완료되면 자동으로 Eclipse를 재시작합니다.
- JDK 버젼 어쩌고 나오는군요...
Yes 클릭
- 다시 File → New →
Other... 그리고 Server →
Server
서버 목록에 Oracle WebLogic Server v10.3 이 생겼습니다. 선택 후
Next
- WebLogic Server 의 위치를 설정합니다.
- 도메인을 설정합니다.
- 적용시킬 프로젝트를 추가시킵니다. 현재는 프로젝트가 하나도 없군요...
- 아래 Servers 탭에 WebLogic Server 가 추가되었습니다.
간단한 세션 빈 테스트 - Server(WebLogic)
※ 컴퓨터 2대(Tomcat 6.0.18, WegLogic 10.3)로 분산환경에서 테스트 합니다.
File → New → Other... 그리고 General → Faceted Project 선택. Next 클릭
- 프로젝트 이름 설정. Next 클릭
- Facet 를 조합합니다. WebLogic에 맞는 EJB Porject를 생성하기 위해서는 아래와 같이 조합합니다.
오른쪽 Runtimes 탭에서 꼭 Oracle Weblogic Server v10.3을 체크해주세요.
체크하지 않으면 "
Failed to retrieve WLS runtime for EJB processing" 에러가 납니다.
- Source Folder를 설정합니다.
- 잘 만들어 졌다네요..(아닌가?)
- Project Explorer를 보게되면 아래와같이 EJB Project가 만들어졌습니다.
- New →
Package. 패키지를 하나 만듭니다.
- New →
WebLogic Session Bean 선택. 여기서 만드는 파일이
빈(Bean) 클래스 파일이 됩니다.
- 소스 코드를 완성합니다.
기본적으로 세션빈에서 만들어져야 하는 명세는 GenericSessionBean 클래스에 작성되어있고 이걸 상속 받는군요...
public class HelloWorld extends GenericSessionBean implements SessionBean
{
중요한 부분은 @ 가 있는 부분입니다.
@JndiName은 클라이언트에서 lookup하는 JNDI 이름을 설정합니다.
@FileGenerration은 remoteClass, remoteHome, localClass, localHome 클래스 파일을 자동 생성할지 설정합니다.
@Session(ejbName = "HelloWorld")
@JndiName(remote = "ejb.HelloWorldRemoteHome")
@FileGeneration(remoteClass = Constants.Bool.TRUE, remoteHome = Constants.Bool.TRUE,
localClass = Constants.Bool.FALSE, localHome = Constants.Bool.FALSE)
remoteClass를 TRUE로 설정시, 사용자가 추가하는 메소드에는 꼭
@RemoteMethod를 적어줘야 원격(Remote) 클래스에 메소드가 추가됩니다.
@RemoteMethod
public String helloWorld() {
return "Hello World!!";
}
빈(Bean) 클래스 파일만 작성하면 원격(Remote) 클래스, 홈(Home) 클래스, 기타파일(ejb-jar.xml, weblogic-ejb-jar.xml) 등을 알아서 만들어줍니다.
ex)
빈(Bean) 클래스 : HelloWorld.java
원격(Remote) 클래스 : HelloWorldRemote.java ← 자동생성
홈(Home) 클래스 : HelloWorldRemoteHome.java ← 자동생성
배치 디스크립터 파일 : ejb-jar.xml , weblogic-ejb-jar.xml ← 자동생성
- 아래 Servers 탭에서 WebLogic을 선택후 마우스 우클릭 → Add and Remove Projects...
현재 만든 프로젝트를 Configured projects 목록에 추가시킵니다.
- 서버 아래에 HelloWorld 프로젝트가 추가되었습니다.
- Run → Run 선택.
Run on Server 선택 후 OK
- 서버 확인 후
Finish
- 서버가 실행되면서 자동으로 배치(재배치) 합니다.
※ 프로젝트의 State가 둘다 "
Republish", "
Synchronized"가 아니면 배치가 안된거니 확인하세요.(명세에 안맞거나 기탕 등등 에러)
※ 여기서 이런 오류가 나온다면, 위에 "시작전설정" 이 제대로 안되서 나오는 오류 입니다.
- Administration Console 실행 후 Deployments에서 배치가 되어있으면 성공!
※ 이클립스 프로젝트가 삭제되거나 서버의 프로젝트 목록에 없으면 배치가 안되니 다 완성후에는 수동으로 배치 시켜줘야겠죠?;;
클라이언트 설정하기
- 서버에서 작성된 EJB jar 파일이 클라이언트에서 필요합니다.
프로젝트 최상위 루트에서 마우스 우클릭 → Export → EJB JAR File 선택 후 적당한 위치에 저장합니다.
이 파일(HelloWorld.jar)은 클라이언트 프로젝트의 WebContent\WEB-INF\lib 에 저장합니다.
- 클라이언트가 서버와 다른 컴퓨터. 다른 JVM, 다른 컨테이너 등등 다를 경우 서버(WebLogic)의 라이브러리가 필요합니다
wlfullclient.jar 파일은 [톰켓설치폴더]\lib 에 저장합니다.
※ 링크가 바뀌는 바람이 링크 수정 하면서 여기에다 wlfullclient.jar 파일 생성법 올립니다. 이래서 링크는 싫어... ㅠ_ㅠ
Creating a wlfullclient.jar File for a Client Application
Use the following steps to create a wlfullclient.jar file for a client application:
1.Change directories to the server/lib directory.
cd WL_HOME/server/lib
2.Use the following command to create wlfullclient.jar in the server/lib directory:
java -jar ../../../modules/com.bea.core.jarbuilder_X.X.X.X.jar
where X.X.X.X is the version number of the jarbuilder module in the WL_HOME/server/lib directory. For example:
java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar
3.You can now copy and bundle the wlfullclient.jar with client applications.
4.Add the wlfullclient.jar to the client application’s classpath.
간단한 세션 빈 테스트 - Client(Tomcat)
※ 컴퓨터 2대(Tomcat 6.0.18, WegLogic 10.3)로 분산환경에서 테스트 합니다.
- File → New → Dynamic Web Project 선택. 프로젝트 이름, Target Runtime 설정
- 소스 코드를 완성합니다.
소스의 내용은 JNDI로 룩업해서 Hello World!!! 찍는거...
wlfullclient.jar과 HelloWorld.jar 파일이 아래와 같이 라이브러이에 등록되어있어야 합니다.
wlfullclient.jar : [톰켓설치폴더]\lib
HelloWorld.jar : [프로젝트]\WebContent\WEB-INF\lib
- Run → Run. Server 확인 후 Finish
- 잘 실행되었습니다!! ㅠ_ㅠv