[컴][웹] GWT 에서 Debugging in Development Mode

gwt superdevmode 사용하기 / super dev mode 사용법 / how to run super dev mode / how to use super dev mode / how to debug gwt / gwt 디버깅 / gwt debugging






Development 의 개략적인 설명은 여기를 참고하자.

Development mode 을 실행하는 법

development mode 를 사용하는 방법은 2가지가 있다. 하나는 IDE 의 plugin 을 이용해서 사용하는 방법이고, 하나는 gwt 에서 제공하는 GWT Development Mode window 를 사용하는 것이다.
  • Google plugin for IDE
  • GWT Development Mode window

command line 에서 development mode session 을 띄울려면 
  • c:\>ant devmode 
를 하면 된다. 그러면 아래처럼 창이 하나뜨는데, 여기서 Launch Default Browser 등을 띄우면 만들어 놓은 결과물을 확인할 수 있다. ant devmode 의 command 는 여기서 확인할 수 있다.


이 development mode window 가 Jetty instance 를 띄워서 server 를 돌려준다(run).(ref.1), 만약 자신이 만든 server 와 연동 test 를 하고 싶을 수도 있다. 이때는 이 서버이외의 서버를 띄울 수도 있다. 자세한 것은 
을 참고하자.

참고로, eclipse plugin 등에서 java source debugging 사용하는 server 는 -noserver 로 할 경우 실행되지 않는다. 


log window

화면은 log 를 뿌려주는데, 이 창에 log 를 write 하기 위해서는
함수를 사용하면 된다. 보여지는 log 의 level 은 ant devmode 의 options 로 넣어줄 수 있다. 직접 넣을 수는 없고, ant 의 build.xml 을 수정하면 된다. build.xml 에서 -logLevel 를 찾아보자.



Super Dev Mode

Super Dev Mode 는 web server(GWT Code server) 에서 GWT compiler 를 돌린다.(run)

Super Dev Mode 와 관련된 자세한 사항은 여기를 참조하고, 여기서는 한 번 사용해 보자.


module.xml

module.xml (ex: GwtStats.gwt.xml)에 아래 부분이 있는지 확인하자. gwt-2.6.0 에서 webAppCreator 로 만들면 자동으로 들어가 있다.
<add-linker name="xsiframe"/>
ref. 4에서는 아래부분도 필요하다고 한다.
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
See Also 를 보면 아래처럼 설정해줘야 한다고 한다.
<!-- Super Dev Mode Config: -->
<add-linker name="xsiframe" />
<set-configuration-property name="devModeRedirectEnabled" value="true" />
<set-configuration-property name="gwt.superdevmode" value="on" />
<set-property name="compiler.useSourceMaps" value="true"/>


super dev mode 실행

c:\GwtStats2>"ant.bat" superdevmode
Buildfile: c:\GwtStats2\build.xml

libs:

javac:
    [javac] c:\Users\namhadmin\Documents\workspace\WebPortal\GwtStats2\build.xml:29: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

superdevmode:
     [java] workDir: C:\Users\NAMHAD~1\AppData\Local\Temp\gwt-codeserver-6966075783329027345.tmp
     [java] binding: user.agent=safari
     [java] binding: compiler.useSourceMaps=true
     [java] binding: locale=en
     [java] Compiling module com.namh.gwtstats.GwtStats
     [java]    Compiling 1 permutation
     [java]       Compiling permutation 0...
     [java]       Source Maps Enabled
     [java]    Compile of permutations succeeded
     [java] Linking into C:\Users\NAMHAD~1\AppData\Local\Temp\gwt-codeserver-6966075783329027345.tmp\com.namh.gwtstats.GwtStats\compile-1\war\gwtstats; Writing extras to C:\Users\NAMHAD~1\AppData\Local\Temp\gwt-codeserver-6966075783329027345.tmp\com.namh.gwtstats.GwtStats\compile-1\extras\gwtstats
     [java]    Link succeeded
     [java]    Compilation succeeded -- 9.890s
     [java] Compile completed in 10500 ms
     [java]
     [java] The code server is ready.
     [java] Next, visit: http://localhost:9876/
     [java] 2014-03-20 12:38:02.133:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
     [java] 2014-03-20 12:38:02.173:INFO:oejs.AbstractConnector:Started SelectChannelConnector@127.0.0.1:9876

위의 경로 http://localhost:9876 으로 접속하면 아래와 같은 화면을 볼 수 있다.


페이지에서 얘기하는 것처럼 Dev Mode On, Dev Mode Off 를 북마크에 넣어놓자.


Run GWT Module

이제 GWT Application 을 띄워보자. browser 로 접속할 수 있는 상태로 GWT application 를 setup 해야 하기 때문에 어떤 방식으로든 server 를 하나 띄워야 할 것이다.

여기서는 devmode 를 이용해서 Module 에 접속할 수 있게 setup 을 했다. 경로는 아래와 같다.

  • http://127.0.0.1:8888/GwtStats.html

Dev Mode on

이 상황에서 Dev Mode On 을 누르면 아래처럼 Compile 창이 뜬다. 이제 Compile 버튼을 누르면, java code 가 다시 Compile 이 된다.




Debugging

compile 이 끝나면 아래처럼 chrome 에서 java 를 debugging 할 수 있게 된다.



동영상을 보고 싶다면 ref. 2 을 참고하자.


Logging

web 화면에 log 를 찍을 수도 있다. 자세한 내용은 ref. 3 을 참고하자.

참고로 아래처럼 사용하면, 자동으로 웹페이지에 log box 를 그리게 된다.

# In your .gwt.xml file
<inherits name="com.google.gwt.logging.Logging"/>


# In your .java file
Logger logger = Logger.getLogger("NameOfYourLogger");
logger.log(Level.SEVERE, "this message should get logged");



See Also


References



댓글 없음:

댓글 쓰기