2015-08-03 2 views
1

Приветствую, я пытаюсь написать некоторое потоковое webApplication для данных, поэтому я использовал учебник и начал строить мой WebApplication, мой клиент, мой JS и мой HTML-документ. Теперь в моем документе HTML есть 2 поля ввода 1 для имени и 1 для значения, если я заполню оба примера (имя: DAGO, значение: 2.2), а затем я нажимаю на кнопку GET, чтобы сохранить эти данные в HashMap, который работает так далеко.Ошибка 404 и не знаю почему

Когда я пытаюсь прочитать значение DAGO с помощью моей кнопки GET, он говорит мне, что 404 не найден ... но функция get находится в моем WebApp, и я не знаю, почему я получаю эту ошибку.

Надеюсь, я описал свою проблему достаточно хорошо, если не прокомментировать, и я добавлю, что вам нужно, чтобы исходный код теперь следует.

JavaScript код

$(document).ready(function(){ 
$("#get").click(function(){ 
    var companyName = $("#companyname").val(); 

    $.ajax({ 
     url: "http://localhost:8080/TimeStreamingTestartID-1.0-SNAPSHOT/app/simplestockmarket/" + companyName, 
     type: "GET", 
     success: function(value){ 
      $("#marketprice").val(value); 
     } 
    }); 
}); 


$("#set").click(function(){ 
    var companyName = $("#companyname").val(); 
    var marketPrice = $("#marketprice").val(); 

    $.ajax({ 
     url: "http://localhost:8080/TimeStreamingTestartID-1.0-SNAPSHOT/app/simplestockmarket/" + companyName, 
      type: "PUT", 
      contentType: "text/plain", 
      data: marketPrice, 
      success: function(value){ 
      alert("SUCESS: SET!"); 
      } 
    }) 
    }); 
}); 

Java код (набор и получить функцию)

@Path("/simplestockmarket") 
@Consumes(MediaType.TEXT_PLAIN) 
@Produces(MediaType.TEXT_PLAIN) 

public class SimpleStockMarketResource { 

    private MarketPriceStore marketPriceStore = new MarketPriceStore(); 

    @PUT 
    @Path("/{companyname}") 
    public void store(@PathParam("companyname") String companyName, Double marketPrice){ 
     companyName = companyName.toUpperCase(); 
    marketPriceStore.store(companyName,marketPrice); 
} 

@GET 
@Path("/{companyname}") 
public Response retrieve(@PathParam("companyname") String companyName){ 
    companyName = companyName.toUpperCase(); 
    Response.ResponseBuilder responseBuilder =Response.status(Response.Status.NOT_FOUND); 
    marketPriceStore.retrieve(companyName).ifPresent(
     marketPrice -> responseBuilder.status(Response.Status.OK).entity(marketPrice) 
    ); 
    return responseBuilder.build(); 
} 
} 

HTML код

<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
Firmen Name:<br> 
<input type="text" name="firmenname" id="companyname"><br> 
Aktien Wert:<br> 
<input type="text" name="aktienwert" id="marketprice"><br> 

<button type= "btn btn-primary" id= "get">get</button> 
<button type= "btn btn-primary" id= "set">set</button> 


<script src="jquery-1.11.2.min.js"></script> 
<script src="bootstrap.min.js"></script> 
<script src="script.js"></script> 


</body> 
</html> 

ответ

2
private MarketPriceStore marketPriceStore = new MarketPriceStore(); 

marketPriceStore является переменной объекта, когда объект существует , но объект t исчезают при завершении вызова функции магазина, поэтому marketPriceStore исчезает.

Вы можете изменить

private MarketPriceStore marketPriceStore = new MarketPriceStore(); 

в

private static MarketPriceStore marketPriceStore = new MarketPriceStore(); 
+0

Оо спасибо !! работает – alovaros

Смежные вопросы