java - tomcat java php

标签 java php tomcat

我想tomcat tomcat, java & php 一起用。我的java程序创建了一个文本文件并在文件上写了一些东西,当我运行时没有创建文件。 java程序通过命令行运行。我将所有文件保存在/usr/local/tomcat/webapps/testjava 中。 Java文件内容:

public class test
{
    public static void main(String args[]) throws IOException
    {
    try{
           Writer fos = null;
                   File outputFile = new File("outList.txt");            
                   fos = new BufferedWriter(new FileWriter(outputFile));
                   fos.write("hi");
                   fos.write("\n");
                   fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PHP文件内容:

<?php
    $output = exec("java test", $ret);
echo $ret;
    echo file_get_contents("outList.txt");
    echo "HI";
?>

$ret 给定输出为数组。 HI 正在显示。

还有一点,当我在命令行上执行 php index.php 时,它正在运行,这意味着正在创建 outList.txt。

var_dump($ret) 给出:

HTTP Status 500 -
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.RuntimeException: PHP Parse error:  syntax error, unexpected T_ECHO in /usr/local/tomcat/webapps/testjava/index.php on line 7

    php.java.servlet.fastcgi.FastCGIServlet.handle(FastCGIServlet.java:499)
    php.java.servlet.fastcgi.FastCGIServlet.doGet(FastCGIServlet.java:521)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.RuntimeException: PHP Parse error:  syntax error, unexpected T_ECHO in /usr/local/tomcat/webapps/testjava/index.php on line 7

    php.java.servlet.fastcgi.FastCGIServlet.parseBody(FastCGIServlet.java:409)
    php.java.servlet.fastcgi.FastCGIServlet.execute(FastCGIServlet.java:433)
    php.java.servlet.fastcgi.FastCGIServlet.handle(FastCGIServlet.java:481)
    php.java.servlet.fastcgi.FastCGIServlet.doGet(FastCGIServlet.java:521)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.12 logs.

最佳答案

好吧,对于初学者来说,您的文件名在 Java 和 PHP 代码之间是不同的(outList.txtout.txt)。这是发布问题时的错误还是代码中的真正错误?

否则,我建议您查看 PHP exec 调用的返回值和错误输出(如果有)——很可能是 Java 调用未能正确运行并且检查这些会告诉你原因。可能有很多原因 - 在运行 PHP 预处理器的用户的路径上找不到 java,在任何类路径设置中都找不到 test.class 文件,等等。能够以交互方式运行 Java 命令和让它由网络服务器运行是非常不同的事情,因为这是高度依赖于环境的。

关于java - tomcat java php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113855/

相关文章:

java - 根据条件对列表进行排序(升序或降序)

php - 删除用户帐户和所有文件/目录

javascript - 在 PHP 页面中检测 AJAX 请求?

image - 如何从Docker镜像访问文件?

Linux 服务器 | Tomcat 7.0 异常

java - tomcat 的 server.xml 中的两个连接器

java - 如何将此 ArrayList 加载到 JTable 中

java - JPanel 中的 PaintComponent 未被调用

java - 使用 toString() 方法打印对象

php - Mysql存储过程错误