Php调用java说明

(lajp实现)

LAJP名称含义

LAJP名称来源于著名的LAMP(Linux,Apache,Mysql,Php),LAMP是轻量级的开发Web程序的环境,在Internet上有广泛的应用,但对于企业开发,如金融、电信领域,LAMP显得能力不足,这些领域通常是Java(J2EE)的势力范围。LAJP是将LAMP的简便性和Java能力结合起来的一项技术,LAJP中的J指的是Java,由于数据库厂商对Java的广泛支持和LAJP针对的领域,数据库不再特别限制为Mysql。

特点

·     优势互补: PHP是非常流行的WEB编程脚本语言,有易学、易用、开发部署效率高的特点,非常适合WEB开发;JAVA适合编写具有复杂的业务功能和数据的程序,二者结合可发挥各自优势,适合开发B/S企业程序。

·     高效稳定:Apache+PHP组合可带来优异的WEB服务稳定性,而JAVA可补充如连接池、事物管理、分布式、对象模型等高端特性。

·     创新的通信机制 PHP和Java间的通讯方式采用系统消息队列和Socket两种机制,同时兼顾通讯效率和平台兼容性。

·     数据类型自动转换机制 PHP数据和Java数据可准确、自动匹配和转换。

·     易用:LAJP安装配置简单,除了核心的几个Java类文件和Java JNI接口程序外,不需额外插件,PHP端和JAVA端编程符合各自的编程习惯。

·     轻量级:LAJP架构非常轻量级,除了最基本的PHP和Java环境,不需要任何扩充的、第三方的组件。

LAMP和LAJP的简要对比

LAMP从传统技术架构上看属于2层结构,虽然在php5以后增强了面向对象的能力,有了形成业务逻辑层的语言基础,但对于复杂的企业级WEB应用,php语言能力仍显不足。LAJP继承了LAMP在WEB领域编程的活力,并用java构建业务逻辑层,非常适合针对企业级WEB项目的开发。

php和java的互通

php和java是两种不同的语言,在LAJP架构中二者之间的互通有两种机制。

·     一、消息队列

以操作系统的消息队列为沟通媒介,在通讯过程中php作为客户端调用java端服务。消息队列属于IPC技术(进程间通讯),php语言中内置了一组函数(msg_send、msg_receive等)可以和System V消息队列通讯,而java中没有相似的方法,因此通过调用底层JNI接口使用C函数来实现。 使用消息队列有以下好处:

1.   使php和java保持独立性

2.   有极高的传输速度,大于socket

3.   相对于socket方式,Java服务端只向本机提供服务(没有对外侦听端口),相对安全,易于管理。

·     二、Socket

消息队列技术只能适用于Unix/Linux/BSD系统,因此LAJP提供基于TCP/IP的通讯机制,从而适应各种平台。

数据类型转换

PHP和Java各有其语言内部定义的数据类型,当PHP数据传送到Java,或Java数据传送到PHP时,LAJP在内部自动地、准确地对他们进行转换,程序员无需进行任何的解码工作。

具体实现过程

1.下载lajp的包,地址http://code.google.com/p/lajp/,解压缩,然后修改make.sh文件,把里面的java_home修改过后,make通过把里面的so文件copy到java的库文件目录下面。

2.然后到java的目录下启动run.sh,注意如果用到了第三方包的话一定要在此处的otherclasspath里面注明,要用绝对路径。用命令nohup ./run.sh &启动

3.在/var/www/html/health/下面新建一个testphpjava.php,内容如下:

require_once("php_java.php");  //引用下载的php_java.php文件

$name = "Ali";

try

{

//调用Java的hello.HelloClass类中的hello方法

$ret = lajp_call("hello.HelloClass::hello", $name);

echo "{$ret}

";

}

catch (Exception $e)

{

echo "Err:{$ret}

";

}

?>

4.在浏览器里输入http://localhost/health/testphpjava.php

你会看到HelloWorld,这是java返回的字符串。

5.自己可以写一个新的类进行测试,但是一定要放在lajp下的java目录下,调用方式用lajp_call();,如果用到非常复杂的类,那么在php和java中一定要有对应的类,具体请参考网站文档。

