Bonjour,

préambule : j'utilise cxf 2.1.4, Jboss 4.0.5 avec une jdk 1.6.

Je dois me connecter à un WebService via HTTPS, ce que j'arrive à faire correctement.
Cependant, le réseau peut parfois être muni d'un proxy et il faut donc que je donne la possibilité de passer à travers ce proxy. pour celà, j'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
BindingProvider provider = (BindingProvider) port;
provider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
 
Client client = ClientProxy.getClient(provider);
 
HTTPConduit conduit = (HTTPConduit) client.getConduit();
 
HTTPClientPolicy policy =  new HTTPClientPolicy();
policy.setConnectionTimeout(TIME_OUT);
policy.setReceiveTimeout(TIME_OUT);
 
// Affectation du serveur proxy
if (!StringTools.isNullOrEmpty(proxyHost)) {
	policy.setProxyServerType(ProxyServerType.HTTP);
	policy.setProxyServer(proxyHost);
	policy.setProxyServerPort(proxyPort);
}
 
conduit.setClient(policy);
 
// Définition du compte d'authentification au proxy
if (!StringTools.isNullOrEmpty(proxyUser)) {
	ProxyAuthorizationPolicy proxyAuthorizationPolicy = new ProxyAuthorizationPolicy();
        proxyAuthorizationPolicy.setUserName(proxyUser);
        proxyAuthorizationPolicy.setPassword(proxyPwd);
 
        conduit.setProxyAuthorization(proxyAuthorizationPolicy);
}
Mon problème est le suivant :
l'adresse du proxy et le port pour s'y connecter (l'HttpClientPolicy, quoi) sont bien pris en compte. Cependant, si je suis sur un proxy qui prend en compte une authentification "BASIC", l'user et le pwd (donc le ProxyAuthorizationPolicy) ne sont pas pris en compte et la connexion m'est refusée avec une belle erreur 407 Proxy Authentication Required.

Après avoir un peu fouillé, j'ai trouvé cette issue : https://issues.apache.org/jira/browse/CXF-2223 qui a l'air de correspondre à mon problème.
J'ai donc pris la version 2.1.9 de cxf qui doit normalement résoudre ce soucis.

Cependant, avec cette nouvelle revision et le même code que ci-dessus, une exception est remontée sur l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
HTTPConduit conduit = (HTTPConduit) client.getConduit();
Voici le Stack :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '*.http-conduit': Cannot create inner bean '(inner bean)' of type [org.apache.cxf.configuration.spring.JAXBBeanFactory] while setting bean property 'client'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public static java.lang.Object org.apache.cxf.configuration.spring.JAXBBeanFactory.createJAXBBean(javax.xml.bind.JAXBContext,java.lang.String,java.lang.Class)] threw exception; nested exception is java.lang.RuntimeException: javax.xml.bind.UnmarshalException
 - with linked exception:
[javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,219]
Message: <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114#ElementPrefixUnbound?http&http:client]" target="_blank">http://www.w3.org/TR/1999/REC-xml-na...p&http:client]</a>
J'avoue que j'ai un peu cherché mais là je sèche un peu... Quelqu'un aurait-il une idée ?

Merci d'avance