PC1에서 실행되는 클라이언트 프로젝트 (JSP 페이지가있는 동적 웹 프로젝트)와 서버 프로젝트 (HTTP 메서드가있는 Java 클래스가있는 동적 웹 프로젝트)가 PC2에서 실행됩니다.localhost 대신 IP 주소로 웹 응용 프로그램을 호스팅하는 방법
PC1에있는 클라이언트 프로젝트를 호출하여 서버의 GET
또는 DELETE
메서드를 호출 할 수 있기를 원합니다.
나는 클라이언트 프로젝트에서 PC2의 IP 주소을 사용해야한다는 것을 알고 있으며, 나는 또한 시도했다. 그러나 제대로 작동하지는 않는다.
클라이언트 프로젝트 (client.jsp)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>GET 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://PC2_IP_ADDRESS:8080/ServerProject/app/user/service/deleteUser',true);
//I've written actual PC2 IP address instead of PC2_IP_ADDRESS in my code
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv">The response text would come here</div>
<button type ="button" onclick="loadResponse()">submit</button>
</body>
</html>
서버 프로젝트 (UserServices.java)
package com.service.user;
import javax.ws.rs.*;
@Path("/user/service")
public class UserServices {
@GET
@Path("/getUser")
public void getUser()
{
System.out.println("Inside GET user method");
}
@Path("/deleteUser")
@DELETE
public void deleteUser()
{
System.out.println("Inside DELETE user method");
}
}
:
내가 먼저 아래의 코드를 모두 연결하자 내가 client.jsp
을 실행하면 콘솔 (PC2)에서 일부 활동을 볼 수 있지만 그저 내가 잘못 뭐하는 거지
내부 사용자 방법
삭제 인쇄하지 않는 이유는 무엇입니까?
콘솔 활동은 당신 때문에 cross-site scripting라는 보안 문제의 더 많은 구성없이 사이트 A에서 사이트 B로 Ajax 호출을 할 수 없습니다
Sep 15, 2016 4:53:04 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
com.service.user
Sep 15, 2016 4:53:05 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class com.service.user.UserServices
Sep 15, 2016 4:53:05 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Sep 15, 2016 4:53:05 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM'
Sep 15, 2016 4:53:05 PM com.sun.jersey.spi.inject.Errors processErrorMessages
WARNING: The following warnings have been detected with resource and/or provider classes:
WARNING: A HTTP GET method, public void com.service.user.UserServices.getUser(), MUST return a non-void type.
두 PC의 동일한 네트워크에 있어야합니다. 당신이 말하는 IP를 어떻게 얻었습니까? –
말하기 ** 콘솔 (PC2)에서 일부 활동을 볼 수 있습니다 ** 충분하지 않습니다. 네가 본 정확한 활동은 무엇인가? JSP 또는 REST 측에서 오류가 발생 했습니까? –
PC1의 탐색기에서 http : // PC2_IP_ADDRESS : 8080/ServerProject/app/user/service/getUser에 액세스하려고 시도 했습니까? –