2017-11-22 2 views
0

Ich arbeite an einer App in Java und eckig geschrieben. Die Anfrage geht von eckig mit params und ich muss die params in den Restdiensten lesen. Das Winkelstück ist fixiert (ich kann es nicht ändern), aber ich kann den Java-Code nach Bedarf aktualisieren.Restservices call mit params

Mein Problem: Ich kann die Parameter in meiner Java-Service-Methode nicht lesen. Der Wert ist immer null.

Winkelcode:

alert("params : "+JSON.stringify(params, null, 2)); 

return $http.get(url, { 
    params: params 
}).success(function (data) { 
     // success criteria 
    }); 

Die params sieht wie folgt basierend auf der Lauer Aussage:

{ 
    "start": 0, 
    "end": 100, 
    "type": "asdf", 
    "name": null, 
    "values": [], 
    "locs": [], 
    "test1": "Val" 
} 

Mein Java-Code wie folgt aussieht:

@GET 
@Path("valuesList") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.TEXT_XML) 

public String getValues(@RequestParam("type")String type) throws Exception { 

    System.out.println("type ================"+type); 

} 

Der Typ ist null . Ich möchte alle Werte lesen, aber im Moment verwende ich nur den Typ zum Testen. Ich habe auch verschiedene @Consumes Werte ausprobiert, aber nichts hilft.

Ich denke, ich muss @RequestParam ändern, aber nicht sicher, was aber. Danke für irgendwelche Hinweise.

+0

Können Sie überprüfen, ob der angulare Aufruf tatsächlich alle Parameter als Anforderungsparameter über die Netzwerkregisterkarte Ihres Browsers oder ähnliches hinzufügt? Auf den ersten Blick sieht es so aus, als sei dies nur eine Diskrepanz zwischen dem, was der Client gesendet hat, und dem, was der Server erwartet hat. –

+0

Danke Nick. Ich konnte das lösen, ich musste das RequestParam auf QueryParam aktualisieren. Ich habe einige andere außer QueryParam getestet. Jetzt funktioniert es. – user115391

Antwort

0

Ich wollte nur die Lösung buchen - ich musste @RequestParam @QueryParam aktualisieren. Der aktualisierte Methodenaufruf liegt unter

public String getValues(@QueryParam("type")String type) throws Exception { 

    System.out.println("type ================"+type); 

} 
+0

Es funktionierte, weil "@ RequestParam" Spring Annotation ist und Sie JAX-RS verwenden, also müssen Sie es mit '@ QueryParam' annotieren. –

+0

Danke Amit. Wie finde ich heraus, wie es benutzt wird (was bedeutet JAX-RS in diesem Szenario)? Vielen Dank. – user115391

+0

'@QueryParam' ist keine Frühlingsannotation –

Verwandte Themen