我有兩個不同的java項目,我需要它們互相交互。第一個名爲RESTfulWebServer的是一個動態Web項目,它包含名爲UserServices的Java類中的基本HTTP GET PUT POST請求。它只是在控制檯(netbeans中的輸出窗口)上打印一行語句,所以沒什麼複雜的。Javascript功能無法發出HTTP請求
另一個名爲ClientProject的項目也是一個動態Web項目,它包含一個簡單的包含JavaScript代碼的jsp頁面。它應該調用RESTfulWebServer項目並在控制檯(netbeans中的輸出窗口)上輸出輸出行,這與RESTfulWebServer項目在執行簡單的GET請求時執行的方式相同。
這是問題出現的部分。當我運行ClientProject時,正在調用javascript函數(正如我通過打印警報消息所檢查的那樣),但它並沒有按照它的要求向RESTfulWebServer發出DELETE HTTP請求。
這兩個代碼如下附:
RESTfulWebServer(UserServices.java)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Update User</title>
<script>
function loadResponse()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState === 4 && xmlhttp.status === 200)
{
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("DELETE","http://localhost:8080/app/user/service",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv">The response text would come here</div>
<button type ="button" onclick="loadResponse()">submit</button>
</body>
</html>
的clientfile應該
package com.service.user;
import javax.ws.rs.*;
@Path("/user/service")
public class UserServices {
@GET
public void getUser()
{
System.out.println("Inside get user method");
}
@POST
public void updateUser()
{
System.out.println("Inside update user method");
}
@DELETE
public void deleteUser()
{
System.out.println("Inside DELETE user method");
}
}
ClientProject(clientfile.jsp)在控制檯上打印「內部DELETE用戶方法」,但沒有在c上顯示「建立成功」消息後的鞋墊
我在做什麼錯?此外,我正在使用TomCat服務器,並在NetBeans中執行此操作,並且因爲某些原因(如果在我的代碼中存在任何錯誤或任何其他錯誤,請不要轉移到任何其他IDE並檢查它),我必須完全在此IDE上工作其他請參閱提及嗎?
你是否在不同的端口上運行兩個單獨的Tomcat實例? –
我不這麼認爲,但我不確定。你能告訴我如何檢查是否是這種情況? – DD25
客戶端或服務器端的問題在哪裏?對我來說,客戶端看起來很好,只需檢查您的服務器是否可以在8080端口上進行偵聽,還可以檢查http/https配置 – Viney