У меня 2 машины:
10.1.1.33
)10.1.1.34
)Первая машина (Apache) может получить доступ к файлу Java.inc со второй машины (Glassfish)
http://10.1.1.34:8080/projectname/java/Java.inc
Есть настройка брандмауэра, которая позволяет 8080
доступ из Apache
(10.1.1.33
) машина для Glassfish
(10.1.1.34
) машина. Я думаю поэтому Java.inc
доступно, однако PHP-Java-Bridge
резервирует отдельный порт для остальной части связи. Мое приложение не работает до тех пор, пока я не добавлю этот конкретный зарезервированный порт.
В качестве обходного пути я добавил правило, разрешающее любой порт с компьютера Apache.
allow 0-65535 from 10.1.1.33
Что не кажется хорошей идеей, так как я должен закрыть все порты и разрешить только те порты, которые действительно требуются.
Конфигурация на стороне Java
Следующие файлы jar копируются в папку lib веб-проекта Java.
Вот часть 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>
Вопрос:
В документации говорится, что вам нужно настроить это самостоятельно
Скопируйте JavaBridge.jar в текущий каталог.
Добавьте 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-приложение.
Других решений пока нет …