2015-04-07 80 views
0

我有2台机器:如何知道/更改PHP Java Bridge的端口号

  1. 先用PHP + Apache的用于Web应用程序(10.1.1.33
  2. 第二,Glassfish的用于后台任务和报告等(10.1.1.34

第一台机器(Apache)的可以从第二机器访问Java.inc文件(Glassfish的)

http://10.1.1.34:8080/projectname/java/Java.inc 

有一个防火墙设置,允许8080访问从Apache10.1.1.33)机器到Glassfish10.1.1.34)机器。我认为这就是为什么Java.inc可以访问,但PHP-Java-Bridge为通信的其余部分保留一个单独的端口。除非我添加特定的保留端口,否则我的应用程序无法工作。 作为解决方法,我添加了一条规则,允许来自Apache机器的任何端口。

allow 0-65535 from 10.1.1.33 

这似乎不是个好主意,因为我必须关闭所有的端口并且只允许真正需要的端口。

Java端配置 以下jar文件被复制到Java Web项目的lib文件夹中。

  1. JavaBridge.jar
  2. PHP-script.jar
  3. PHP-的servlet.jar

这里是桥设置的web项目的一部分web.xml

<listener> 
     <listener-class>php.java.servlet.ContextLoaderListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>PhpJavaServlet</servlet-name> 
     <servlet-class>php.java.servlet.PhpJavaServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>PhpJavaServlet</servlet-name> 
     <url-pattern>*.phpjavabridge</url-pattern> 
    </servlet-mapping> 

问题:

  1. 是否有固定的端口由php-java-bridge保留?
  2. 我们可以知道什么端口是保留的?
  3. 我们可以指定我们选择的端口号吗?

回答

0

The documentation states that you need to configure this yourself


的PHP/Java桥库添加到您的Java应用程序

  1. 复制JavaBridge.jar到当前目录。

  2. 将JavaBridge.jar添加到您的Java应用程序中。编辑清单MANIFEST。MF是这样的:

主类:的HelloWorld
类路径:JavaBridge.jar

  • 打开的通信为PHP端口。编辑HelloWorld.java这样的:
  • import javax.swing.JOptionPane; 
    
    public class HelloWorld { 
        public static final String JAVABRIDGE_PORT="8087"; 
        static final php.java.bridge.JavaBridgeRunner runner = 
        php.java.bridge.JavaBridgeRunner.getInstance(JAVABRIDGE_PORT); 
    
        public static void main(String args[]) throws Exception { 
        runner.waitFor(); 
        System.exit(0); 
        } 
        public void hello(String args[]) throws Exception { 
        JOptionPane.showMessageDialog(null, "hello " + args[0]); 
        } 
    } 
    
  • 重新编译Java应用程序。
  • +0

    我们如何验证网桥是否真的在使用此端口。除了在上述指定环境中部署应用程序?想在本地测试它。 –

    +0

    以上方法适用于独立应用程序。 –