프레임워크

Hagi 2010. 5. 27. 09:15

DWR 홈페이지


** 일단 모든 프레임워크를 쓸 때, 처음에는 설정의 바다에 빠질 준비를 해야한다.

1. web.xml 설정

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>

</servlet-mapping>


만약, dwr 설정을 여러개로 나누고 싶거나, dwr.xml의 경로가 잡히지 않는 다면 다음을 참고하라

=> 처음 시작할 때, dwr.xml을 WEB-INF/classes 아래에 두면되는데, 이것이 잡히지 않거나 다른 곳에 위치하고 싶을때

( http://directwebremoting.org/dwr/server/servlet/multiconfig.html )


2. dwr.xml 설정

<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">

<dwr>
<allow>
<create creator="new" javascript="EmailService" >
<param name="class" value="org.ironwill.hagi.common.util.mail.email.service.EmailService"/>
<include method="sendMail"/>
</create>
<convert converter="bean" match="org.ironwill.hagi.common.util.mail.email.model.Email" />
</allow>
</dwr>


여기서 아래쪽의 bean에 관한 것은 데이터 모델 클래스를 말하는 것이며,

include method는 create에서 선언한 해당 클래스에서 사용할 메서드를 추가하는 것임

마지막으로 javascript라는 선언은 자바스크립트 내에서 클래스를 호출할때 쓰이는 이름임


3. java 클래스 (서비스:비지니스로직)

public class EmailService{

public boolean sendMail(Email email){

boolean tf;

.......................
return tf;

}

}


4. java 클래스 (데이터 모델 : POJO)

public class Email {
// 수신자 주소
private String mailAddr;
// 제목
private String title;


/* getter 와 setter */


}


일단 5번을 수행하기에 앞서, 서버를 가동시켜서 테스트를 해보아야 한다.

http://주소(통상 localhost:8080)/WEBAPP이름(이클립스라면 프로젝트명)/dwr


테스트 통과 후 => 꼭 이것이 떠야하며, 녹색 영역의 것을 jsp에 가져다 붙여야 함

DWR Test

Methods For: EmailService
(com.tmonet.common.util.mail.email.service.EmailService)


To use this class in your javascript you will need the following script
includes:

  <script type='text/javascript' src='/dwrmail/interface/EmailService.js'></script>
<script type='text/javascript' src='/dwrmail/engine.js'></script>

In addition there is an optional utility script:

  <script type='text/javascript' src='/dwrmail/util.js'></script>

Replies from DWR are shown with a yellow background if they are simple or in
an alert box otherwise.
The inputs are evaluated as Javascript so strings
must be quoted before execution.


  • setEmail( );


    (Warning: setEmail() is
    excluded: Method access is denied by rules in dwr.xml. See below)


  • 이하 생략


    => setEmail() 이것으로 테스트를 하는 것인데 Email객체 파라미터 테스트하는 방법을 몰라서 일단 파라미터를 String 하나만으로 바꾸고 테스트를 진행한 후 다시 Email로 교체해였다.

    (아시는 분 거기 누구 없소 ~ ㅜㅜ)


    5. jsp 내의 javascript


    function sendMail(mailAddr) {
    var title = "메일 도착입니다";
    var email = {
    mailAddr:mailAddr,
    title:title,
    };
    EmailService.sendMail(email,callbackMegaFileFnc);
    }
    function callbackMegaFileFnc(pandan) {
    alert("결과 : "+pandan);

    }



    참고 :

    1. http://openframework.or.kr/Wiki.jsp?page=StartWithDWR

    2. http://litlhope.springnote.com/pages/573981

    3. http://directwebremoting.org/dwr/introduction/getting-started.html

    4. http://directwebremoting.org/dwr/introduction/scripting-dwr.html

    5. http://www.ibm.com/developerworks/java/library/j-ajax3/

    6. http://directwebremoting.org/dwr/server/servlet/multiconfig.html

    7. http://struts.apache.org/2.x/docs/dwr-plugin.html

    8. http://directwebremoting.org/dwr-demo/people/index.html


     
     
     

    프레임워크

    Hagi 2009. 11. 4. 14:48

    System.out으로 버그를 잡는 것은 이제 그만~

     

    <이클립스 필수 유틸리티, 한빛미디어, p221, 5장 JUnit:단위테스트 도구>

    JUnit은 xUnit이라는 단위 테스트 프레임워크의 Java 구현물이며, 에릭 감마와 켄트 벡에 의해서 최초 작성되었다. xUnit은 IBM의 CPL저작권을 따르고 있으며 거의 모든 프로그래밍 언어로 구현 되어있다.


    http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/

    http://c2.com/cgi/wiki?AbstractTestCases

    http://junit.sourceforge.net/doc/testinfected/testing.htma

    http://junit.sourceforge.net/#Getting


     
     
     

    프레임워크

    Hagi 2009. 10. 12. 20:53

    iBATIS가 DAO가 하던 일 중에서 결과값 출력시 매핑하는 일을 대신하였다면,

     

    Hibernate는 DB와 JAVA의 연결을 한다. 보통 entity와 object의 관계라한다.

     

    <설정>

    1. jar파일 다운로드

     

    1-1. http://jboss.org 에 접속한다.  최상단 메뉴에서 Project 밑에 Services 밑에 Hibernate를 클릭한다. 또는

           직접 https://www.hibernate.org/ 에 접속한다.

     

     

    2. Hiberante Core를 클릭하여 접속하고 Lastest release를 클릭한다.

     

     

    3. Hibernate의 버전을 확인한다.

     

     

    4. zip파일을 선택하여 다운로드 한다.

     

     

    다운 받은 hibernate-distribution-3.3.2.GA에서

    lib에 보면

    required에 필수 설정에 관한 jar파일들이 존재한다. 이것을 추가시키고 실행시켜보면...

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

    라는 에러가 나는데, 이때

    slf4j-log4j12-1.5.8.jar 를 lib에 넣어주면 해결된다.

    slf4j-log4j12-1.5.8.jar

     위 required폴더의 jar파일 중 slf4j-api-1.5.8.jar가 있는데, 이것의 이름이 잘못된 것인지 모르겠지만...

    - 첨부파일

    slf4j-log4j12-1.5.8.jar