java那边用个http客户端,
公司主营业务:成都网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出榆林免费做网站回馈大家。
请求php这边的应用就可以了,
不过两个系统还是要约定好通信协议(输入/输出数据格式)!
希望回答能给你带来帮助~
如果满意,请采纳,如还有疑问,可继续追问!
您也可以向我们团队发出请求,会有更专业的人来为您解答!
可以用php的curl模拟浏览器请求是访问java服务器程序,或者用java的一个http类库同样发送http请求来访问PHP服务器
PHP与JAVA融合的开发环境
一.系统环境
1.初始安装
防火墙开放接口:21,22,80,2401,8009,10000,eth0
Redhat Linux 9.0
Development Tools
Network Servers
VSFtp
CVS-1.11.2-10
MySQL 3.23.54
2.包安装
JDK 1.5
下载地址:
Tomcat 5.0.19
下载地址:
3.脚本安装
Webmin 1.110
下载地址:
ZendOptimizer 2.5.1
下载地址:
4.手工编译
Apache 2.0.49
下载地址:
PHP 4.3.5
下载地址:
JK 2-2.0.4
下载地址:
5.客户机环境
Windows XP Professional
Absolute Telnet 3.0
Zend Encoder
Macromedia Dreamweaver MX 2004
Borland JBuilder 9 Enterprise
WinCVS 1.3
下载地址:
二.系统安装
启动Linux安装光盘,安装基本系统:FTP、开发工具和MySQL3.23.54。如果你是手工编译安装MySQL,要记得以后在编译PHP等程序时要指明MySQL的具体路径,否则会因找不到路径而导致编译出错。
三.安装webmin1.110
用Webmin来配置系统,傻瓜化,可以节省不少力气,所以一般我都先安装它。安装过程很简单,执行setup.sh脚本后照提示一步一步来就可以了。
# cd webmin*
# ./setup.sh
四.安装JDK1.5
1.编辑如下三个文件,没有指明全路径的放在你自己的home目录就可以。
/etc/profile
JAVA_HOME=/usr/java/j2sdk1.4.2_04
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
CVSROOT=/usr/local/cvsroot
PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME CLASSPATH CVSROOT PATH
/etc/ld.so.conf
/usr/java/j2sdk1.4.2_04/jre/lib/i386
/usr/java/j2sdk1.4.2_04/jre/lib/i386/server
HelloWorld.java
class HelloWorld
{
public static void main(String[] args)
{
//本文件测试Java环境是否安装成功。
System.out.println("Hello World!");
}
}
2.执行以下命令:
# rpm -ivh j2sdk*.rpm //安装JDK包。
# source /etc/profile //重载profile环境。
# ldconfig //创建动态链接库缓存文件。
# javac -d . HelloWorld.java //编译测试文件。
# java HelloWorld //运行程序测试安装是否成功。
五.安装Apache
# tar xvzf httpd* //解压源码包。
# cd httpd* //进入安装目录。
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=most --enable-rewrite
# make;make install //编译并安装。
说明:
--enable-so选项:让Apache可以支持DSO模式,注意,我们在这里采用的是Apache2.0的语法。如果你的Apache是1.3版本,应改为--enable-module=so。
--enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。
--enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite。
六.编译安装PHP
1.执行命令
#tar xvzf php* //解压源码包
#cd php* //进入PHP安装命令
#./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local
/apache/bin/apxs --with-java=/usr/java/j2sdk1.4.2_04
#make;make install //编译并安装
#cp php.ini-dist /usr/local/php/lib/php.ini //复制php配置文件
#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 //extensions目录
#ln -s java.so libphp_java.so //建立连接,忘记了会出错哦
#cd Zend* //进入ZendOptimizer目录
#./install //安装PHP加速器
说明:
--with-apxs2=/usr/local/apache/bin/apxs是Apache2的语法,1.3版本的用户请使用--with-apxs=/usr/local/apache/bin/apxs。
2.编辑下面三个文件
/usr/local/apache/conf/httpd.conf
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddDefaultCharset gb2312
/usr/local/apache/htdocs/test.php
?php
//本程序测试PHP的JAVA环境是否可用,
代码是从摘录下来的。
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');
// demonstrate property access
echo 'Java version=' . $system-getProperty('java.version') . 'br /';
echo 'Java vendor=' . $system-getProperty('java.vendor') . 'br /';
echo 'OS=' . $system-getProperty('os.name') . ' ' .
$system-getProperty('os.version') . ' on ' .
$system-getProperty('os.arch') . ' br /';
// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter-format(new Java('java.util.Date'));
?
/usr/local/php/lib/php.ini
register_globals=On
[Java]
java.class.path=/usr/local/php/lib/php/php_java.jar:/home/jim/myclass
java.home=/usr/java/j2sdk1.4.2_04
java.library=/usr/java/j2sdk1.4.2_04/jre/lib/i386/libjava.so
java.library.path=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension=libphp_java.so
注意:
(1).如果你刚刚从以前老版本的PHP转换到新版本,可能会发现你的PHP程序很多都不能用了。别紧张!把register_globals打开就一切正常啦!这是因为老版本的PHP,它的register_globals默认是开着的,而新版本,却把它关了的缘故。
(2)./home/jim/myclass是我存放JAVA组件的路径,你可以根据实际情况修改,但是为了安全起见,可不要放在web目录下哦。
看不懂php
但是我觉得你这个问题可能是因为php发生的EOF不符合java标准。或者根本没有发送EOF标识。
超时应该发生在 ss = in.readLine();这一行代码中的in.read()。
下面是j2se文档资料
int java.io.InputStream.read()
Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
A subclass must provide an implementation of this method.
Returns:
the next byte of data, or -1 if the end of the stream is reached.
Throws:
IOException if an I/O error occurs.
这句话非常重要
Returns:
the next byte of data, or -1 if the end of the stream is reached.
当没有发送end of the stream 标识的话,那么程序属于等待状态。 也就是java端一直处于读的状态。
解决这个问题的话。 要么终端手动发送eof.要么终端发送每一次交互的字节长。服务器端根据这个字节长来读取相应长度的字节。
这是一门课程了。javaweb,,或者叫jsp。jsp就是由html和java脚本,等语言构成的。java程序嵌套在html里。相当于php。以网页的形式将java展现。这也就是所谓的动态。以为java程序获取的时间会变动。或者数据库变动从而引起网页的变动。具体实现,你可以在网上查找jsp教程。以下是一个jsp页面的例子:注释(1):上面一句是jsp命令语句,标准形式表示,利用java脚本语言。引入java.util包里的所有文件。编码为utf-8注释2:java脚本之后是标准的html格式。可嵌入java代码"MyJSP'index.jsp'startingpageThisismyJSPpage.可嵌入java脚本