블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 
 
Tomcat 6.0에서 Oracle ADF Faces 를 이용하여 JSF 실행 환경을 구축하는 방법입니다.



혹시 난 이거저거 다 귀찮다고 하시는 분들은 아래 공유된 파일을 받아다가 $TOMCAT_HOME/lib 디렉토리에 압축만 푸셔도 됩니다.

이 환경에서 JSF 프로그래밍을 하는 방법은 http://bcho.tistory.com/366 문서를 참고하시면 되겠습니다.
저작자 표시
신고

삽질 Tomcat 6.0 + ADF(JSF)

프로그래밍/JSF & Oracle ADF Faces | 2009.07.23 18:14 | Posted by 조대협
Tomcat 환경에서. ADF(JSF)를 사용할 수 있는 환경을 만드려고 꽤나 많은 시간을 삽질을 했습니다. 퇴근시간 되니까는 이제야 되네요.

==
Dear all,

Now it works for me!

I was using the build-in tomcat6 which comes bundled with Ubuntu Linux and couldnt get it to work. 

But with apache-tomcat-6.0.18
downloaded from the Tomcat web site it works!

Here are the steps, which I think is much easier than what has been mentioned before:
1) Make a (simple) web app using ADF
2) In Project properties / Deployment create or edit a deployment profile.
Goto WEB-INF/lib | Contributors and simply check ALL boxes, except from 'JSP Runtime'
3) Now you can see all the required JARs in WEB-INF/lib | Filters
4) Deploy the application to a WAR file
5) Unzip the WAR file and copy all the JARs from 
WEB-INF/lib into Tomcat's lib/ directory.
6) Go to the deployment profile and uncheck all JARs from WEB-INF/lib | Filters

Tadaa, no tedious searching for files in JDeveloper diretory.

For the record, here are the JAR files I need for my project (on Linux). As some file names appear in several places in JDeveloper installation, I show also the file sizes, if you need to check that you have copied the right file.

-rw-r--r-- 1 j j 43875 2009-01-04 10:48 adf-dt-at-rt.jar
-rw-r--r-- 1 j j 1133197 2009-01-04 10:48 adfdt_common.jar
-rw-r--r-- 1 j j 5456 2009-01-04 10:48 adflogginghandler.jar
-rw-r--r-- 1 j j 7192374 2009-01-04 10:48 adfm.jar
-rw-r--r-- 1 j j 1081920 2009-01-04 10:48 adf-richclient-api-11.jar
-rw-r--r-- 1 j j 5195904 2009-01-04 10:48 adf-richclient-impl-11.jar
-rw-r--r-- 1 j j 300838 2009-01-04 10:48 adf-share-base.jar
-rw-r--r-- 1 j j 550371 2009-01-04 10:48 adf-share-ca.jar
-rw-r--r-- 1 j j 187838 2009-01-04 10:48 adf-share-support.jar
-rw-r--r-- 1 j j 3138 2009-01-04 10:49 adf-transactions-dt.jar
-rw-r--r-- 1 j j 1618653 2009-01-04 10:48 cache.jar
-rw-r--r-- 1 j j 73604 2009-01-04 10:47 com.bea.core.antlr.runtime_2.7.7.jar
-rw-r--r-- 1 j j 112307 2009-01-04 10:48 commons-el.jar
-rw-r--r-- 1 j j 52353 2009-01-04 10:48 db-ca.jar
-rw-r--r-- 1 j j 3166578 2009-01-04 10:48 dvt-faces.jar
-rw-r--r-- 1 j j 5885712 2009-01-04 10:48 dvt-jclient.jar
-rw-r--r-- 1 j j 1141790 2009-01-04 10:48 dvt-utils.jar
-rw-r--r-- 1 j j 4488218 2009-01-04 10:48 eclipselink.jar
-rw-r--r-- 1 j j 376639 2009-01-04 10:47 glassfish.jstl_1.2.0.1.jar
-rw-r--r-- 1 j j 2827517 2009-01-04 10:48 groovy-all-1.5.4.jar
-rw-r--r-- 1 j j 296940 2009-01-04 10:48 identitystore.jar
-rw-r--r-- 1 j j 364781 2009-01-04 10:48 inspect4.jar
-rw-r--r-- 1 j j 62837 2009-01-04 10:47 javax.activation_1.1.0.0_1-1.jar
-rw-r--r-- 1 j j 45264 2009-01-04 10:47 javax.persistence_1.0.0.0_1-0.jar
-rw-r--r-- 1 j j 121001 2009-01-04 10:48 jdev-cm.jar
-rw-r--r-- 1 j j 2115001 2009-01-04 10:48 jewt4.jar
-rw-r--r-- 1 j j 338644 2009-01-04 10:48 jsf-api.jar
-rw-r--r-- 1 j j 793732 2009-01-04 10:48 jsf-ri.jar
-rw-r--r-- 1 j j 3086 2009-01-04 10:48 jsp-el-api.jar
-rw-r--r-- 1 j j 280984 2004-09-03 08:02 mail.jar
-rw-r--r-- 1 j j 24609 2009-01-04 10:48 ojmisc.jar
-rw-r--r-- 1 j j 3503 2009-01-04 10:48 oracle-el.jar
-rw-r--r-- 1 j j 56420 2009-01-04 10:48 share.jar
-rw-r--r-- 1 j j 122371 2009-01-04 10:48 sun-commons-beanutils.jar
-rw-r--r-- 1 j j 177543 2009-01-04 10:48 sun-commons-collections.jar
-rw-r--r-- 1 j j 112394 2009-01-04 10:48 sun-commons-digester.jar
-rw-r--r-- 1 j j 26077 2009-01-04 10:48 sun-commons-logging.jar
-rw-r--r-- 1 j j 1052899 2009-01-04 10:48 trinidad-api.jar
-rw-r--r-- 1 j j 4216915 2009-01-04 10:48 trinidad-impl.jar
-rw-r--r-- 1 j j 1484 2009-01-04 10:48 weblogic-injection-provider.jar
-rw-r--r-- 1 j j 562059 2009-01-04 10:48 xml.jar
-rw-r--r-- 1 j j 1431960 2009-01-04 10:48 xmlparserv2.jar


