# Axis mit Proxy verwenden - ich werde wahnsinnig ! HELP !



## ich_wills_wissen (12. Jan 2007)

Hallo zusammen,

ich versuche nun seit Tagen verzweifelt Axis dazu zu bewegen seine Anfragen an meinen Webservice
über einen Proxy zu schicken. Es will einfach nicht gelingen...  

Hier meine Quelle zur Realisierung (Theorie): ws.apache.org/axis/java/client-side-axis.html

Und meine Umsetzung:


```
Service service = new Service();
Call call = null;
	
try
{	
	call = (Call)service.createCall() ;
}

catch(Exception e){}
		
call.setProperty( "proxySet", "true");
call.setProperty( "proxyHost", "127.0.0.1" );
call.setProperty( "proxyPort", "8118" );
// call.setProperty( "http.proxyUser", proxyUser );   nicht benötigt
// call.setProperty( "http.proxyPassword", proxyPW );   nicht benötigt
```

Testhalber habe ich auf meinem Rechner Privoxy installiert und eine local-firewall.
Die Firewall lässt nur Privoxy ins Web und sonst keine andere Anwendung.
Das Ganze funktioniert auch, Firefox, Sametime etc kommen problemlos damit zurecht.
Nur mein Web-client will auf Teufel komm raus nicht den Proxy nutzen  :cry:  :bahnhof: 

In der Konsole bekomme ich folgendes:


> AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
> faultSubcode:
> faultString: java.net.ConnectException: /192.168.2.15:80 - Connection refused
> ...


Anmerkung: Ohne Proxy-Einstellung funktioniert der Call, tollerweise MUSS ich aber einen Proxy nutzen, da es wohl auch Anwender geben wird, die Proxies nutzen..

Weiß jemand, wie ich *irgendwie* auf einen Webservice via Proxy zugreifen kann ?
Wenn es mit Axis nicht geht vielleicht mit Axis2 ? Oder was anderem ?

Wäre superklasse, wenn mir jemand weiterhelfen könnte  

Beste Grüße,

ich_wills_wissen


----------



## Klaus Halfmann (12. Mrz 2007)

Die Seite:
http://ws.apache.org/axis/java/client-side-axis.html

sagt nichts über 
   "proxSet" etc.

Die Parameter 
   "http.proxyHost" etc. kann bei Java als System Properties

(also java -Dhttp.proxyHost=.. -Dhttp.proxyPort) mitgeben,
allerding sind sie dann global  :? Nicht immer das was man
will.
   Ich suche selber noch weiter ..


----------



## BanditsReno (23. Mai 2007)

Diese Sache sollte so funktionieren:

import org.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties;

.
..
...

ProxyProperties proxyProperties = new ProxyProperties();
proxyProperties.setProxyName(PROXYIP);
proxyProperties.setProxyPort(PROXYPORT);
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROTOCOL_VERSION, org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10);
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY, proxyProperties);

...
..
.

Das Problem ist, dass du das HTTP Protokoll auf Version 1.0 setzen musst, sobald ein Proxy eingesetzt wird.

MfG


----------



## Oliver Braun (5. Nov 2007)

Hallo BanditsReno,

was ich an der ganze Sache aber nicht verstehe ist, dass wenn ich über "https" (und  Proxy) zugreife - ich das HTTP Protokoll nicht auf Version 1.0 setzen muss ???

options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROTOCOL_VERSION, org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10); 

Kannst Du es mir vielleicht erklären?

Vielen Dank
Oli


----------



## Alexis (27. Jan 2008)

Hi,

so wie's in den Axis2 quellen aussieht wird am Ende die Konfiguration immer von einer eventuell vorhandenen JVM http proxy Einstellung überschrieben. Einstellen in Axis2.xml oder per ProxyProperties funktioniert nur wenn kein JVM proxy eingestellt ist.

Schönen Gruss,

Alexis


----------

