Я пытаюсь настроить PHP Java Bridge, и я могу вызвать Java-метод из PHP, но я не могу получить объект запроса (HttpServletRequest) в своем классе java. Как я могу это получить?Как получить объект HttpServletRequest в PHP Java Bridge?
Мой 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>";
?>
Источник Класс Java, как показано ниже: -
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
Может быть, это очень плохие вопросы, чтобы спросить здесь, но каждый раз я получаю объект нулевого запроса. Если я запустил приложение в качестве веб-приложения, я получаю объект запроса, но когда запрос инициируется PHP с использованием PHP Java-моста, это время равно 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) Я попробовал это. –