2015-04-07 78 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

    以上方法適用於獨立應用程序。 –