problem z Javą na www.triddlers.com

w dziale Strony WWW w Operze
milujciesie napisał(a):

Rozwiązywanych obrazków nie można zapisać ani wysłać wyników, gdyż wyskakuje:
java.lang.NullPointerException
albo
java.io.FileNotFoundException: http://www.griddlers.net/solvedTriddler.jsp?puzzid=3054&uid=TheJAG
w zależności od pogody chyba wink

Na forum triddlersowym jest parę postów o tym problemie w Operze - bez rozwiązania niestety. Podobno pod IE i FF strona chodzi bez zarzutu.

Co robić? knockout

golew napisał(a):

Tu http://my.opera.com/polski/forums/topic.dml?id=160091 już zakładałam wątek. Szyk polecał angielskie forum, ale dalej nie wiem które wink pomoże ktoś zgłosić?

woj-tek napisał(a):

Bo działa, tyle że o dziwo java pod FF/IE działa wolniej O_o. A na forum Griddlersów/Triddlersów jest informacja, że zamierzają to naprawić w bliżej nieokreślonej przyszłości i sugerują do tego czasu używać wspomnianych wcześniej przeglądarek :/

golew napisał(a):

Ale co mogło się stać w 9, że od jej wprowadzenia nie działa? Bo jak wchodzę tam moją 8.54 która zachowała się jeszcze na dysku to działa - co przed 10 sekundami sprawdziłam.

Zajec napisał(a):

Ale czemu Opera ma wysyłać Content-Type: application/x-www-form-urlencoded przy zwykłym wejściu na jakiś adres? Tak powinno być dopiero po kliknięciu na jakiś submit.

szyk napisał(a):

Originally posted by Zajec:

Ale czemu Opera ma wysyłać Content-Type: application/x-www-form-urlencoded przy zwykłym wejściu na jakiś adres? Tak powinno być dopiero po kliknięciu na jakiś submit.


Ja się nie znam, ale w aplecie klika się na "Save", żeby wysłać wyniki na serwer - Opera nie powinna to traktować jako standardowy (lub niestandardowy smile) przycisk "submit"?

woj-tek napisał(a):

Pięknie działa! Dzięki!

Zajec napisał(a):

Czyli jednak klika się na coś :-) Bo jak wszedłem na adres http://www.griddlers.net/solvedTriddler.jsp?puzzid=3054&uid=TheJAG to już dudaj dostałem jakiś błąd, HTTP Status 500 -

woj-tek napisał(a):

Można kliknąć save. Ale także po zakończeniu 'rysowania' jest automatycznie wysylana informacja o 'sukcesie'.

szyk napisał(a):

Originally posted by golew:

Ale co mogło się stać w 9, że od jej wprowadzenia nie działa?


Rozgryzłem to, problem tkwi w wysyłanych nagłówkach przez Operę. Nagłówek z Opery 8.54:

POST /gsolved.jsp HTTP/1.1
User-Agent: Opera/8.54 (Windows ME; U; pl)
Host: www.griddlers.net
Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Accept-Language: pl
Accept-Charset: iso-8859-2, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Cookie: JSESSIONID=XXX
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 1633
Content-Type: application/x-www-form-urlencoded
METHOD: POST

Nagłówek z Opery 9.10:

POST /gsolved.jsp HTTP/1.1
METHOD: POST
User-Agent: Opera/9.10 (Windows ME; U; pl)
Host: griddlers.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: pl,en;q=0.9
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Cookie: JSESSIONID=XXX
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 1631


W nagłówku z Opery 9.10 brak jest linijki: Content-Type: application/x-www-form-urlencoded i przez to łamigłówki nie są zapisywane.

Można go ominąć przy użyciu Proxomitrona.
Jeśli go ktoś nie używa do innych celów, to najlepiej w głównym okienku zostawić tylko zaznaczoną pozycję "Outgoing Header Filters", następnie należy przejść do "Headers", poodznaczać "ptaszki" przy filtrach (jeśli się nie chce ich używać), potem "New" i w opcjach filtru podać:

HTTP Header:   Content-Type: Fix Griddlers Save Bug
URL Match:   griddlers.net
Header Value Match:   (^?)
Replacement Text:   application/x-www-form-urlencoded

Potem "OK", zaznaczyć przy filtrze "Content-Type: Fix Griddlers Save Bug" pozycję w kolumnie "Out", następnie "OK" i zapisać (zielona dyskietka w okienku głównym).
Kolejnym krokiem jest włączenie proxy w Operze o adresie 127.0.0.1 i porcie 8080 przy uruchomionym Proxomitronie.

