Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > GWT и debug режим


Автор: Atum 5.8.2009, 16:20
Добрый день 

подскажите пожалуйста как можно отлаживать клиентский код.  

что имеется - есть большой проект , есть сервер jboss , 

есть клиенты которые написаны на gwt+ gxt

возникла острая необходимость отлаживать клиентский код. 

но непонятно , как это можно сделать ? 

среда разработки - Netbeans 6.5.1 


Вопрос как запустить этот режим отладки, как поймать точки останова в коде , как при этом пользоваться браузером FireFox ? а не встроенным в gwt ?

Автор: Nofate 5.8.2009, 23:09
Конкретно по Netbeans сказать не могу - пользуюсь Eclipse и просто запускаю штатный debug. Но при этом использовать нужно именно встроенный в gwt браузер, т.к. в фаерфоксе вы увидите уже скомпилированный javascript.

Автор: Atum 6.8.2009, 09:23
Цитата(Nofate @ 5.8.2009,  23:09)
Конкретно по Netbeans сказать не могу - пользуюсь Eclipse 

Да Eclipse все отлично работает, провекрял , есть хороший плагин  с настройками.   

но нужно для Netbeans .
 

Автор: andyhomes 6.8.2009, 09:47
Цитата(Atum @ 5.8.2009,  16:20)
Добрый день 

подскажите пожалуйста как можно отлаживать клиентский код.  

что имеется - есть большой проект , есть сервер jboss , 

есть клиенты которые написаны на gwt+ gxt

возникла острая необходимость отлаживать клиентский код. 

но непонятно , как это можно сделать ? 

Может лучше посмотреть в сторону GWT + JUnit?
http://code.google.com/intl/ru/webtoolkit/doc/1.6/DevGuideTesting.html

Автор: dimafeng 6.8.2009, 13:52
Может поможет log4j?

Автор: Atum 7.8.2009, 12:46
Хочется ставить бряки в текст клиента, и дебажить как нормальный код java .

под Eclipse  все отлично работает , а вот как сделать так чтобы работало и netbeans ?

Автор: andyhomes 10.8.2009, 14:20
https://gwt4nb.dev.java.net/

Автор: Atum 26.8.2009, 17:23
 Отладка кода работает под Эклипс и под Идею - превосходно .

есть замечательные плагины , и там и там - просто в самом плагине указывается - порт , внешнего сервера, ставится параметр -noserver, указываются пути к java кодам и все. 

под netbeans есть только  непонятный урезанный плагин - который может дебажить только тогда когда проект создался 
из самой среды , а если его создали из исходных кодов - то подцепиться к  такому дебагу этот gwt shell не 
может !!! 

может быть кто нибудь поможет решить эту "классовую" несправедливость ?!
 чем netbeans хуже остальных ide ??? 

что нужно сделать ??? 

__________________________________________


как я понимаю : после установки плагина - gwt4nb - в интерфейсе появится еще одна кнопка - 

Debug -> GWT Host mode 


она становится доступной когда в проекте типа web appl ( глобус) 

в папке nbproject появляется файл build-gwt.xml 


вот тут и начинаются трудности 

вопрос в том что в этом файле надо написать ???? 


как я понимаю , в нем нужно написать свой target ???

как его написать , как заставить среду поднимать эту hostmode ? gwt компилятора ?

как указать ему откуда брать коды? - где прописать пути к этим кодам? 

как ему указать что запускать нужно не внутренний сервер tomcat  -а  внешний - ключ 
-noserver  

по порту 

-port 80 


в idea - это все делается в плагине - просто даже не задумываясь  - есть форма в которую вынесли все парамеры ...

в netbeans ничего похожего нет ??? !!! почему ...



Автор: andyhomes 26.8.2009, 17:34
Цитата(Atum @  26.8.2009,  17:23 Найти цитируемый пост)
в папке nbproject появляется файл build-gwt.xml 

А что внутри?

