得到 404 错误,不知道为什么
Get 404 error and don't know why
您好 我尝试为数据编写一些流式 webApplication,所以我使用了一个教程并开始构建我的 WebApplication、我的客户端、我的 JS 和我的 HTML 文档。
现在我的 HTML 文档有 2 个输入框,1 个用于名称,1 个用于值,如果我填写两个示例(名称:DAGO,value:2.2),然后我单击我的 GET 按钮,它保存了这个数据到目前有效的 HashMap
。
当我尝试使用 GET 按钮读取 DAGO 的值时,它告诉我 404 not found ...但是 get 函数在我的 WebApp 中,我不知道为什么会出现此错误。
希望我把我的问题描述得足够好,如果没有,请发表评论,我现在将添加您需要的源代码。
Java脚本代码
$(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>
private MarketPriceStore marketPriceStore = new MarketPriceStore();
当object存在时,marketPriceStore
是object的一个变量,但是当store函数调用结束时,object消失,所以marketPriceStore
消失。
您可以更改
private MarketPriceStore marketPriceStore = new MarketPriceStore();
到
private static MarketPriceStore marketPriceStore = new MarketPriceStore();
您好 我尝试为数据编写一些流式 webApplication,所以我使用了一个教程并开始构建我的 WebApplication、我的客户端、我的 JS 和我的 HTML 文档。
现在我的 HTML 文档有 2 个输入框,1 个用于名称,1 个用于值,如果我填写两个示例(名称:DAGO,value:2.2),然后我单击我的 GET 按钮,它保存了这个数据到目前有效的 HashMap
。
当我尝试使用 GET 按钮读取 DAGO 的值时,它告诉我 404 not found ...但是 get 函数在我的 WebApp 中,我不知道为什么会出现此错误。
希望我把我的问题描述得足够好,如果没有,请发表评论,我现在将添加您需要的源代码。
Java脚本代码
$(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>
private MarketPriceStore marketPriceStore = new MarketPriceStore();
当object存在时,marketPriceStore
是object的一个变量,但是当store函数调用结束时,object消失,所以marketPriceStore
消失。
您可以更改
private MarketPriceStore marketPriceStore = new MarketPriceStore();
到
private static MarketPriceStore marketPriceStore = new MarketPriceStore();