2013-01-17 2 views
0

Salut Tout je travaille sur spring3.0 webservice reposant.je suis capable d'invoquer ma méthode lorsque j'appelle la méthode du même serveur (ie mon serveur weblogic) .mais si je veux consume \ frappe la même méthode à partir d'un autre serveur (ie mon serveur jboss) alors il ne frappe pas ma méthode de repos qui est sur le serveur weblogic.appeler le service reposant de serveur différent

dans le code ci-dessous si ce code j'écris dans la page jsp weblogic et l'appelant est returnig me la valeur correcte et je peux afficher le même sur ma page web.but si je copie le même code à jsp dans le serveur JBOSS (mon projet différent d'accéder à mon service de repos) alors il ne frappe pas ma méthode. ---------------------------------------

$.ajax({ 
    url: "http://test.abc.org:7001/SpringRestService/restful/products/ALL/ALL/ALL/ALL.json", 
    type: "GET", 
    processdata: true, 
    dataType: "json", 
    contentType: "application/json;", 
    beforeSend: function() { }, 
    headers : 
    { 
     "Content-Type" : "application/json", 
     "Accept" : "application/json", 
     "Access-Control-Allow-Origin":"http://its-ims002.neahq.nearoot.org:7001/" 
    }, 
    success: function (data) 
    {    
      bindEvent.loadGridData(data); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    { 
     try 
     { 
      alert(JSON.stringify(XMLHttpRequest) + "\n" + textStatus + "\n" + errorThrown); 
     } 
     catch (ex) { alert("Exception occured.. "); } 
     finally { } 
    } 
}); 

ci-dessous est mon code Java que j'ai gardé dans mon serveur weblogic et cela je dois frapper à partir du serveur jboss en utilisant mon appel ajax.

--------------------------------- 



@Controller 
public class HelloWorldController1 { 

@RequestMapping(value = "/products/{userName}/{year}/{status}/{stateId}", method = RequestMethod.GET,consumes="application/text") 
    public ModelAndView getTextFromURL(@PathVariable("userName") String userName, @PathVariable("year") String year, 
      @PathVariable("status") String status, @PathVariable("stateId") String stateId) { 
     List<Abc> list= new ArrayList<Abc>(); 

     list= service.products(userName, year, status, stateId); 

     ProductList productList = new ProductList (list); 

     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("index1"); 
     mav.addObject("list", productList); 

     return mav; 

    } 

} 

Répondre

0

Même si vous avez 'Access-Control-Allow-Origin' spécifié pour l'autre (jboss) serveur, le navigateur pourrait ne pas permettre à ce que cela ne respecte pas la 'règle d'origine'

Si votre le service renvoie json, vous pouvez facilement faire cela en utilisant des utilitaires de script tels que "dojo.io.script" car json ou javascript n'est pas affecté par "la même politique d'origine".

Si ce n'est pas json, il n'y aura peut-être pas d'autre option que "dojo.io.iframe" si cela vous convient. J'espère que cela aide ...

EDIT: Je vois que votre service renvoie JSON, avez-vous essayé d'utiliser dojo.io.script? ou tout autre utilitaire similaire que votre framework JS a.

Questions connexes