🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
12 messages
12 total messages Started by LprzemekL Sun, 03 Jul 2011 19:05
GWT wynik w petli na widget
#152673
Author: LprzemekL
Date: Sun, 03 Jul 2011 19:05
20 lines
2061 bytes
Hej,
Mam taki kod umieszczony po stronie servera:
...
try {
command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
Process procCommand = Runtime.getRuntime().exec((String[])command);
BufferedReader resultCommand = new BufferedReader(new
InputStreamReader(procCommand.getInputStream()));
while ((lineCommand = resultCommand.readLine()) != null) {
	return "<br><br>Result:<br>" + lineCommand + " test";	//nie dziala
}} catch (IOException e) {
       	e.printStackTrace(System.err);
        System.exit(2);
}
...
chcialbym umiescic return w tym miejscu j.w., lecz kompilator wymaga
umieszczenia return na koncu powyzszego kodu, przez co otrzymuje null.
Potrzebuje, aby wynik ping byl bezposrednio umieszczany na ScrollPanel
lub Label po stronie klienta (taki podglad online w czasie
rzeczywistym), da sie tak zrobic ?
Re: GWT wynik w petli na widget
#152674
Author: Adam Jurzyk
Date: Sun, 03 Jul 2011 20:49
27 lines
2051 bytes
On 2011-07-03 21:05, LprzemekL wrote:
> Hej,
> Mam taki kod umieszczony po stronie servera:
> ...
> try {
> command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
> Process procCommand = Runtime.getRuntime().exec((String[])command);
> BufferedReader resultCommand = new BufferedReader(new
> InputStreamReader(procCommand.getInputStream()));
> while ((lineCommand = resultCommand.readLine()) != null) {
> 	return "<br><br>Result:<br>" + lineCommand + " test";	//nie dziala
> }} catch (IOException e) {
>         	e.printStackTrace(System.err);
>          System.exit(2);
> }
> ...
> chcialbym umiescic return w tym miejscu j.w., lecz kompilator wymaga
> umieszczenia return na koncu powyzszego kodu, przez co otrzymuje null.
> Potrzebuje, aby wynik ping byl bezposrednio umieszczany na ScrollPanel
> lub Label po stronie klienta (taki podglad online w czasie
> rzeczywistym), da sie tak zrobic ?

Kompilator nie zabrania Ci umieścić return w tym miejscu. On tylko 
wymaga, aby return był także na końcu bo ten w pętli while nie musi być 
osiągalny.

Adam
Re: GWT wynik w petli na widget
#152675
Author: LprzemekL
Date: Mon, 04 Jul 2011 06:58
15 lines
1732 bytes
On 3 Lip, 22:49, Adam Jurzyk <a.jurzyk@g_a_z_e_t_a.pl> wrote:
> On 2011-07-03 21:05, LprzemekL wrote:
>
>
> Kompilator nie zabrania Ci umieścić return w tym miejscu. On tylko
> wymaga, aby return był także na końcu bo ten w pętli while nie musi być
> osiągalny.
>
> Adam

Hej,
Spoko, ale jak umieszcze:
return "<br><br>Result:<br>" + lineCommand + " test";
na samym koncu, to wartosc lineCommand bedzie juz null i wyrzucony
wynik na ScrollPanel bedzie null, macie moze pomysl jak to obejsc ?
Re: GWT wynik w petli na widget
#152676
Author: Piotr S.
Date: Mon, 04 Jul 2011 07:14
26 lines
2052 bytes
W dniu 2011-07-04 08:58, LprzemekL pisze:
>
> Hej,
> Spoko, ale jak umieszcze:
> return "<br><br>Result:<br>" + lineCommand + " test";
> na samym koncu, to wartosc lineCommand bedzie juz null i wyrzucony
> wynik na ScrollPanel bedzie null, macie moze pomysl jak to obejsc ?


String result=""
try {
command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
Process procCommand = Runtime.getRuntime().exec((String[])command);
BufferedReader resultCommand = new BufferedReader(new
InputStreamReader(procCommand.getInputStream()));
while ((lineCommand = resultCommand.readLine()) != null) {
    result = "<br><br>Result:<br>" + lineCommand + " test";
}} catch (IOException e) {
             e.printStackTrace(System.err);
          System.exit(2);
}
return result;

A może tak ?

PS
Re: GWT wynik w petli na widget
#152677
Author: Adam Jurzyk
Date: Mon, 04 Jul 2011 07:17
36 lines
2345 bytes
On 2011-07-04 08:58, LprzemekL wrote:

