Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
>>> Java - connection problem ! <<<

Registrovaný: 05.01.09
Prihlásený: 04.04.16
Príspevky: 13
Témy: 5
Bydlisko: Košice
Príspevok NapísalOffline : 20.07.2009 22:50

Posnazim sa to vysvetlit:

Metoda1 [Object], ktora podla parametra ktorym je link stranky, stiahne cely zdrojovy kod stranky do buffru, vyselektuje nejake hodnoty a vrati ich.

Metoda2 [void], ktora prepisuje neaktualne hodnoty v ArrayListe na najnovsie hodnoty z netu (ktore dostane z Metody1). Kedze linky sa nachadzaju v ArrayListe (ktore potrebuje Metoda1 ako parameter), vyuziva sa foreach cyklus.

Ide o to, ze ak spustim program, nejake hodnoty sa vyselektovat podari, no potom nastane ten dany citovany problem. Vacsinou (takych 70% pripadov) sa uspesne podari spracovat prve 3 linky (3/7) z ArrayListu. Niekedy 4, niekedy 6 a RAZ sa mi podarilo vsetky. Neviem kde je problem...skusal som DEBUG a krok po kroku som to presiel, logicku chybu som nenasiel a v debugy presiel cely program so 100% uspesnostou...Najvacsi bonus na tom vsetkom je neziaduci vypadok internetu sposobeny mojou aplikaciou :D Myslel som si, ze je to sposobene rychlostou ciklu for ktory mohol sposobovat nedaj boze DDOS utok. Preto som vlozil do cyklu kod: "Thread.sleep(10000);" vysledok bol taky, ze na spracovanie 3. linku som cakal 30 sekund a 4. link nespracovalo..ten isty prob. Par krat sa mi podarilo spracovat 5 alebo 6 linkov stale inak...no vacsinou 3, niekedy 1 niekedy vobec ziaden...

Metoda1[kod]:
Kód:
 public Object[] getSite(String link) {

        Object[] nameAndPrice = {null, null};

        URL url = null;
        URLConnection urlConn = null;
        InputStreamReader inStream = null;
        BufferedReader buffer = null;
        String nextLine;

        try {
            url = new URL(link);
            urlConn = url.openConnection();
            inStream = new InputStreamReader(
                    urlConn.getInputStream());
            buffer = new BufferedReader(inStream);

            while (true) {
                nextLine = buffer.readLine();
                .
                .
                SELEKTOVANIE STRANKY (tu chyba nie je, cyklus bude brake-nuty)
                .
                .
            }
            nameAndPrice[0] = finalName;
            nameAndPrice[1] = finalPriceWithoutTax;
            return nameAndPrice;
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }


Metoda2[kod]:
premennda products bola deklarovana takto: List<Product> products = new ArrayList<Products>();
Kód:
public void valueUpdate() {
        for (Product product : products) {
            Object[] o = getSite(product.getLink());
            System.out.println(o[0].toString() + " " + o[1].toString());
            product.setName((String) o[0]);
            product.setPriceWithoutTax((Double) o[1]);
        }
    }


Chybovy vypis:
Citácia:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:837)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:778)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:703)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1026)
at pricelist.MainFrame.getSite(MainFrame.java:340)
at pricelist.Main.main(Main.java:14)
Exception in thread "main" java.lang.NullPointerException
at pricelist.Main.main(Main.java:15)
Java Result: 1


Cely den nad tym sedim, no neviem prist na to, co to moze sposobovat...
ma niekto nejake rady? budem velmi vdacny...(topiaci sa aj slamky chyta) :cry:







_________________
La morte non viene mai da sola.
"Death never comes alone"
Offline

Užívateľ
Užívateľ
>>> Java - connection problem ! <<<

Registrovaný: 05.01.09
Prihlásený: 04.04.16
Príspevky: 13
Témy: 5
Bydlisko: Košice
Príspevok Napísal autor témyOffline : 21.07.2009 22:06

OMFG! do metody1 som zabudol pridat
Kód:
buffer.close();
preto to neslo, jeziiiiiiis hlavne ze 2 dni nad tym sedim.. :lol:

aj tak celkom tomu nerozumiem preco prave taka vec mohla robit hluposti...kedze som vytvaral novy buffer, preco ten predtym trebalo zavriet? Myslel som ze garbage collector to poriesi...Vie mi to niekto vysvetlit co sa to tam deje? :loony:







_________________
La morte non viene mai da sola.
"Death never comes alone"
Offline

Užívateľ
Užívateľ
>>> Java - connection problem ! <<<

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 22.07.2009 8:38

Kukal som tvoj zdrojak, . Mozem ti ukazat jednu funkciu z mojej komunikacie, mam tam viac kontrol a funguje spravne, je to len testovacia funkcia ese neuplna, ale funguje spravne ...
Stiahne zdrojak sranky a vypise ho do konzoli.

