从php调用外部java类

时间:2013-11-16 01:47:18

标签: java php

我正在启动一个需要与外部oracle数据库通信的网站项目。 oracle数据库由用java编写的系统管理。我想知道我是否可以使用php在网站中使用这些java类。

作为一个例子,我试图实现类似:shell_exec(“path / java GetSomething”),但“path / java”存储在远程服务器上。

我是否给出了正确的方法?这会导致安全问题吗?

2 个答案:

答案 0 :(得分:0)

  

我是否给出了正确的方法?

没有。它不会起作用。您不能只是“在另一台服务器上运行shell命令”。当然,除非你已经设置了一堆基础设施来支持这一点,否则你不能这样做。

  

会导致安全问题吗?

这将是您需要解决的问题。


这里真正的问题是你的“问题描述”太模糊了,无法理解你所做的事情是否有任何意义......从技术,建筑和实践的角度来看。

答案 1 :(得分:0)

实现这一目标的一种方法是通过php使JSP Web服务消费。这是一个非常基本的开始,但想法是,你有一个生活在java服务器上的jsp,它可以通过web调用。它接受参数,然后使用这些参数命中数据库,并返回它。 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,任何数字事情,但这个基本模型应该让你从正确的方向开始。