>> Kompilator nie zabrania Ci umieścić return w tym miejscu. On tylko
>> wymaga, aby return był także na końcu bo ten w pętli while nie musi być
>> osiągalny.
>>
> return "<br><br>Result:<br>" + lineCommand + " test";
> na samym koncu, to wartosc lineCommand bedzie juz null i wyrzucony
> wynik na ScrollPanel bedzie null, macie moze pomysl jak to obejsc ?

Słowo "także" było kluczowe w mojej odpowiedzi. Proponuję Ci trochę 
poszerzyć elementarną wiedzę z programowania.

Pierwszy "return" pozostawiasz w pętli while, kolejny umieszczasz po 
bloku catch. Ten drugi oczywiście musi raczej zwrócić null (bo co innego 
sensownego?), ale jeśli warunek w pętli while będzie spełniony, to ten 
drugi nigdy się nie wykona.

Coś w tym rodzaju:
<code>
try {
while ((lineCommand = resultCommand.readLine()) != null) {
	return "<br><br>Result:<br>" + lineCommand + " test";	
}} catch (IOException e) {
        	e.printStackTrace(System.err);
         System.exit(2);
}
return null;
</code>

Tak przy okazji, wyłączanie serwera przy wystąpieniu tak błahego wyjątku 
to ciekawy sposób jego obsługi.


Pozdrawiam,
Adam
Re: GWT wynik w petli na widget
#152678
Author: Michal Kleczek
Date: Mon, 04 Jul 2011 08:47
30 lines
1939 bytes
LprzemekL wrote:

> Hej,
> Mam taki kod umieszczony po stronie servera:
> ...
> try {
> command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
> Process procCommand = Runtime.getRuntime().exec((String[])command);
> BufferedReader resultCommand = new BufferedReader(new
> InputStreamReader(procCommand.getInputStream()));
> while ((lineCommand = resultCommand.readLine()) != null) {
> return "<br><br>Result:<br>" + lineCommand + " test";	//nie dziala
> }} catch (IOException e) {
>        e.printStackTrace(System.err);
>         System.exit(2);
> }
> ...
> chcialbym umiescic return w tym miejscu j.w., lecz kompilator wymaga
> umieszczenia return na koncu powyzszego kodu, przez co otrzymuje null.
> Potrzebuje, aby wynik ping byl bezposrednio umieszczany na ScrollPanel
> lub Label po stronie klienta (taki podglad online w czasie
> rzeczywistym), da sie tak zrobic ?

Ten kod bedzie zwracal tylko jedna linijke (jak ci sie uda juz doprowadzic 
do postaci kompilowalnej).
Jezeli chodzi ci o wyniki pinga "na zywo" to bez jakiegos cometa lub 
przynajmniej iframe sie nie obedzie.

-- 
Michal
Re: GWT wynik w petli na widget
#152679
Author: LprzemekL
Date: Mon, 04 Jul 2011 09:04
16 lines
1872 bytes
On 4 Lip, 10:47, Michal Kleczek <klek...@gmail.com> wrote:

>
> Ten kod bedzie zwracal tylko jedna linijke (jak ci sie uda juz doprowadzic
> do postaci kompilowalnej).
> Jezeli chodzi ci o wyniki pinga "na zywo" to bez jakiegos cometa lub
> przynajmniej iframe sie nie obedzie.
>
> --
> Michal

Hej,
Wlasnie mam z tym problem, ze zwraca tylko jedna linijke. Tak
myslalem, ze to nie bedzie takie proste, czy masz na mysli:
comet -> http://code.google.com/p/gwt-comet/wiki/GettingStarted
iFrame -> http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/Frame.html
Re: GWT wynik w petli na widget
#152680
Author: Michal Kleczek
Date: Mon, 04 Jul 2011 09:15
31 lines
1622 bytes
LprzemekL wrote:

> On 4 Lip, 10:47, Michal Kleczek <klek...@gmail.com> wrote:
> 
>>
>> Ten kod bedzie zwracal tylko jedna linijke (jak ci sie uda juz
>> doprowadzic do postaci kompilowalnej).
>> Jezeli chodzi ci o wyniki pinga "na zywo" to bez jakiegos cometa lub
>> przynajmniej iframe sie nie obedzie.
>>
>> --
>> Michal

Nie cytuj sygnatur.

> 
> Hej,
> Wlasnie mam z tym problem, ze zwraca tylko jedna linijke. Tak
> myslalem, ze to nie bedzie takie proste, czy masz na mysli:
> comet -> http://code.google.com/p/gwt-comet/wiki/GettingStarted

Na przyklad.

> iFrame ->
> http://google-web-
toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/Frame.html

Tak.

