2014-06-05 3 views
0

Dans ma Controller classe java j'ai les lignes suivantes:J-Meter Non Accès Bean

CartBean cart = (CartBean) request.getSession().getAttribute("cart"); 
int selection = Integer.parseInt(request.getParameter("choice")); 
ArrayList<RoomDTO> booking = cart.getSearch().getResults().get(selection); 

Lorsque j'utilise JMeter et exécuter une requête, je reçois un NullPointerException à la 3ème ligne.

La jsp page qui appelle le Controller contient simplement des chambres qui peuvent être sélectionnés et donc ma requête HTTP est juste (de JMeter):

POST data: 
action=Checkout&choice=6 

Dans JMeter, j'ai ajouté un HTTP Cookie Manager et quand je lance les demandes , un cookie est enregistré:

Cookie Data: 
JSESSIONID=7886784BB8E29BB9AA16564E53623166 

quelqu'un aurait une idée de ce que le problème pourrait être? Si je cours le programme dans Eclipse, il n'y a aucun problème ...

Merci pour votre aide.

Répondre

0

Dans ce code

cart.getSearch().getResults().get(selection); 

NPE pourrait être causée par

  1. panier étant nul
  2. cart.getSearch() retour null
  3. cart.getSearch(). GetResults () renvoyant le zéro

befo re en supposant que l'appel de ce code de jmeter est à l'origine du problème de déterminer lequel est l'origine du problème

+0

Merci d'avoir signalé cela. Il s'avère que c'était un problème lié à cela. –

0

J'ai quelques commentaires sur votre problème,

request.getParameter("choice") va obtenir la valeur de la forme soumise avec le type d'entrée choix du nom . Par conséquent, request.getParameter() récupérera une valeur que le client a soumise via les méthodes POST ou GET.

Maintenant pour request.getAttribute(), tout est fait côté serveur. vous ajoutez l'attribut à la demande et vous soumettez la demande à une autre ressource, le client ne sait pas à ce sujet. Donc, tout le code traitant ceci serait typiquement dans des servlets.

Vous ne pouvez pas définir Cart Bean valeurs à l'aide request.setattribute() avec Jmeter, comme vous l'avez fait à l'aide des pages JSP dans votre webapp. Jmeter peut envoyer des méthodes POST/GET avec différents types de contenu et d'en-tête.

Erreur dans le 3e ligne:CartBean cart = (CartBean) request.getSession().getAttribute("cart"); effectuer une vérification nulle avant de procéder à la fois panier objet et request.getParameter("choice")

if(cart==null){//do action} 
if(request.getParameter("choice")==null){//do action} 

Un point de plus, je pense, il est préférable utiliser le test de script Recorder pour créer Plan de test, puis Corréler les variables.Gud chance .. :)

Questions connexes