Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Java server & PHP interpreter


Автор: icepro 12.10.2010, 22:54
Люди помогите подружить сабж.
Суть в том что пишу сервер на яве (сокеты) и хотелось бы прикрутить возможность выполнения скриптов.
CGI или иначе как, и если да то как?
Заранее спасибо.

Автор: Vasay 12.10.2010, 23:18
icepro, 

У Java есть поддержка скриптовых языков ( java scripting api )

http://download.oracle.com/javase/6/docs/technotes/guides/scripting/index.html

Если не ошибаюсь, изначально все делалось под JavaScript

На мой взгляд, наиболее удобен Groovy, хотя бы ввиду синтаксической совместимости с Java.

Есть реализации Ruby, Python, .... 


Есть реализация интерпритатора PHP на Java http://www.caucho.com/resin-3.0/quercus/  но не знаю,  сделано ли это в рамках java scripting api 

Автор: icepro 13.10.2010, 16:57
а есть ли более нативный способ, ну например если будет другой интерпретатор (самописный) то как настроить такое взаимодействие, что бы послать приложению в поток запросто и потом оттуда забрать ответ. 
и расскажите пожалуйста ктонибудь про CGI в Java. 
спасибо.

Автор: Vasay 13.10.2010, 19:32
icepro, 

Цитата(icepro @  13.10.2010,  16:57 Найти цитируемый пост)
а есть ли более нативный способ

http://download.oracle.com/javase/6/docs/api/java/lang/Runtime.html#exec(java.lang.String)


Цитата(icepro @  13.10.2010,  16:57 Найти цитируемый пост)
и расскажите пожалуйста ктонибудь про CGI в Java. 


А что Вы хотите от CGI?

Автор: icepro 13.10.2010, 19:36
ну в идеале  smile где показано как ява программа отправляет на РНР интерпретатор скрипт и выводит результат работы скрипта. спасибо.

Автор: dobrolub 13.10.2010, 19:56
http://quercus.caucho.com/

php  интерпретатор на java

Автор: Vasay 13.10.2010, 20:05
Цитата(icepro @  13.10.2010,  19:36 Найти цитируемый пост)
у в идеале   где показано как ява программа отправляет на РНР интерпретатор скрипт и выводит результат работы скрипта. спасибо.



Код

      String command = "php ./some.php";
      Process child = Runtime.getRuntime().exec(command);


       InputStream is = child.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);
       String line;

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }




CGI Вам, похоже, совершенно не нужен.

Автор: icepro 13.10.2010, 23:22
спасибо! код действительно прояснил ситуацию.

Цитата(Vasay @  13.10.2010,  20:05 Найти цитируемый пост)
CGI Вам, похоже, совершенно не нужен. 

ну если есть пример как он может мне помочь то я бы не против выслушать.

спасибо.

Автор: Vasay 14.10.2010, 11:35
Цитата

ну если есть пример как он может мне помочь то я бы не против выслушать.


Вы пишете web-сервер?

Автор: icepro 14.10.2010, 14:10
да

Автор: Vasay 14.10.2010, 14:14
Цитата(icepro @  14.10.2010,  14:10 Найти цитируемый пост)
да



Тогда почитайте : http://www.codenet.ru/webmast/wincgi.php

Это не относится к Java, но там рассказывается, о том как работает web сервер с внешними приложениям.

Автор: icepro 14.10.2010, 21:44
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)