Автор: Atum 26.8.2009, 19:07
внутри код который нагенерила среда netbeans , понять что там  unreal .
__________________________________________________________


поэтому медленно и методически создаем этот файл сами и даем ему все то чего он хочет !

но если начать по шагам smile 

то получается что - запускаем старт этот build-gwt - он говорит что ему нужен  

Код

  <target name="debug-connect-gwt-shell-hosted">



создаем его и в нем пишем следующее : 

Код

   
       <!-- You can override this property in the 'gwt.properties' file -->
        <property name="gwt.shell.jvmargs" value="-Xmx256M"/>
        <property name="gwt.shell.output.style" value="OBFUSCATED"/>
        <property name="gwt.shell.logLevel" value="WARN"/>
        <property name="gwtshell.jvmargs.base" value="-Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:transport=dt_socket,address=${jpda.address.gwt}"/>
        <condition property="gwt.shell.jvmargs.debugger" value="${gwtshell.jvmargs.base} -XstartOnFirstThread"
                   else="${gwtshell.jvmargs.base}">
            <os family="mac"/>
        </condition>

            <java fork="true" classname="com.google.gwt.dev.HostedMode">
            <jvmarg line="${gwt.shell.jvmargs}"/>
            <jvmarg line="${gwt.shell.jvmargs.debugger}" />
            <classpath>
                <path path="${src.dir}:${javac.classpath}"/>
                <path path="C:/Lib/gwt-windows-1.6.4/gwt-dev-windows.jar"/>
                <path path="C:/Lib/gwt-windows-1.6.4/gwt-user.jar"/>
                <pathelement location="C:/Lib/gxt-2.0.1/gxt.jar"/>
                
                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            </classpath>
            <syspropertyset>
                <propertyref prefix="run-sys-prop."/>
                <mapper type="glob" from="run-sys-prop.*" to="*"/>
            </syspropertyset>
            <arg value="-noserver"/>
            <arg value="-port"/>
            <arg value="8080"/>
            <arg value="${main}"/>
            <arg value="-style"/>
            <arg value="${gwt.shell.output.style}"/>
            <arg value="-logLevel"/>
            <arg value="${gwt.shell.logLevel}"/>
            <arg value="-startupUrl"/>
            <arg value="${client.url}"/>
            
        </java>


далее смотрим что в нем нужно создать и изменить :

Это Важно ! 

Указать пути к 

Код

               <path path="C:/Lib/gwt-windows-1.6.4/gwt-dev-windows.jar"/>
                <path path="C:/Lib/gwt-windows-1.6.4/gwt-user.jar"/>
                <pathelement location="C:/Lib/gxt-2.0.1/gxt.jar"/>



а так же вместо 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


пути ко всем java кодам которые мы имеем в проекте и которые компилируются в js 

незабываем про 

Код

 <arg value="${main}"/>



где main - это наш point 

например com.google.mygwt.Main,

и так же про 

Код

   <arg value="${client.url}"/>


на сервере это что то типа 



http://localhost:8080/MyPr/




собственно и все !!!!


 вроде бы работает , 

но вот вопрос для чего нужен этот кусок кода ? 

в том варианте что сгенерила среда Netbeans ?

Код


        <nbjpdastart transport="dt_socket" addressproperty="jpda.address.gwt" name="com.google.gwt.dev.GWTShell" stopclassname="">
            <classpath>
                <path path="${javac.classpath}:${src.dir}"/>
            </classpath>
            <sourcepath>
                <path path="${src.dir}"/>
            </sourcepath>
        </nbjpdastart>


Автор: andyhomes 26.8.2009, 19:34
Цитата(Atum @  26.8.2009,  19:07 Найти цитируемый пост)
но вот вопрос для чего нужен этот кусок кода ?
... 

Наверно в "nbjpdastart" ключевой элемент - JPDA - Java Platform Debugger Architecture

Автор: Atum 27.8.2009, 09:34
build-gwt  лучше переименовать например в  buildgwt

иначе среда перезаписывает build-gwt  его каждый раз. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)