Another question: I didn't buy any Oracle products, I just downloaded JDeveloper.
Are there any restrictions on what I am allowed to do with ADF Faces in this case?
(I would like to use ADF Faces in an Open Source product).

Jacob

==

http://forums.oracle.com/forums/thread.jspa?threadID=722037&start=15&tstart=0


이 순서대로 하니까는 되더군요..
내일 다시 문서랑 동영상으로 정리해봐야 쓰겄습니다.


저작자 표시
신고
본글은 http://bcho.tistory.com/366 에서 만든 ADF 기반의 JSF 애플리케이션을 배포하고 테스트 하기 위해서 웹로직 서버를 설정하고 애플리케이션을 배포하고 테스트 하는 방법입니다.

위 링크에 의해서 애플리케이션이 만들어져 있어야 하고 WebLogic 11g가 깔려있어야 합니다. (Oracle JDeveloper 11g를 깔면 같이 깔리게 됩니다.)

저작자 표시
신고
본 예제는 JSF(Java Server Faces)의 구현체중 하나인 Oracle ADF Faces를 이용하여 개발하는 예제입니다. 아주 간단하게 TEXT 박스에서 이름을 읽어서 출력하는 HELLO WORLD 예제입니다. 이클립스 기반 JSF 개발 환경 구축에 대해서 알아볼 수 있습니다.

환경 정보
- WebLogic 11g (JDevloper 11g에 포함됨)
- JDevloper 11g (ADF 라이브러리를 사용하기 위함) - http://www.oracle.com/technology/software/products/jdev/index.html

소스 코드는 를 참고하세요 
다음 강좌에서는 만들어진 JSF 애플리케이션을 웹로직을 설정하고 배포해서 테스트 하는 방법에 대해서 알아보겠습니다.

(동영상내의 글씨가 작아서 잘 안보이시면 확대해서 보세요. 조금 났군요.)
신고
자바 기반의 웹 프로그래밍 모델은 
1세대에 Servlet을 기반으로 하다가 
2세대에 JSP와 같은 스크립트 랭귀지를 사용하면서 편의성이 증가되고
3세대에 Struts나 WebWork와 같은 MVC 프레임웍을 도입하면서 생산성과 프로그램의 구조를 끌어올리는 역할을 하였습니다.

