08. februar 2008 - 11:50
Der er
21 kommentarer og 1 løsning
Java factory
Hvordan får jeg en timeout på hvis urlen ikke svarer trae = factory.newDocumentBuilder().parse("URL");
Annonceindlæg fra Conscia
08. februar 2008 - 12:40
#1
jeg skal kunne styre hvor lang tid jeg vil vente på at den svare. Hvor kan jeg se hvordan det hænger sammen
08. februar 2008 - 12:43
#2
Problemet er hvis den svare men er langsom
08. februar 2008 - 13:10
#3
Du kan prøve med: System.setProperty( "sun.net.client.defaultConnectTimeout", "100"); jeg ved ikke om det virker i denne kontekst, men det er værd at prøve.
08. februar 2008 - 13:33
#4
Konteksten er Document trae; NodeList elementer; try { trae = factory.newDocumentBuilder().parse("url"); elementer = XPathAPI.selectNodeList(trae, ""); for (int i = 0; i < elementer.getLength(); i++) { do whatever } } catch (Exception e) { Systen.out.print("FEJL: "+e); }
08. februar 2008 - 14:02
#5
Jeg kan faktisk ikke helt gennemskue om det overhovedet er et problem. Jeg kan se at hvis urlen ikke er "rigtig" så smiden den en exception som den skal. Jeg er bare bekymret over hvad der sker hvis den svare, men er for langsom
08. februar 2008 - 16:47
#6
Jeg håber virkelig der er en smart løsning på det :-) Ellers skal jeg vist til at skrive en hel del om, og det vil jeg helst ikke :-(
08. februar 2008 - 16:55
#7
Har du proevet med den linie jeg foreslog ?
08. februar 2008 - 18:46
#8
ja, men det så ikke ud til at virke. Slet ikke sagt at det så ikke gør det :-)
08. februar 2008 - 18:47
#9
Jeg er vist kommet til at oprette det her spørgsmål i den forkerte kategori. Burde have oprettet det under JSP
09. februar 2008 - 12:08
#10
Det skal forståes sådan her ikke. try { System.setProperty( "sun.net.client.defaultConnectTimeout", "100"); trae = factory.newDocumentBuilder().parse("url"); elementer = XPathAPI.selectNodeList(trae, ""); for (int i = 0; i < elementer.getLength(); i++) { do whatever } } catch (Exception e) { Systen.out.print("FEJL: "+e); } Så dropper den forbindelsen efter 100 milisekunder ikke. Hvordan kan den vide det er forbindelsen til "url" den skal droppe, eller er det bar noget man skal sige sådan er det bare? På denne her side som i virkeligheden bare er en del af en anden side henter jeg xml fra 2 forskellige kilder. Kan jeg så i teorien så også sætte en System.setProperty( "sun.net.client.defaultConnectTimeout", "100"); inde i try'en på den (please sig JA) try { System.setProperty( "sun.net.client.defaultConnectTimeout", "100"); trae = factory.newDocumentBuilder().parse("url"); elementer = XPathAPI.selectNodeList(trae, ""); for (int i = 0; i < elementer.getLength(); i++) { do whatever } } catch (Exception e) { Systen.out.print("FEJL: "+e); } try { System.setProperty( "sun.net.client.defaultConnectTimeout", "150"); trae = factory.newDocumentBuilder().parse("enandenurl"); elementer = XPathAPI.selectNodeList(trae, ""); for (int i = 0; i < elementer.getLength(); i++) { do whatever } } catch (Exception e) { Systen.out.print("FEJL: "+e); }
09. februar 2008 - 12:12
#11
uha hvis jeg ikke kan sætte en timeout på så bliver jeg vist nød til at lave det hele om. Det er jeg sku ikke meget for. Så bliver det noget wsdl som henter xml som så bliver vist med noget ajax
09. februar 2008 - 21:33
#12
System.setProperty( "sun.net.client.defaultConnectTimeout", "100"); en enkelt gang bør gøre at alle udgående HTTP requests timer ud efter 100 millisekunder.
09. februar 2008 - 21:34
#13
Jeg tror såmænd at Java er den rigtige kategori. Problemet er generelt Java ikke specikt JSP.
09. februar 2008 - 21:34
#14
Siger du at den ikke timer ud efter 100 ms ?
10. februar 2008 - 18:30
#15
Jeg ville forvente at hvis jeg skriver System.setProperty( "sun.net.client.defaultConnectTimeout", "1"); så når den ikke at oprette forbindelsen, men det gør den
11. februar 2008 - 00:45
#16
Medmindre det er localhost, så burde den ikke kunne nå at oprette forbindelse.
11. februar 2008 - 06:17
#17
Det er ikke localhost og forbindelsen bliver oprettet. Meget mærkeligt
11. februar 2008 - 08:43
#18
Den timer ikke ud
11. februar 2008 - 09:32
#19
Er det her i princippet ikke rigtigt. Kan jeg mangle en jar og i så fald hvilken? <%@ page import="org.apache.commons.httpclient.*" %> HttpClient client = new HttpClient();
11. februar 2008 - 10:34
#20
Mit problem er lidt at den version jeg skal bruge er gammel og jeg har ikke mulighed for at opgradere den :-( Manifest-Version: 1.0 Ant-Version: Apache Ant 1.5.3 Created-By: Apache Jakarta Maven Built-By: michael Package: org.apache.commons.httpclient Build-Jdk: 1.2.2 Extension-Name: commons-httpclient Specification-Version: Specification-Vendor: Apache Software Foundation Specification-Title: Jakarta Commons HttpClient Implementation-Version: 2.0 Implementation-Vendor: Apache Software Foundation Implementation-Vendor-Id:
11. februar 2008 - 10:39
#21
Det er i princippet det her jeg gerne vil, men det får jeg ikke lov til. HttpClient client = new HttpClient(); httpclient.getParams().setParameter("http.socket.timeout", new Integer(1000)); GetMethod method = new GetMethod(authURL); InputStream rstream = null; rstream = method.getResponseBodyAsStream(); Document xmlresponse = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(rstream);
11. juli 2010 - 15:28
#22
lukker
Kurser inden for grundlæggende programmering