Foros del Web » Programando para Internet » PHP »

Ejecutar Jar desde pHP

Estas en el tema de Ejecutar Jar desde pHP en el foro de PHP en Foros del Web. Estoy utilizando un bridge para realizar eso mi código es el siguiente cuando trabajo directo en php no sale ningún error y muestra un joptionpane ...
  #1 (permalink)  
Antiguo 13/11/2014, 15:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 13 años, 7 meses
Puntos: 1
Ejecutar Jar desde pHP

Estoy utilizando un bridge para realizar eso mi código es el siguiente
cuando trabajo directo en php no sale ningún error y muestra un joptionpane
pero con el siguiente código tengo error

require_once("http://localhost:8086/JavaBridge/java/Java.inc");

$world = new java("BridgePHP");
echo $world->hello(array("from PHP"));

pero me sale el siguiente error


Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new BridgePHP. Cause: java.lang.ClassNotFoundException: BridgePHP VM: 1.6.0_14@http://java.sun.com/" at: #-30 org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1680) #-29 org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1526) #-28 java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:320) #-27 java.lang.Class.forName0(Native Method) #-26 java.lang.Class.forName(Class.java:247) #-25 php.java.bridge.Util.classForName(Util.java:1518) #-24 php.java.bridge.JavaBridge.CreateObject(JavaBridge .java:445) #-23 php.java.bridge.Request.handleRequest(Request.java :458) #-22 php.java.bridge.Request.handleOneRequest(Request.j ava:510) #-21 php.java.servlet.PhpJavaServlet.handleLocalConnect ion(PhpJavaServlet.java:202) #-20 php.java.servlet.PhpJavaServlet.handlePut(PhpJavaS ervlet.java:250) #-19 php.java.servlet.PhpJavaServlet.doPut(PhpJavaServl et.java:261) #-18 javax.servlet.http.HttpServlet.service(H in http://localhost:8080/JavaBridge/java/Java.inc on line 195
  #2 (permalink)  
Antiguo 13/11/2014, 16:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar Jar desde pHP

Así no se cargan los scripts:
Código PHP:
Ver original
  1. // MAL
  2.  require_once("http://localhost:8086/JavaBridge/java/Java.inc");
  3.  
  4. // BIEN
  5.  require_once("/path/to/JavaBridge/java/Java.inc");

Debes cargar el script mediante una ruta del sistema de archivos, no una URL.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/11/2014, 13:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Ejecutar Jar desde pHP

estoy queriendo ejecutar desde un botón un jar que se encuentra alojado en otro servidor.por eso lo coloco asi, he probado con lo que has mandado y no sale nada
  #4 (permalink)  
Antiguo 17/11/2014, 15:53
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar Jar desde pHP

Hola,

Hubiera sido mejor que colocaras la pregunta en la sección de Java.
Pero posiblemente,

Cita:
Iniciado por marielapg84 Ver Mensaje
... Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new BridgePHP. Cause: java.lang.ClassNotFoundException: BridgePHP VM: 1.6.0_14@http://java.sun.com/" at: #-30 org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1680) #-29 org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1526) #-28 java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:320) #-27 java.lang.Class.forName0(Native Method) #-26 java.lang.Class.forName(Class.java:247) #-25 php.java.bridge.Util.classForName(Util.java:1518) #-24 php.java.bridge.JavaBridge.CreateObject(JavaBridge .java:445) #-23 php.java.bridge.Request.handleRequest(Request.java :458) #-22 php.java.bridge.Request.handleOneRequest(Request.j ava:510) #-21 php.java.servlet.PhpJavaServlet.handleLocalConnect ion(PhpJavaServlet.java:202) #-20 php.java.servlet.PhpJavaServlet.handlePut(PhpJavaS ervlet.java:250) #-19 php.java.servlet.PhpJavaServlet.doPut(PhpJavaServl et.java:261) #-18 javax.servlet.http.HttpServlet.service(H in http://localhost:8080/JavaBridge/java/Java.inc on line 195
Eso es un StackTrace de Java, dice que no encontró una clase, posiblemente aunque no estoy seguro, creo que estás tratando de instanciar una clase que según lo que pones se llama BridgePHP y no existe.

Lo único que es evidente es que contestó un javax.servlet trató de instanciar algo que no encuentra, aunque sí, positivamente, encuentra la librería JavaBridge en el servlet container, no encuentra BridgePHP.class (o BridgePHP.php si usa reflection).

Ahora bien, hay otro par de cosas que no parecen normales, pareciera que el servidor contestó con el método PUT, no sé si ese será el funcionamiento normal de esa librería, pero no es normal, aunque eso es otro problema que seguramente no tiene nada que ver con el StackTrace, pero sería algo que tendrías que resolver mas adelante.

Cita:
Iniciado por marielapg84 Ver Mensaje
... cuando trabajo directo en php no sale ningún error y muestra un joptionpane ...
Si tienes un JOptionPane del lado de Java y el servlet container está funcionando como un servicio podría tirar un HeadlessException. De cualquier forma no vas a ver el JOptionPane en la misma PC cliente, sino en la PC servidor, a menos que el cliente y el servidor sean el mismo y no suceda un Headless.

(En este caso el cliente y el servidor son dos servidores seguramente, uno con PHP y el otro con Java. Se el llama cliente al PHP porque es el que solicita el recurso al otro server)

Saludos,

Última edición por HackmanC; 17/11/2014 a las 16:11 Razón: reflection

Etiquetas: jar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:33.