2016-07-14 20 views
0

Ich habe ein Problem, wenn Apache Axis 1.4 Client für den Zugriff auf Web-Service über Proxy verwenden.AxisProperties Proxy-Einstellungen aufhören zu arbeiten in Achse 1.4

Zuerst die Dinge funktionieren, aber an einem gewissen Punkt (nicht das Intervall bestimmt) der Proxy einfach aufhört zu funktionieren und ich anfangen,: Unknown

Hier ist der Code:

if (proxyHost != null && !proxyHost.isEmpty()) { 
     logger.warn("Using proxy server: " + proxyHost + " port " + proxyPort); 
     AxisProperties.getProperties().put("proxySet", "true"); 
     AxisProperties.setProperty("http.proxyHost", proxyHost); 
     AxisProperties.setProperty("http.proxyPort", proxyPort); 
     if (proxyUser != null && !proxyUser.isEmpty()) { 
      logger.warn("User proxy user: " + proxyUser); 
      AxisProperties.setProperty("http.proxyUser", proxyUser); 
      AxisProperties.setProperty("http.proxyPassword", proxyPassword); 
     } 
    } //then make call 

    Stub binding = (Stub)      new ServiceLocator().getServiceSoap(new URL(myUrl)); 

Habe ich eine verpasst wichtiger Punkt?

Antwort

0

Ich habe das Problem gefunden. Es hatte mit der Reihenfolge der Anrufe zu tun. Meine App ruft mehrere Webdienste auf ... einige, die einen Proxy erfordern, und andere, die dies nicht tun. Nach einem Neustart des Servers, wenn ein Nicht-Proxy-Dienst zuerst aufgerufen wurde, verwendete die AxisProperties Standardwerte, die keinen Proxy enthalten. Wenn der Dienst zuerst aufgerufen wurde, der einen Proxy benötigt, dann hat es funktioniert. Also habe ich den Block AxisProperties über OBEN bewegt, so dass es getan wurde, bevor irgendwelche Anrufe getätigt wurden. Ich habe auch 'http.nonProxyHosts' eingestellt, um Dienste einzuschließen, die keinen Proxy benötigen.

Ich weiß, dass diese Technologie alt wird und es immer schwieriger wird, Antworten zu finden. Ich hoffe, das hilft jemandem da draußen, der vorerst mit 1.4 festsitzt.