2011-02-08 11 views
7

Musiałem zaktualizować poprzednią aplikację java, która żąda odpowiedzi SOAP z zewnętrznego serwisu WWW. Ta usługa znajduje się poza naszą zaporą ogniową, która wymaga teraz przejścia przez serwer proxy zamiast bezpośredniego klikania adresu URL.Połączenia SOAP za pośrednictwem serwera proxy przy użyciu URLEndpoint

Obecnie aplikacja Java używa URLEndpoint, który pobiera ciąg znaków dla adresu URL. Zwykle, gdy jestem coraz do adresu URL przez pełnomocnika utworzyć URL tak:

URL url = new URL("http", "theproxy.com", 5555, finalUrl); 

Problemem jest URLEndpoint zajmuje tylko ciąg adresu URL, próbowałem konwertować URL do łańcucha za pomocą toExternalForm(), ale zniekształcony adres URL.

Wszelkie pomysły dotyczące sposobu obejścia tego problemu?

EDYCJA: Nie mogę użyć System.setProperty, ponieważ działa z całą stertą innych aplikacji Java w tomcat.

sekund edit: Nie można ustawić właściwości systemu, jak to będzie zastąpić wszystkie inne aplikacje uruchomione na serwerze, nie mogę używać jsocks jako pełnomocnika prowadzimy przez squid proxy, który nie obsługuje SOCKS4/5

Każda pomoc doceniona.

Odpowiedz

7

To nie działa jak proxy. Sposób, w jaki działa pełnomocnik jest, aby wziąć swój normalny URL:

http://example.com/service 

i zamiast patrzeć w górę „example.com” i port 80, wiadomość zostanie wysłana do hosta proxy zamiast (http://theproxy.com:5555).

Java ma wbudowaną obsługę proxy przy użyciu właściwości systemu http.proxyHost i http.proxyPort.

Więc w twoim przypadku trzeba by było zrobić:

System.setProperty("http.proxyHost", "theproxy.com"); 
System.setProperty("http.proxyPort", "5555"); 

Następnie kod do sytuacji, "tylko praca".

Here to strona dokumentująca właściwości serwera proxy.

+0

Wiem proxy nie działa w ten sposób, ale po prostu próbują wszystko . Ciekawe jednak rozwiązanie, spróbuję ci odpowiedzieć. Pozdrowienia – Rudiger

+0

W rzeczywistości nie mogę tego zrobić, ponieważ powoduje to, że kocur uruchamia proxy, a nie tylko instancję. :(Wszelkie inne sugestie? – Rudiger

+0

Użyj biblioteki proxy (jsocks, rabbit, itp.) – mindas

Powiązane problemy