IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Problème service web amazon ItemSearch java


Sujet :

Services Web Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème service web amazon ItemSearch java
    Bonjour,

    En fait j'ai un petit problème, je voudrais utiliser le service web d'amazon: ItemSearch avec un accessKey, une signature et un timestamp() en paramètre, pour une recherche avec indexSearch = Books; le problème, c'est que j'y arrive pas.

    Je ne sais pas comment rajouter la signature et le timeStamp dans l'appel de itemSearch.

    Est ce que quelqu'un pourrait m'aider avec un exemple de itemSearch prenant en compte la signature Hmac256. ? svp.

    En fait mon code est comme ceci pour appeler itemSearch, par contre j'ai en execution un http Bad requestion 400,

    MA démarche: j'ai récupéré le WSDL de AWSECommerceService.wsdl version 11-2009.

    J'ai importé webService depuis WSDL pour généré les classes java.

    Ensuite j'ai impémenté le code java pour appelé itemSearch comme suit:


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    import com.amazon.webservices.awsecommerceservice._2009_11_01.AWSECommerceService;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.AWSECommerceServicePortType;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.Item;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.ItemSearch;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.ItemSearchRequest;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.Items;
    import com.amazon.webservices.awsecommerceservice._2009_11_01.OperationRequest;
    import java.util.List;
    import javax.xml.ws.Holder;
    import java.math.BigInteger;
     
    public class ItemSearchTester{
     
        public static void main(String[] args)
     
        {
     
            ItemSearchTester ist = new ItemSearchTester();
     
            ist.runSearch();
     
        }
     
        public void runSearch()
     
        {
     
            String awsAccessKeyID = "AKIAJ4NRPN32C5ZDEDNQ";
     
            // Set the service:
     
            AWSECommerceService service = new AWSECommerceService();
     
            //Set the service port:
     
            AWSECommerceServicePortType port = service.getAWSECommerceServicePort();
     
            //A new ItemSearch
     
            ItemSearch itemSearch =  new ItemSearch();
     
            itemSearch.setAWSAccessKeyId("AKIAJ4NRPN32C5ZDEDNQ");
     
            //A new ItemSearchRequest which is part of the ItemSearch
     
            ItemSearchRequest searchRequest = new ItemSearchRequest();
     
            java.util.List<ItemSearchRequest> list = itemSearch.getRequest();
     
            list.add(searchRequest);
     
            /*Set up the values of the ItemSearchRequest */
     
            searchRequest.setSearchIndex("Books");
     
            searchRequest.setAuthor("");
     
            searchRequest.setKeywords("Harry+Potter");
     
           // SearchRequest.s//.setVersion("2009-11-01");
     
            itemSearch.getRequest().add(searchRequest);
     
            java.util.List<String> responseGroup = searchRequest.getResponseGroup() ;
     
            responseGroup.add("Images");
     
            responseGroup.add("ItemAttributes");
     
            responseGroup.add("Large");
     
     
            Holder<OperationRequest> operationrequest = new Holder<OperationRequest>();
     
            Holder<java.util.List<Items>> items = new Holder<java.util.List<Items>> ();
          port.itemSearch("",awsAccessKeyID,awsAccessKeyID,"","","",searchRequest,itemSearch.getRequest(),operationrequest,items);
     
                //search.getRequest()
     
            java.util.List<Items> result = items.value;
     
            BigInteger totalPages = result.get(0).getTotalResults() ;
     
            System.out.println(totalPages);
     
            for (int i = 0; i < result.get(0).getItem().size(); ++i)
     
            {
     
                Item myItem = result.get(0).getItem().get(i) ;
     
                System.out.print(myItem.getASIN()) ;
     
                System.out.print( ", " ) ;
     
                System.out.println (myItem.getDetailPageURL());
     
                System.out.print( ", " ) ;
     
                System.out.println (myItem.getSmallImage() == null ? "" : myItem.getSmallImage().getURL());
     
            }
     
         }
     
    }
    Je compte sur votre aide, Merci.

    Il me faut rajouter le paramètre signature et timeStamp et que ca marche.

    Cordialement.


    koko1986

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 19
    Points : 19
    Points
    19
    Par défaut J'ai le même probleme
    J'ai exactement le même souci avec la méthode itemSearch du webservice amazon.

    J'ai générer toute mes classes avec l'outil wsimport du JDK en utilisant le fichier wsdl d'amazon associates webswervice (01/08/2011)

    ci-dessous mon code :

    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
    29
    30
    31
    32
    33
    34
    try
    		{
    			AWSECommerceService service = new AWSECommerceService();
    			AWSECommerceServicePortType port = service.getAWSECommerceServicePortFR();
    			
    			ItemSearchRequest request = new ItemSearchRequest();
    			request.setSearchIndex("Books");
    			request.setKeywords("X-Men");
    			
    			Holder<OperationRequest> operation_request = null;
    			Holder<List<Items>> items = new Holder<List<Items>>();
    			
    			List<Items> response = new ArrayList<Items>();
    			
    			items.value = response;
    			
    			port.itemSearch(null, "X", null, null, null, request,null,operation_request, items);
    				
    			for(Items i : items.value)
    			{
    				System.out.println("Nombre de resultats : " + i.getTotalResults().intValue());
    				System.out.println("Nombre de pages : " + i.getTotalPages().intValue());
    				
    				for(Item it : i.getItem()){
    					
    					System.out.println(it.getItemAttributes().getTitle());
    				}
    			}
    		}
    		catch(Exception e)
    		{
    			throw e;
    		}
    Ou X est mon AWSAccessKeyId

    La méthode itemSearch lève l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ATTENTION [org.apache.cxf.phase.PhaseInterceptorChain] (http-localhost-127.0.0.1-8080-3) Interceptor for {http://webservices.amazon.com/AWSECommerceService/2011-08-01}AWSECommerceService#{http://webservices.amazon.com/AWSECommerceService/2011-08-01}ItemSearch has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Could not send Message.
     
    ...
     
     
    Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '400: Bad Request' when communicating with https://webservices.amazon.com/onca/soap?Service=AWSECommerceService
     
    ...
     
    ATTENTION [com.projet.library.business.C_Service] (http-localhost-127.0.0.1-8080-3) Could not send Message.
    Je pense qu'il s'agit soit d'une erreur au niveau de la construction de la requête soit une erreur au niveau du transport http.(Qu'est que org.apache.cxf ?)

    Merci

Discussions similaires

  1. problème service web csharp et client php
    Par matinz dans le forum Services Web
    Réponses: 1
    Dernier message: 12/08/2010, 15h10
  2. Appeler un service web perl depuis java
    Par Mac2411 dans le forum Web
    Réponses: 1
    Dernier message: 13/05/2010, 18h54
  3. Implémenter un service web RESTful en Java
    Par Arnaud_03 dans le forum REST
    Réponses: 4
    Dernier message: 21/04/2009, 18h06
  4. services web amazon, ebay
    Par mehdiing dans le forum Débuter
    Réponses: 1
    Dernier message: 21/06/2008, 19h21
  5. Connexion a un service web .NET en JAVA
    Par skunkies dans le forum Services Web
    Réponses: 1
    Dernier message: 01/03/2007, 00h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo