PHP Java Bridge를 설정하려고하는데 PHP에서 Java Method를 호출 할 수 있지만 Java 클래스에서 요청 객체 (HttpServletRequest)를 가져올 수 없습니다. 어떻게해야합니까?PHP Java Bridge에서 HttpServletRequest 객체를 얻는 방법은 무엇입니까?
내 PHP 소스는 다음과 같습니다.
<?php require_once("http://localhost:8080/PJBridge/java/Java.inc");
echo "PHP JAVA Bridge -- Calculator Test Application <br>"
$Calc= new java("test.math.Calc");
$val1 = 20;
$val2 = 10;
echo "<br> Addition of $val1 and $val2 is";
echo $Calc->add($val1,$val2);
$hello = new java("test.Hello");
echo "<br>";
echo $hello->sayHello("PHP from Java");
echo "<br>";
?>
자바 클래스의 소스는 다음과 같다 : -
public class Hello implements ServletRequestAware{
HttpServletRequest request;
public Hello(){
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String sayHello(String name){
return "Hello " + name ;
}
}
내가 예상 된 결과를 얻고있다하지만 난 그것을 얻을 수 없습니다하지만 요청 개체에 액세스해야하므로 클라이언트 IP가 필요합니다.
Eh? 'HttpServletRequest'는 서블릿에 직접 제공됩니다. – EJP
여기에 물어 보는 것은 매우 가난한 질문 일 수도 있지만 매번 null 요청 개체가 표시됩니다. 웹 응용 프로그램으로 응용 프로그램을 실행하면 요청 객체가 표시되지만 요청이 PHP Java Bridge를 사용하여 PHP에 의해 시작되면 null입니다. – dpilwal
클라이언트와 서버의 코드 소스를 보면 client_ip이 어디에 등록되어 있고 서블릿에서 사용할 수 있는지 알 수 없습니다. (클라이언트 IP로, 나는 사용할 수있는 것을 의미한다 : $ _SERVER [ 'REMOTE_ADDR']) 메소드 sayHello (client_ip)에 값을 보내거나 java_session()을 사용한다고 가정한다. 궁금한 점이 있으면 [시도] (https://github.com/belgattitude/soluble-japha/blob/master/test/src/SolubleTest/Japha/Bridge/Driver/DriverContextTest.php#L105)를 살펴보십시오. 나는 그것을 시도했다. –