# java webstart problem oder alternativ classloader



## iTob87 (30. Juli 2009)

hey leute,

ich habe folgendes problem:
ich habe zwei webstart anwendungen A und B. die netzwerkeinstellungen von webstart sind so konfiguriert, dass alles über einen proxy laufen soll. für anwendung A ist diese einstellung vollkommen korrekt. anwendung B soll hingegen nicht über einen proxy sondern direkt die verbdinndung aufbauen. gibt es eine möglichkeit die netzwerkeinstellungen zu ignorieren und eine direkte verbindung aufzubauen (vielleich in der jnlp oder in der java app)?

falls dies einfach nicht möglich sein sollte, müsste ich meine app so schreiben, dass sie libaries zur laufzeit aus einem ordner lesen kann. diese libaries liegen wiederum zentral auf einem fremden server. wenn die libaries auf dem server einen anderes stand haben wie diese, wo lokal vorliegen, dann sollen die lokalen libaries mit denen des servers ersetzt werden (im grunde genau der mechanismus, welchen webstart bietet). Kennt ihr hierfür evtl. schon fertige tools bzw. eine gute möglichkeit, wie ich diese libaries zur laufzeit einbinden kann (evtl. auch ohne reflection)?


greetz, iTob


----------



## Thomas Darimont (30. Juli 2009)

Hallo,

versuch doch mal in deinem jnlp Dokument

über <property name="" value=""/>

Die JVM Properties:
http.proxyHost
http.proxyPort
http.nonProxyHosts

zu setzen.

Gruß Tom


----------



## iTob87 (30. Juli 2009)

hey thomas,

zunächst einmal vielen dank für deine schnelle antwort. du meinst, ich soll 

http.proxyHost
http.proxyPort
http.nonProxyHosts

jeweils auf null setzen (also dann so: <property name="http.proxyHost" value="" />), damit ich eine direkt verbindung ohne proxy aufbauen kann?

wenn du das meinst, dann funktioniert das leider nicht.... 

hast du vielleicht eine andere gute idee, wie ich (vielleicht auch ohne webstart) den gleichen effekt wie bei webstart erreichen kann?


greetz, iTob


----------



## Thomas Darimont (30. Juli 2009)

Hallo,

hast du es schon mit 
<property name="http.nonProxyHosts" value="*.foo.com|yourserver|192.168.13.3"/>
probiert?

Ansonsten schau mal hier:
http://www.tutorials.de/forum/java/298135-classpath-mit-classloader-kuenstlich-erweitern.html

... oder so:

```
...
    try {
      URL[] additionalClassPathEntries = new URL[entries.size()];

      for (int i = 0; i < entries.size(); i++) {
        additionalClassPathEntries[i] = entries.get(i).toURI().toURL();
      }

      URLClassLoader ucl = new URLClassLoader(additionalClassPathEntries, Thread.currentThread().getContextClassLoader());

      Thread.currentThread().setContextClassLoader(ucl);
    } catch (Exception e) {
      e.printStackTrace();
    }
...
```

Gruß Tom


----------