lajp mysql安装_Php调用java说明相关推荐

  1. Java传xml时字符串乱码_php调用java传递xml字符串乱码怎么办

    php调用java传递xml字符串乱码的解决办法:首先使用CURL在命令行中完成请求:然后将调用接口时的[Content-Type:application/json]改成[application/xm ...

  2. php调用mysql库_PHP调用三种数据库的方法(1)

    PHP调用三种数据库的方法(1) 更新时间:2006年10月09日 00:00:00   作者: MySQL是一个小巧灵珑的数据库服务器软件,对于中.小型应用系统是非常理想的.除了支持标准的ANSI ...

  3. jaydebeapi可以连接_Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库

    1 importjpype,os,time,timer2 from jpype importjava3 from jpype importjavax4 5 HOST='192.168.48.103' ...

  4. mysql tomocat vs2005_C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

    要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置好JDK环境.Mysql服务.Tomcat 服务 目的: 解决客户在安装软件的复 ...

  5. php 管理 mysql 数据库 代码_安装并使用phpMyAdmin管理MySQL数据库_php

    学会使用基于web数据库的管理工具phpMyAdmin. 如果使用合适的工具,mysql数据库的管理就会为得相当简单.应用MySQL命令行方式需要对MySQL知识非常熟悉,对SQL语言也是同样的道理. ...

  6. Windows Java、Tomcat、MySQL安装过程

    1.选择平台 平台分为Java SE(标准版)和Java EE(企业版),这里选择SE 2.下载JDK 下载的官网:https://www.oracle.com/technetwork/java/ja ...

  7. php.ini mysql扩展_PHP安装mysql.so扩展及相关PHP.ini 配置参数说明

    在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错 Fatal error: Uncaught Error: Cal ...

  8. MySQL安装与java配合

    MySQL安装与java配合 MySQL下载地址:https://dev.mysql.com/downloads/mysql/ 这个是安装数据库服务器 选择不用了,请开始下载 (1)选择微软windo ...

  9. java mysql安装教_大学java教案之MySQL安装图解

    一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe". 2.选择安装类型,有"Typ ...

最新文章

  1. 服务器oracle11g卸载,卸载Oracle11g步骤详解
  2. web项目html页面过多,详解webpack4多入口、多页面项目构建案例
  3. Sierpinski镂垫
  4. ssm框架搭建和整合流程
  5. 《区块链开发指南》一一第1章 区块链基础
  6. teamviewer设备数量上限怎么解决_支小蜜刷脸支付设备解决方案,支小蜜刷脸支付设备怎么使用...
  7. java中rtsp转m3u8_记录:通过ffmpeg rtsp转 http m3u8
  8. 最近做项目遇到的一些小问题
  9. [ Ubuntu Chinese Method ] uninstall DBus, install fcitx
  10. Servlet+Ajax实现搜索智能提示
  11. (秒杀项目) 4.4 用户下单与秒杀
  12. 发票查验API可以查验的发票类型有哪些?
  13. python3.5安装tensorflow_win10下python3.5.2和tensorflow安装环境搭建教程
  14. DNS云学堂 | 三分钟了解,最近大火的DOH与HTTPDNS、DOT的异同
  15. 32怎么通过一个按键实现不同工作模式_游戏工作室防封IP,免费领!!!魔兽世界怀旧版独享IP免费送...
  16. 使用U盘启动安装U盘内linux6.1
  17. uefl计算机mbr分区方案,免重装系统 手把手教你MBR转GPT分区表-电脑教程
  18. LQ-630K打印发票右边打不全?
  19. 计算带余除法------C语言
  20. python基础读后感_Python基础教程【读书笔记】 - 2016/6/26

热门文章

  1. mysql timestamp 插入null报错_读MySQL 5.7文档11.2 Date and Time Data Types总结
  2. c语言编程思维训练50题,c语言逻辑思维训练题一
  3. python测试udp端口_Linux系统的ECS实例中TCP/UDP端口测试及验证方法说明
  4. java计算时间跨度_请问如何使用Java计算时间跨度并格式化输出?
  5. cp无法获取文件状态stat_Node.js从零开始——文件系统
  6. 函数防抖和函数节流的最简单解释
  7. 公司电脑用域账号访问团队文件夹
  8. dos命令在vba中应用
  9. Oracle_Rac_BackgroudProcess
  10. boost--线程同步