互联互通java,“先进的互联互通技术”–使用ice联通php和java [part 2 client]

本文详细介绍了如何在Linux环境中搭建PHP的Ice环境,并通过PHP调用Java服务。首先,下载并编译IcePHP,设置ICE_HOME环境变量,然后在php.ini中添加扩展和配置文件路径。接着,创建配置文件并指定接口slice文件。最后,编写PHP代码调用Java的Demo.test.execute方法。成功执行后,通过浏览器访问PHP页面,将显示'HelloWorld!'。
摘要由CSDN通过智能技术生成

这一part的目标是建立起ice的php环境,以及写PHP代码调用上一part中的10000端口的java代码。

在part 1中,我们建立了一个Server在10000端口等着我们,地址见

建立带ice的PHP环境

不管是nginx+php-cgi还是别的啥,这里只表述php编译过程。

本例以 Ice 3.2.1为例 下载的位置和参考的文档都在下面

1.下载IcePHP包,进行编译。在此之前,你还需要安装Ice,记好使用3.2.1版本,如果你是用的tar.gz包,在/opt/Ice-3.2.1/,如果是rpm包,在/usr/下。

2.运行 export ICE_HOME=/opt/Ice-3.2.1

设置好ICE_HOME后进IcePHP目录直接make  make install。

此时在/opt/IcePHP-3.2.1/lib64下有产生IcePHP.so(也就是传说中的PHP扩展的so文件了)

3.vi /etc/php.ini

在任意位置增加两行:

extension=IcePHP.so

ice.profiles = /etc/ice.prop

4.准备/etc/ice.prop

vi /etc/ice.prop

加入以下两行:

[profile_demo]

ice.slice=/root/zhen.chen/example/demo.ice

这两行的意思就是,增加一个ice的配置,名字是profile_demo,slice文件是…demo.ice

PHP不能在一个php进程中同时调用多个的ice slice,只能通过在prop文件中写义不同的段,然后在php文件中使用类似Ice_loadProfile(’profile_demo’)来告诉ice这次访问是使用的哪一个slice文件,当然,不能在一个文件里同时有两个Ice_loadProfile的,如果有两个接口的调用需求,只能是通过前端的js来发起两次请求才行了。

5.把上一节提到的demo.ice文件放到对应的下

到此,带有ICE的PHP环境建立完成。

写PHP的客户端来调用 java里的Demo.test.excute方法

vi Demo.php

ini_set(”display_errors”, “1″);

global $ICE;

Ice_loadProfile(’profile_demo’);

try {

$vBase = $ICE->stringToProxy ( “TestAdapter:default -p 10000″ );

$vManager = $vBase->ice_checkedCast ( “::Demo::test” );

$vProperties = $vManager->execute(”Hello “,” world!”);

echo $vProperties;

} catch ( Exception $vError ) {

print_r($vError);

}

?>

注意全角半角。

通过浏览器访问.php

你是不是看到了久违的Hello World!了呢?

截图:

uid-21516619-id-1824755.html

ice、php和java的关系架构图:

uid-21516619-id-1824755.html

转载自[]

本文链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值