Kód:
private void HttpConnection(String httpUrl) {

      try {

         _httpUrl = httpUrl;
         Connection connectionHttp;

         // 1. Open connection to internal tag
         boolean newApplication = false;

         
         
         if ((connectionHttp = Connector.open(_httpUrl)) instanceof HttpConnection) {

            conn = (HttpConnection) connectionHttp;

            form.append("pripajanie ... \n");
            System.out.println("\n**pripajanie na hTTP URL: \n" + _httpUrl + ".\n");
            System.out.println("**pripajanie na hTTP conn: \n" + conn + ".\n");
            // form.append("\n httpUrl OK \n");

            // conn.setRequestMethod(HttpConnection.GET);
            // conn.setRequestProperty("Connection", "close");

            // ****************************************************************2end

            // InputStream inputStream;

            // InputStream in = conn.openInputStream();

            if (conn == null) {
               conn = null;

               System.out.println("\n**internalUrl NULL \n");
               form.append("\n**internalUrl NULL \n");

            }
            if ((conn.getResponseCode() == HttpConnection.HTTP_OK)) {
               int length = (int) conn.getLength();
               // inputstream

               _inputStream = conn.openInputStream();
               form.append("\n**HTTP_OK \n");

               

               if (length == -1) {
                  // unknown length returned by server.
                  // It is more efficient to read the data in chunks, so
                  // we
                  // will be reading in chunk of 1500 = Maximum MTU
                  // possible

                  System.out
                        .println("Data Read from Server OK !!!!!!!!!!!!!!!! \n ");
                  form.append("\n**lenght -1 \n");

                  int chunkSize = 1500;
                  byte[] data = new byte[chunkSize];
                  ByteArrayOutputStream baos = new ByteArrayOutputStream();

                  int dataSizeRead = 0;// size of data read from input
                  // stream.

                  while ((dataSizeRead = _inputStream.read(data)) != -1) {
                     // it is not recommended to write to string in the
                     // loop as it causes heap defragmentation and it is
                     // inefficient, therefore we use the
                     // ByteArrayOutputStream.
                     baos.write(data, 0, dataSizeRead);
                     System.out.println("Data Size Read = "
                           + dataSizeRead);
                  }

                  dataRead = new String(baos.toByteArray());
                  baos.close();

               } else {
                  form.append("\n**lenght not -1 \n");
                  System.out
                        .println("Data Read from Server not correct !!!!!!!!!!!!!!!! \n ");
                  _dataInputStream = new DataInputStream(_inputStream);
                  byte[] data = new byte[length];
                  // try to read all the bytes returned from the server.
                  _dataInputStream.readFully(data);
                  dataRead = new String(data);

               }
               form.append("\n Data Read from server--\n \n");
               form.append(dataRead);
               System.out.println("Data Read from server--\n" + dataRead
                     + "\n");

            }
         } else {

            System.out.println("httpUrl null \n");
            form.append("httpUrl NULL \n");
         }

      } catch (IOException e) {
         form.append("IOException: " + e);
         System.out.println("\n**Caught IOException: " + e + "\n");
         e.printStackTrace();
      }
      // Since only limited number of network objects can be in open state
      // it is necessary to clean them up as soon as we are done with them.
      finally {// Networking done. Clean up the network objects
         try {
            if (_inputStream != null)
               _inputStream.close();
         } catch (Throwable t) {
            System.out.println("Exception occurred while closing input "
                  + "stream.");
         }
         try {
            if (conn != null)
               conn.close();
         } catch (Throwable t) {
            System.out.println("Exception occurred " + t.toString());
         }
      }

   }











_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Odpovedať na tému [ Príspevkov: 3 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Hrúbka <frame> a <rules> v <table>

v HTML, XHTML, XML, CSS

7

664

25.01.2009 22:10

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

747

28.09.2009 15:27

tomast7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nazdielanie netu, LAN<-->PC<--wifi-->Notebook

v Siete

1

1082

15.04.2006 23:44

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <tr> riadok tabulky ako odkaz <a>

v HTML, XHTML, XML, CSS

3

568

15.03.2010 15:32

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Interpunkcia v elementoch <textarea> a <select>

v HTML, XHTML, XML, CSS

4

456

30.10.2016 12:01

alvar Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. HTML, CSS - skombinovat <DIV> a <p>

v HTML, XHTML, XML, CSS

2

584

28.04.2016 18:08

doubleR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chladiče procesorov >>Všetky problémy sem<<

v Chladiče a všetky druhy chladenia

3

486

30.01.2013 22:08

DropaDred Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. >>>Schvalenie zostavy<<<

v PC zostavy

10

653

16.12.2010 21:55

abcdefgh Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. tagy <em> a <strong>

v Internetový marketing, SEO, reklama

24

1400

01.12.2009 0:27

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <a href> around <div>

v HTML, XHTML, XML, CSS

9

958

17.01.2007 22:43

exot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <ul> <li> nemam odrazky

v HTML, XHTML, XML, CSS

1

560

09.04.2010 18:26

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nacitanie udajov z databazy do <input> a <textarea&

v PHP, ASP

5

694

03.11.2007 21:46

Matho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <p><hr></p>

v HTML, XHTML, XML, CSS

6

582

08.07.2010 21:41

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. načo slúžia tagy <div id="all"> a <div

v HTML, XHTML, XML, CSS

3

1003

06.10.2008 17:50

neutronmind Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s vnorenim <ul>

v HTML, XHTML, XML, CSS

3

950

17.07.2006 18:20

Pufo Callo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s <hr /> v IE

v HTML, XHTML, XML, CSS

5

518

28.08.2007 9:47

imnotwhafo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra