[ 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 | 5
Bydlisko: Košice
NapísalOffline : 20.07.2009 22:50 | >>> Java - connection problem ! <<<

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 | 5
Bydlisko: Košice
Napísal autor témyOffline : 21.07.2009 22:06 | >>> Java - connection problem ! <<<

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 | 22
Bydlisko: Zilinska Un...

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
 [ Príspevkov: 3 ] 


>>> Java - connection problem ! <<<



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

390

25.01.2009 22:10

Ďuri

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

formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

473

28.09.2009 15:27

tomast7

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

<tr> riadok tabulky ako odkaz <a>

v HTML, XHTML, XML, CSS

3

356

15.03.2010 15:32

1daemon1

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

HTML, CSS - skombinovat <DIV> a <p>

v HTML, XHTML, XML, CSS

2

285

28.04.2016 18:08

doubleR

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

Interpunkcia v elementoch <textarea> a <select>

v HTML, XHTML, XML, CSS

4

182

30.10.2016 12:01

alvar

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

Nazdielanie netu, LAN<-->PC<--wifi-->Notebook

v Siete

1

853

15.04.2006 23:44

Spirit

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

178

30.01.2013 22:08

DropaDred

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

>>>Schvalenie zostavy<<<

v PC zostavy

10

317

16.12.2010 21:55

abcdefgh

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

1027

01.12.2009 0:27

shaggy

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

<a href> around <div>

v HTML, XHTML, XML, CSS

9

630

17.01.2007 22:43

exot

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

<ul> <li> nemam odrazky

v HTML, XHTML, XML, CSS

1

340

09.04.2010 18:26

stenley

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

Nacitanie udajov z databazy do <input> a <textarea&

v PHP, ASP

5

457

03.11.2007 21:46

Matho

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

<p><hr></p>

v HTML, XHTML, XML, CSS

6

357

08.07.2010 21:41

camo

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

717

06.10.2008 17:50

neutronmind

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

Problem s vnorenim <ul>

v HTML, XHTML, XML, CSS

3

788

17.07.2006 18:20

Pufo Callo

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

fakt zaujmavy problem s <body>

v HTML, XHTML, XML, CSS

6

345

12.02.2008 13:13

Tominator



© 2005 - 2018 PCforum, edited by JanoF