Originally posted by golew:

Szyk polecał angielskie forum, ale dalej nie wiem które wink


Myślę, że Opera Browser. smile
Oprócz tego dobrze by było zgłosić buga poprzez https://bugs.opera.com/wizard/ oraz zgłosić rozwiazanie "grilddlersom" - może potrafią wymusić przesłanie tego brakującego nagłówka albo inaczej z poziomu serwera obejść problem?

milujciesie napisał(a):

No nie wiem, mi nadal wyskakuje java.lang.NullPointerException sad
Coś specjalnego trzeba pozaznaczać przy tym proxy? Możliwe, żeby to firewall coś psuł? Sama już nie wiem, co może być nie tak right

szyk napisał(a):

Originally posted by milujciesie:

Coś specjalnego trzeba pozaznaczać przy tym proxy?


W Preferencje->Zaawansowane->Sieć->Serwery proxy dla HTTP należy wstawić to, co podałem powyżej i zaznaczyć kwadracik przy HTTP. Szybko włączać i wyłączać proxy można po wciśnięciu F12 (można też sobie wstawić odpowiednie przyciski na pasek narzędzi, które będą to robić).

Aby uniknąć konfigurowania Proxomitrona poniżej wstawiam plik default.cfg z ustawioną poprawką dla griddlers.net, który trzeba przekopiować do katalogu głównego Proxomitrona - po tej operacji wystarczy tylko go włączyć i wyniki powinny już się zapisywać (oczywiście przy odpowiednio ustawionym proxy w Operze smile).

default.cfg

Kod filtru dla griddlers.net to:

In = FALSE
Out = TRUE
Key = "Content-Type: Fix Griddlers Save Bug"
URL = "griddlers.net"
Match = "(^?)"
Replace = "application/x-www-form-urlencoded"

woj-tek napisał(a):

A jednak mam problem z Proxomitronem :/ Nie wiedzieć czemu, ale nie zawsze przechwytuje ruch! Czasami mimo zaznaczonego 'uzywaj proxy' w logach proxomitrona nic nie ma, a strona i tak sie laduje :/

milujciesie napisał(a):

Wygląda, że wszystko było dobrze. Zastosowałam jeszcze powyższe rady i niestety nadal bez skutku - ani zapisywanie, ani wysyłanie wyniku nie działa: java.lang.NullPointerException

szyk napisał(a):

Originally posted by milujciesie:

Wygląda, że wszystko było dobrze. Zastosowałam jeszcze powyższe rady i niestety nadal bez skutku - ani zapisywanie, ani wysyłanie wyniku nie działa: java.lang.NullPointerException


A jak w okienku głównym Proxmitrona klikniesz "Log Window", to przy próbie zapisu wyniku pojawia się w tym okienku coś w stylu:

+++GET 1+++
POST /gsolved.jsp HTTP/1.0
METHOD: POST
User-Agent: Opera/9.10 (Windows ME; U; pl)
Host: griddlers.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: pl,en;q=0.9
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Cookie: JSESSIONID=XXX
Cookie2: $Version=1
Content-Length: 286
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Posting 286 bytes...

?

milujciesie napisał(a):

Tak, to:

+++GET 87+++
POST /gsolved.jsp HTTP/1.0
METHOD: POST
User-Agent: Opera/9.02 (Windows NT 5.1; U; pl)
Host: www.triddlers.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: pl-PL,pl;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Cookie: JSESSIONID=XXX
Cookie2: $Version=1
Content-Length: 333
Connection: keep-alive
Posting 333 bytes...

cry i to:
+++RESP 87+++
HTTP/1.0 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Date: Tue, 16 Jan 2007 19:08:43 GMT
X-Cache: MISS from KDSERV01
Connection: close
+++CLOSE 87+++

szyk napisał(a):

Originally posted by milujciesie:

Host: www.triddlers.com


No to jasne - wyedytuj filtr i tam, gdzie było:

 griddlers.net

wstaw

griddlers.net|triddlers.com

Potwierdź, zapisz.

PS. Serwer proxy powinien być włączony podczas samego wysyłania wyników, w innym czasie może, ale nie musi być włączony.

milujciesie napisał(a):

Yuhuu bigsmile Zadziałało z

griddlers.net|www.triddlers.com

Dzięki, dzięki love

milujciesie napisał(a):

Weekend przed nami, dużo wolnego czasu smile Jeśli ktoś dał cynk na forum Griddlersów albo angielskie forum Opery niech się zgłosi!
Jeśli takowych nie ma, zrobię to w ciągu najbliższych dwóch dni angel