Bonjour,
Actuellement en stage, je travaille sur une application en Java qui doit récupérer des données sur Microsoft Project Server 2010 à partir des web services de la Project Server Interface.
J'ai donc, sous eclipse, créé un nouveau client web service. A partir du WSDL du service de la PSI : http://localhost/_vti_bin/psi/Resource.asmx?wsdl, Eclipse a généré les classes java qui permettent de faire appel au web service, et d'en récupérer les résultats.
Je rencontre une erreur bloquante pour mon projet que je n'arrive pas du tout à résoudre depuis maintenant une semaine. J'ai pu me faire aider par un collègue qui cherche également une solution avec moi mais nous ne trouvons rien jusqu'a présent.
Voici le code de mon client :
//* correspond à la ligne à laquelle plante ce programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public static void main(String[] args) throws Exception { try { Resource svcRess = new ResourceLocator(); ResourceSoap port = new ResourceSoapStub(); port = svcRess.getResourceSoap(); ReadResourcesResponseReadResourcesResult result = port.readResources("", false); //* System.out.println(result.toString()); } catch (Exception e) { e.printStackTrace(); } }
L'erreur suivante m'est retournée :
Après avoir cherché sur Internet (forum, documentation microsoft), il semble que cette erreur soit due à une erreur d'authentification NTLM (authentification propriétaire de Microsoft). J'ai donc cherché à paramétrer les credentials en java pour réaliser une authentification NTLM mais sans succès.AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (401)Unauthorized
faultActor:
faultNode:
faultDetail:
{}:return code: 401
{http://xml.apache.org/axis/}HttpErrorCode:401
(401)Unauthorized
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.microsoft.schemas.office.project.server.webservices.Resource.ResourceSoapStub.readResources(ResourceSoapStub.java:1034)
at projectServerDAO.PrestataireProjServDAO.main(PrestataireProjServDAO.java:31)
Je ne sais donc plus du tout comment m'y prendre pour accéder à ce web service et récupérer les informations que mon application devra traiter par la suite. Je ne suis même pas certain d'avoir le bon raisonnement et de m'y prendre correctement pour réaliser un client des web service de Project Server. Je suis un peu perdu !
Toute aide est donc la bienvenue, merci d'avance à tous ceux qui prendront le temps de l'aider.
Cordialement,
Florent
Partager