4세대(?)로 불릴 수 있는 것이 JSF (Java Server Faces)와 같은 모델입니다. 이 모델에서는 특히 View 부분의 태그라이브러리가 강화 되어 AJAX 기반의 Rich UI Component를 사용할 수 있게 되었습니다. 예를 들어 아래와 같은 애플리케이션을 태그 라이브러리를 통해서 구현이 가능하다는 것이지요.
(예제 오라클 JSF Implementation인 ADF UI의 샘플)

JSF는 MVC모델의 발전형(?)으로 여러가지 장점을 가지고 있습니다.HTML태그보다 JSF 태그를 사용하여 버튼이나 LIST 박스등을 재정의 하였고, 이로 인해서 위의 그림과 같이 상당히 고급 수준의 이쁜 컴포넌트를 사용할 수 있게 되었고, 이런 컴포넌트는 클라이언트 플랫폼(웹브라우져,WAP,IPHONE)에 따라서 자동으로 최적화 되도록 디자인 되었습니다.

JSF의 개념을 생각해보면 MVC 프레임웍과 같이 웹프로그래밍 로직을 다루어주는 Model Controller의 개념에 해당하는 부분이 있습니다. 이부분은 주로 페이지간의 흐름과 비지니스 로직등을 표현합니다. 큰개념상으로는 Struts들과 다를 것이 없습니다.

앞단에는 앞서 설명한것과 같은 태그 라이브러리들을 제공합니다.
JSF는 JEE5 스펙에 포함되어 있습니다. 스펙인 만큼 그 구현방법이 벤더마다 다른데요.
위에서 설명한 Model,Controller에 해당하는 부분은 대부분 유사합니다. 차이점은 앞의 태그 라이브러리들이 얼마나 많고 그 사용법이 틀리냐 하는 차이입니다. 물론 라이브러리에 따라서 배포 방법도 차이가 납니다. 아마 다들 이런 JSF 환경 설정에서 헤매고 있는 것 같습니다.

대표적인 JSF Implementation으로는 Sun의 GlassFish에 포함되어 있는 Reference Implementation이 있습니다. RI이기 때문에 기능 자체는 강력하지 않구요.
Apache의 Myfaces가 널리 사용됩니다. http://myfaces.apache.org/
그리고 Oracle의 ADF (Application Development Framework)중에서 ADF Faces라는 부분이 JSF를 지원합니다. 아무래도 벤더에서 만든 만큼 그 컴포넌트 수와 UI의 완성도는 더 높네요. http://www.oracle.com/technology/products/adf/adffaces/index.html 무료이고. 제가 테스트해본 결과. Eclipse에서 JSF 로 개발하는데 문제가 없고. Tomcat에서도 사용할 수 있습니다.

JSF의 장점중의 하나는 UI 설계를 할때 HTML 날코딩이 아니라 비주얼 베이직 처럼 컴포넌트를 드래그앤 드롭해서 디자인 할 수 있습니다. 레이아웃들이 잘 정의되어 있어서 제법 쓸만하더군요. 그런데 문제는 이클립스에서는 아직 지원이 안되고 벤더 제공 툴에서만 제공이 됩니다. Oracle의 JDeveloper나 IBM의 Rational Application Developer, Sun의 NetBeans 정도겠네요. 팁이라면 팁이지만, UI 디자인만 벤더 IDE를 사용하고, 생성된 파일을 이클립스에서 끌어다가 사용하는 것도 하나의 방법이 되겠네요.

저작자 표시
신고
JSF(Java Server Faces)로 쉽게 말하면 Struts나 Webwork 와 같은 MVC 프레임웍입니다.
JEE5부터 정식으로 스펙에 포함된 표준이기도 하구요.
무엇보다 AJAX기반의 Faces 라는 UI  컴포넌트들을 지원을 해서 트리,테이블,메뉴와 같은 Rich한  UI컴포넌트를 웹상에서 자유롭게 구현할 수 있다는 크나큰 장점이 있음에도 불구하고

한국에서는 잘 사용되지 않더군요...

가우스와 같은 X인터넷 클라이언트를 사용하거나 MVC는 Struts를 사용하는 경우가 대부분인것 같습니다만 해외에서는 이미 dice.com(직업 사이트)에서도 JSF가 Struts를 앞질러 버렸는데요.
왜 한국에서는 잘 사용되지 않을까요? 혹시 의견이나 이유를 아시는분 있으면 알려주세요.

저작자 표시
신고
TAG JSF