2013-11-16 6 views
1

Я начинаю проект веб-сайта, который требует связи с базами данных внешнего оракула. Базы данных оракула управляются системой, написанной в java. Мне было интересно, можно ли использовать эти классы java на веб-сайте, используя php.Вызов внешнего класса java от php

В качестве примера я пытаюсь достичь чего-то вроде: shell_exec («путь/java GetSomething»), но с «path/java», хранящимся на удаленном сервере.

Я предлагаю это правильно? это вызовет проблемы безопасности?

ответ

0

Один из способов сделать это - сделать веб-сервис JSP, потребляемый php. Это очень простой старт, но идея в том, что у вас есть jsp, который живет на java-сервере, и его можно вызвать через Интернет. Он принимает параметры, затем обращается к базе данных с этими параметрами и возвращает ее. PHP делает вызов этой услуги и считывает возвращаемые данные.

DatabaseService.jsp

String query = Request.getParameter('query'); 
ResultSet rs = MyDbClass.executeQuery(query); 


ResultSetMetaData rsmd = rs.getMetaData(); 
int colCount   = rsmd.getColumnCount(); 

while (rs.next()) 
{ 
    for (int i = 1; i <= colCount; i++) 
    { 
     String columnName = rsmd.getColumnName(i); 
     Object value  = rs.getObject(i); 
     out.println(columnName+":"+value.toString()+'\t'); 
    } 
    out.println("\r\n"); 
} 

oracleConnect.php

$query=urlencode("SELECT * FROM DB.table"); 
$results=file_get_contents("http://remoteServer.com/DatabaseService.jsp?query=$query"); 

Это сильно упрощена, вы должны выводить данные каким-то образом расходного РНР как XML, а также как отправка других параметров, ключ api, используя CURL вместо file_get_contents, любое количество вещей, но эта базовая модель должна помочь вам начать в правильном направлении.

0

Я предлагаю это правильно?

Нет. Это не сработает. Вы не можете просто «запустить команду оболочки на другом сервере». Разумеется, вы не сможете этого сделать, если не настроили кучу инфраструктуры для поддержки этого.

приведет ли это к проблемам безопасности?

Это было бы проблемой, о которой вам нужно будет обратиться.


Реальная проблема здесь состоит в том, что ваше «описание проблемы» слишком расплывчато, чтобы понять, действительно ли делает то, что вы пытаетесь сделать какой-то смысл ... от технических, архитектурных и практических точек зрения.

Смежные вопросы