Dear, php-java-bridge-users i have some question. i have try to ask in stackoverflow forum focus on php-java-bridge. here my link in stackoverflow for the question https://stackoverflow.com/questions/63681319/failed-to-open-stream-http-request-failed-using-phpjavabridge https://stackoverflow.com/questions/63590132/require-once-failed-opening-required-on-javabridge but i don't get the fix result my problem my problem is failed to open strem : http request failed php javabridge Warning: require_once(http://localhost:8080/JavaBridge/java/Java.inc): failed to open stream: HTTP request failed! in /Library/WebServer/Documents/test2.php on line 3 Fatal error: require_once(): Failed opening required 'http://localhost:8080/JavaBridge/java/Java.inc' (include_path='.:') in /Library/WebServer/Documents/test2.php on line 3 my tomcat has running at port 8080. i use force to use port 8080 but i still got error here my standalone class for java bridge here my standalone class // // Decompiled by Procyon v0.5.36 // package php.java.bridge; import php.java.bridge.util.Thread; import java.lang.reflect.Method; import php.java.bridge.http.JavaBridgeRunner; import php.java.bridge.util.Logger; import java.io.File; import javax.swing.Icon; import java.awt.Component; import javax.swing.JOptionPane; import java.net.ServerSocket; import java.io.IOException; import php.java.bridge.http.TCPServerSocket; import php.java.bridge.http.ISocketFactory; public class Standalone { public static final int HTTP_PORT_BASE = 8080; public static final int HTTPS_PORT_BASE = 8443; public static ISocketFactory bind(final int logLevel, final String sockname) throws IOException { ISocketFactory socket = null; socket = TCPServerSocket.create(sockname, 20); if (null == socket) { throw new IOException("Could not create socket: " + sockname); } return socket; } protected static void disclaimer() { System.err.println("Copyright (C) 2003, 2006 Jost Boekemeier and others."); System.err.println("This is free software; see the source for copying conditions. There is NO"); System.err.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); } protected void javaUsage() { System.err.println("PHP/Java Bridge version " + Util.VERSION); disclaimer(); System.err.println("Usage: java -jar JavaBridge.jar [SOCKETNAME LOGLEVEL LOGFILE]"); System.err.println("SOCKETNAME is one of INET_LOCAL, INET, HTTP_LOCAL, HTTP, HTTPS_LOCAL, HTTPS"); System.err.println(""); System.err.println("Example 1: java -jar JavaBridge.jar"); System.err.println("Example 2: java -jar JavaBridge.jar HTTP_LOCAL:8080 3 JavaBridge.log"); System.err.println("Example 3: java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=YOURPASSWD -jar JavaBridge.jar HTTPS:8443 3 JavaBridge.log"); System.err.println("The certificate for example 3 can be created with e.g.: jdk1.6.0/bin/keytool -keystore mySrvKeystore -genkey -keyalg RSA"); System.err.println(""); System.err.println("Influential system properties: threads, daemon, php_exec, default_log_file, default_log_level, base."); System.err.println("Example: java -Djava.awt.headless=\"true\" -Dphp.java.bridge.threads=50 -Dphp.java.bridge.base=/usr/lib/php/modules -Dphp.java.bridge.php_exec=/usr/local/bin/php-cgi -Dphp.java.bridge.default_log_file= -Dphp.java.bridge.default_log_level=5 -jar JavaBridge.jar"); System.err.println("Example: java -Dphp.java.bridge.daemon=\"true\" -jar JavaBridge.jar"); } protected void usage() { this.javaUsage(); System.exit(1); } protected void checkOption(final String[] s) { if ("--version".equals(s[0])) { System.out.println(Util.VERSION); System.exit(0); } this.usage(); } private static boolean testPort(final int port) { try { final ServerSocket sock = new ServerSocket(port); sock.close(); return true; } catch (IOException ex) { return false; } } private static int findFreePort(final int start) { for (int port = start; port < start + 100; ++port) { if (testPort(port)) { return port; } } return start; } public void init(final String[] s) { String sockname = null; int logLevel = -1; // final String tcpSocketName = "9267"; final String tcpSocketName = "8080"; if (s.length > 3) { this.checkOption(s); } try { if (s.length > 0) { sockname = s[0]; if (sockname.startsWith("-")) { this.checkOption(s); } } try { if (s.length > 1) { logLevel = Integer.parseInt(s[1]); } } catch (NumberFormatException e2) { this.usage(); } catch (Throwable t) { t.printStackTrace(); } if (s.length == 0) { try { /* final int tcpSocket = Integer.parseInt(tcpSocketName); final int freeJavaPort = findFreePort(tcpSocket); final int freeHttpPort = findFreePort(8080); final int freeHttpsPort = findFreePort(8443); final Object result = JOptionPane.showInputDialog(null, "Start a socket listener on port", "Starting the PHP/Java Bridge ...", 3, null, new String[] { "INET_LOCAL:" + freeJavaPort, "INET:" + freeJavaPort, "HTTP_LOCAL:" + freeHttpPort, "HTTP:" + freeHttpPort, "HTTPS_LOCAL:" + freeHttpsPort, "HTTPS:" + freeHttpsPort }, "HTTP_LOCAL:" + freeHttpPort); //final Object result = 8080; if (result == null) { System.exit(0); }*/ //sockname = result.toString(); sockname = "8080"; } catch (Throwable t2) {} } if (s.length == 0) { TCPServerSocket.TCP_PORT_BASE = Integer.parseInt(tcpSocketName); } if (checkServlet(logLevel, sockname, s)) { return; } final ISocketFactory socket = bind(logLevel, sockname); if ("true".equals(System.getProperty("php.java.bridge.test.startup"))) { System.exit(0); } JavaBridge.initLog(String.valueOf(socket), logLevel, s); JavaBridge.init(socket, logLevel, s); } catch (Exception e) { throw new RuntimeException(e); } } public static File getCanonicalWindowsFile(final String path) { try { return new File(path).getCanonicalFile(); } catch (IOException e) { return new File(path); } } private static boolean checkServlet(final int logLevel, String sockname, final String[] s) throws InterruptedException, IOException { if (sockname == null) { return false; } if (sockname.startsWith("SERVLET_LOCAL:") || sockname.startsWith("HTTP_LOCAL:") || sockname.startsWith("HTTPS_LOCAL:")) { Util.JAVABRIDGE_PROMISCUOUS = false; System.setProperty("php.java.bridge.promiscuous", "false"); } else { if (!sockname.startsWith("SERVLET:") && !sockname.startsWith("HTTP:") && !sockname.startsWith("HTTPS:")) { return false; } Util.JAVABRIDGE_PROMISCUOUS = true; System.setProperty("php.java.bridge.promiscuous", "true"); } final boolean isSecure = sockname.startsWith("HTTPS"); JavaBridge.initLog(sockname, logLevel, s); sockname = sockname.substring(sockname.indexOf(58) + 1); final String serverPort = (Util.JAVABRIDGE_PROMISCUOUS ? "INET:" : "INET_LOCAL:") + sockname; Logger.logMessage("JavaBridgeRunner started on port " + serverPort); Class runner = JavaBridgeRunner.class; JavaBridgeRunner r; try { runner = Util.classForName("php.java.script.JavaBridgeScriptRunner"); final Method m = runner.getMethod("getRequiredInstance", String.class, Boolean.TYPE); r = (JavaBridgeRunner)m.invoke(runner, serverPort, new Boolean(isSecure)); } catch (Throwable e) { r = JavaBridgeRunner.getRequiredInstance(serverPort, isSecure); } r.waitFor(); r.destroy(); return true; } private static final boolean checkGNUVM() { try { return "libgcj".equals(System.getProperty("gnu.classpath.vm.shortname")); } catch (Throwable t) { return false; } } public static void main(final String[] s) { if (!System.getProperty("php.java.bridge.daemon", "false").equals("false")) { final String[] args = new String[s.length + 8]; args[0] = System.getProperty("php.java.bridge.daemon"); if ("true".equals(args[0])) { args[0] = "java"; } args[1] = "-Djava.library.path=" + System.getProperty("java.library.path", "."); args[2] = "-Djava.ext.dirs=" + System.getProperty("java.ext.dirs", "."); args[3] = "-Djava.awt.headless=" + System.getProperty("java.awt.headless", "true"); args[4] = "-Dphp.java.bridge.asDaemon=true"; args[5] = "-classpath"; args[6] = System.getProperty("java.class.path", "."); args[7] = "php.java.bridge.Standalone"; for (int j = 0; j < s.length; ++j) { args[j + 8] = s[j]; } try { System.in.close(); System.out.close(); System.err.close(); } catch (IOException e) { System.exit(12); } new Thread(new Runnable() { @Override public void run() { try { Runtime.getRuntime().exec(args); } catch (IOException e) { System.exit(13); } } }).start(); try { java.lang.Thread.sleep(20000L); } catch (Throwable t2) {} System.exit(0); } try { System.loadLibrary("natcJavaBridge"); } catch (Throwable t3) {} try { final String cp = System.getProperty("java.class.path", "."); File jbFile = null; final boolean isExecutableJavaBridgeJar = cp.indexOf(File.pathSeparatorChar) == -1 && cp.endsWith("JavaBridge.jar") && (jbFile = new File(cp)).isAbsolute(); final File wd = getCanonicalWindowsFile(isExecutableJavaBridgeJar ? jbFile.getParent() : ""); final boolean sunJavaInstalled = new File("/usr/java/default/bin/java").exists(); final String javaExec = sunJavaInstalled ? "/usr/java/default/bin/java" : "java"; if (s.length == 0 && System.getProperty("php.java.bridge.exec_sun_vm", "true").equals("true") && ((sunJavaInstalled && checkGNUVM()) || isExecutableJavaBridgeJar)) { final Process p = Runtime.getRuntime().exec(new String[] { javaExec, "-Dphp.java.bridge.exec_sun_vm=false", "-classpath", cp, "php.java.bridge.Standalone" }, null, wd); if (p != null) { System.exit(p.waitFor()); } } } catch (Throwable t4) {} try { new Standalone().init(s); } catch (Throwable t) { t.printStackTrace(); System.exit(9); } } } in this code i have force using 8080 use this code try { /* final int tcpSocket = Integer.parseInt(tcpSocketName); final int freeJavaPort = findFreePort(tcpSocket); final int freeHttpPort = findFreePort(8080); final int freeHttpsPort = findFreePort(8443); final Object result = JOptionPane.showInputDialog(null, "Start a socket listener on port", "Starting the PHP/Java Bridge ...", 3, null, new String[] { "INET_LOCAL:" + freeJavaPort, "INET:" + freeJavaPort, "HTTP_LOCAL:" + freeHttpPort, "HTTP:" + freeHttpPort, "HTTPS_LOCAL:" + freeHttpsPort, "HTTPS:" + freeHttpsPort }, "HTTP_LOCAL:" + freeHttpPort); //final Object result = 8080; if (result == null) { System.exit(0); }*/ //sockname = result.toString(); sockname = "8080"; } this run well there is no error here i have also change inet port in my tcpsocketserver from 9267 become 8080 and this is for my tcpsocketserver class // // Decompiled by Procyon v0.5.36 // package php.java.bridge.http; import java.net.Socket; import java.net.UnknownHostException; import java.net.InetAddress; import java.io.IOException; import java.net.ServerSocket; public class TCPServerSocket implements ISocketFactory { public static int TCP_PORT_BASE; private ServerSocket sock; private int port; boolean local; public static ISocketFactory create(String name, final int backlog) throws IOException { boolean local = false; if (name == null) { throw new NullPointerException("name"); } if (name.startsWith("INET:")) { name = name.substring(5); } else if (name.startsWith("INET_LOCAL:")) { local = true; name = name.substring(11); } final int p = Integer.parseInt(name); final TCPServerSocket s = new TCPServerSocket(p, backlog, local); return s; } private ServerSocket newServerSocket(final int port, final int backlog) throws IOException { try { if (this.local) { return new ServerSocket(port, backlog, InetAddress.getByName("127.0.0.1")); } } catch (UnknownHostException ex) {} return new ServerSocket(port, backlog); } private void findFreePort(final int start, final int backlog) { int port = start; while (port < start + 100) { try { this.sock = this.newServerSocket(port, backlog); this.port = port; return; } catch (IOException e) { ++port; continue; } } } private TCPServerSocket(final int port, final int backlog, final boolean local) throws IOException { this.local = local; if (port == 0) { this.findFreePort(TCPServerSocket.TCP_PORT_BASE, backlog); } else { this.sock = this.newServerSocket(port, backlog); this.port = port; } } @Override public void close() throws IOException { this.sock.close(); } @Override public Socket accept() throws IOException { final Socket s = this.sock.accept(); s.setTcpNoDelay(true); return s; } @Override public String getSocketName() { return String.valueOf(this.port); } @Override public String toString() { return (this.local ? "INET_LOCAL:" : "INET:") + this.getSocketName(); } static { // TCPServerSocket.TCP_PORT_BASE = 9267; TCPServerSocket.TCP_PORT_BASE = 8080; } } but still cannot hit my javabridge port while my tomcat have run use 8080 can someone help me for fix it ? regards, Fuad |