2013-08-25 5 views
0

Im новое для Java и опробование некоторого финансового анализа java-файла, который я использую для своих исследований. Я получил его, чтобы работать, когда я создал основной метод внутри самого компонента. Однако, когда я пытаюсь передать значения, необходимые в форме jsp, и используя метод doPost для сервлета для выполнения вычислений путем создания экземпляров методов из компонента, ничего не происходит, я получаю исключение NullPointerException. Я предполагаю, что BlackScholes.java работает как bean-файл, и что проблема находится в представленном коде. Помощь здесь будет очень признательна.Использование метода Servlet doPost

protected void doPost(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException,IOException { 

    String action = request.getParameter("action"); 

    if (action != null) { 
     try { 
      String spotPrice = request.getParameter("sprice"); 
      String strikePrice = request.getParameter("strike"); 
      String interestRate = request.getParameter("rate"); 
      String timeTo = request.getParameter("time"); 
      String vol = request.getParameter("volatility"); 

      double sprice = Double.parseDouble(spotPrice); 
      double strike = Double.parseDouble(strikePrice); 
      double rate = Double.parseDouble(interestRate); 
      double time = Double.parseDouble(timeTo); 
      double volatility = Double.parseDouble(vol); 
      double carryrate = rate; 

      request.setAttribute("sprice", sprice); 
      request.setAttribute("strike", strike); 
      request.setAttribute("rate", rate); 
      request.setAttribute("time", time); 
      request.setAttribute("volatility", volatility); 

      BlackScholes BS = new BlackScholes(carryrate); 
      BS.bscholEprice(sprice, strike, volatility, time, rate); 
      double currentpriceC = BS.getCalle(); 
      request.setAttribute("validation1", currentpriceC); 
     } catch (NullPointerException e) { 
      return; 
     } 
    } else { 
     request.getRequestDispatcher("/index.jsp").forward(request, 
       response); 
    } 
    } 
} 

Файл JSP используется для создающих данные формы:

<form action="${pageContext.request.contextPath}/OptionsController" 
    method="post"> 
    <input type="hidden" name="action" value="docalculate" /> 

    Spot Price: <input type="text" name="sprice" /> <br /> 
    <p /> 
    Strike Price: <input type="text" name="strike" /> <br /> 
    <p /> 
    Risk Free Rate: <input type="text" name="rate" /> <br /> 
    <p /> 
    Months To Expire: <input type="text" name="time" /> <br /> 
    <p /> 
    Volatility: <input type="text" name="volatility" /> <br /> 
    <p /> 

    <input type="submit" value="Submit" /><br /> 
    <p /> 
    One call options costs: <input type="text" name="validation1" 
     readonly="readonly" 
     value="<%if (request.getAttribute("validation1") != null) { 
      out.print(request.getAttribute("validation1")); 
     }%>"> 
</form> 
+3

использование 'e.printStackTrace()' в блоке поймать и поместить детали исключения здесь .. – Prabhaker

+0

Как говорит @Prabhaker, показывают нам сведения об исключении .. – user2520969

+0

ловя NullPointerException и возвращение в блоке поймать, как будто ничего не произошло, вам «стреляйте в ногу: вы скрываете ошибку и не можете узнать, где это происходит. Не скрывайте ошибок. Исправьте их. И первое, что нужно сделать, чтобы исправить это, - это удалить этот блок catch, позволить исключение произойти и прочитать трассировку стека исключений. –

ответ

0

Потенциально один из ваших параметров действий, которые вы читаете с помощью getParameters не заполняется. Это может привести к исключению Null Pointer в последующих вызовах, где вы разбираете.