-- 
Michal
Re: GWT wynik w petli na widget
#152681
Author: Krzysiek
Date: Mon, 18 Jul 2011 05:57
25 lines
1859 bytes
> Hej,
> Wlasnie mam z tym problem, ze zwraca tylko jedna linijke. Tak
> myslalem, ze to nie bedzie takie proste, czy masz na mysli:
> comet ->  http://code.google.com/p/gwt-comet/wiki/GettingStarted
> iFrame ->  http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/Frame.html

Zrób sobie interfejs zamiast zwracać wartości. Potem zaimplementuj gdzie 
chcesz.
...
try {
   command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
   Process procCommand = Runtime.getRuntime().exec((String[])command);
   BufferedReader resultCommand = new BufferedReader(new
   InputStreamReader(procCommand.getInputStream()));
   while ((lineCommand = resultCommand.readLine()) != null) {
     listener.onPing(lineCommand);
   }
} catch (IOException e) {
   e.printStackTrace(System.err);
   System.exit(2);
}
...

-- 
Krzysiek Jelonek
Re: GWT wynik w petli na widget
#152682
Author: Michal Kleczek
Date: Mon, 18 Jul 2011 07:10
32 lines
1952 bytes
On 2011-07-18 07:57, Krzysiek wrote:
>> Hej,
>> Wlasnie mam z tym problem, ze zwraca tylko jedna linijke. Tak
>> myslalem, ze to nie bedzie takie proste, czy masz na mysli:
>> comet -> http://code.google.com/p/gwt-comet/wiki/GettingStarted
>> iFrame ->
>> http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/Frame.html
>>
>
> Zrób sobie interfejs zamiast zwracać wartości. Potem zaimplementuj gdzie
> chcesz.
> ...
> try {
> command = new String[]{"/bin/bash","-c","ping -c 5 192.168.0.2"};
> Process procCommand = Runtime.getRuntime().exec((String[])command);
> BufferedReader resultCommand = new BufferedReader(new
> InputStreamReader(procCommand.getInputStream()));
> while ((lineCommand = resultCommand.readLine()) != null) {
> listener.onPing(lineCommand);
> }
> } catch (IOException e) {
> e.printStackTrace(System.err);
> System.exit(2);
> }
> ...
>

Wybacz, ale...
co to zmienia?

-- 
Michal
Re: GWT wynik w petli na widget
#152683
Author: Krzysiek
Date: Mon, 18 Jul 2011 07:20
22 lines
1698 bytes
W dniu 2011-07-18 09:10, Michal Kleczek pisze:
>
> Wybacz, ale...
> co to zmienia?
>

Co zmienia? Kolega pisze że potrzebuje:
>> Potrzebuje, aby wynik ping byl bezposrednio umieszczany na ScrollPanel
>> lub Label po stronie klienta (taki podglad online w czasie
>> rzeczywistym), da sie tak zrobic ?

dodatkowo informuje że:
> Wlasnie mam z tym problem, ze zwraca tylko jedna linijke

a zwraca jedną linijkę bo tak napisał kod.
Mógłby zebrać dane z outa do obiektu stringbuildera i dopiero zwrócić 
wynik, ale że chce wyświetlać w czasie rzeczywistym, to musi to robić w 
miejscu odczytania każdej linii.
Błąd w założeniu, metoda nie powinna zwracać stringa.

--
Krzysiek
Re: GWT wynik w petli na widget
#152684
Author: Michal Kleczek
Date: Mon, 18 Jul 2011 08:44
28 lines
1965 bytes
On 2011-07-18 09:20, Krzysiek wrote:
> W dniu 2011-07-18 09:10, Michal Kleczek pisze:
>>
>> Wybacz, ale...
>> co to zmienia?
>>
>
> Co zmienia? Kolega pisze że potrzebuje:
>>> Potrzebuje, aby wynik ping byl bezposrednio umieszczany na ScrollPanel
>>> lub Label po stronie klienta (taki podglad online w czasie
>>> rzeczywistym), da sie tak zrobic ?
>
> dodatkowo informuje że:
>> Wlasnie mam z tym problem, ze zwraca tylko jedna linijke
>
> a zwraca jedną linijkę bo tak napisał kod.
> Mógłby zebrać dane z outa do obiektu stringbuildera i dopiero zwrócić
> wynik, ale że chce wyświetlać w czasie rzeczywistym, to musi to robić w
> miejscu odczytania każdej linii.
> Błąd w założeniu, metoda nie powinna zwracać stringa.
>

Ale oczywiscie wiesz, ze ping dziala na serwerze, a jego wynik ma byc 
wyswietlony na kliencie?
Masz pomysl jak to zrobic przy pomocy GWT RPC?

-- 
Michal
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads