tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
463
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mehirc mehirc ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    29
    Hi,

    ich erstelle ein URL Object mit einer dynamischen IP-Adresse und benutze es um dorthin Daten per GET-Parameter zu senden.

    Code :
    1
    2
    
    URL url = new URL("http://my.homeip.net/...");
    url.openStream();

    Der Aufruf wird über einen TimerTask alle 5 Minuten ausgeführt um die Daten aktuell zu halten.

    Das Problem ist nun, dass wenn sich die IP-Adresse hinter dem dynamischen Namen ändert, dieser trotz new URL() weiterhin auf die alte IP aufgelöst wird. Letztendlich hilft da nur ein Anwendungs-Neustart weiter.

    Soweit ich rausgefunden habe, kann das was damit zu tun haben, dass eine Klasse von Java nur einmal geladen wird und man einen eigenen ClassLoader braucht muss um sie jedesmal neu zu laden. Ich konnte aber nicht rausfinden, wie man das mit der java.net.URL Klasse erreichen kann.

    Vielleicht gibt es ja auch eine Möglichkeit abzustellen, dass er sich die IP-Addresse merkt bzw. er die Auflösung jedesmal aktuell macht.

    Würde mich freuen wenn jemand eine Idee zu dem Problem hat und mir weiterhelfen kann.

    Gruß,

    Michael
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    starte deine Anwendung mal mit
    -Dnetworkaddress.cache=0 bzw. sun.net.inetaddrl
    Damit werden die Daten der hostname lookups nicht mehr gecached.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    mehirc mehirc ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    29
    Zitat Zitat von Thomas Darimont Beitrag anzeigen
    Hallo,

    starte deine Anwendung mal mit
    -Dnetworkaddress.cache=0 bzw. sun.net.inetaddrl
    Damit werden die Daten der hostname lookups nicht mehr gecached.

    Gruß Tom
    Hi Tom,

    vielen Dank für den Tip, genau das was ich gebraucht habe, funktioniert prima über Kommandozeile.

    Auch diese beiden Properties funktionieren aus dem Programm heraus:
    Code :
    1
    2
    
    System.setProperty("sun.net.inetaddrl", "0");
    Security.setProperty("networkaddress.cachel" , "0");

    Ein kleines Problem hab ich jedoch noch, keine dieser Einstellungen funktioniert beim Start über Java Web Start. Hab jetzt einiges nachgelesen und ausprobiert, aber offensichtlich ist das nicht ohne Weiteres möglich.

    Gruß,

    Michael
     

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 26.05.10, 00:44
  2. Antworten: 2
    Letzter Beitrag: 29.08.09, 03:55
  3. Dynamic Help
    Von biene-maja im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 04.06.08, 10:34
  4. Interessanter IBM Artikel zum Thema Dynamic Programming mit Java
    Von Thomas Darimont im Forum Java Technology News
    Antworten: 0
    Letzter Beitrag: 15.03.08, 16:27
  5. Dynamic DNS
    Von kAmBeR im Forum Hosting & Webserver
    Antworten: 3
    Letzter Beitrag: 25.03.04, 14:36