windows - "PWC6345: Hay un error al invocar javac." Error al usar el plugin Jetty WTP para implementar una página JSP en Jetty
eclipse-wtp (14)
Además de actualizar el JAVA_HOME (ver arriba) ... Si encuentra este error desde la línea de comando (por ejemplo, al iniciar el servidor Jetty desde la ventana DOS), verifique dónde encuentra el archivo java.exe en la ventana:
donde java
Si Windows vuelve con una ruta que muestra su jre, entonces verifique su RUTA. Lo más probable es que% PATH% contenga una ruta que apunte a jre en lugar de jdk.
Estoy tratando de implementar una página JSP en Jetty, usando el plugin Jetty WTP para Eclipse. Pero obtengo el error a continuación. Parece que Jetty no puede encontrar javac
. ¿Hay alguna configuración que tengo que hacer para el plugin Jetty WTP en Eclipse o cómo puedo solucionarlo?
La página JSP funciona bien si exporto mi proyecto como un archivo .war
a jetty/webapps
y luego inicio Jetty manualmente usando java -jar start.jar
. Pero no funciona si despliegue usando el plugin Jetty WTP para Eclipse como se describe.
Tengo mi JAVA_HOME
establecido en C:/Program Files (x86)/Java/jdk1.7.0_01
y uso Jetty 8.0.4 en Windows 7.
Servlets funciona bien con la configuración actual. ¿Alguna sugerencia sobre cómo resolver esto para las páginas JSP?
HTTP ERROR 500
Problem accessing /MyJavaWeb/formProcess. Reason:
PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
Caused by:
org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)
at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:208)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:384)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:558)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:488)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:973)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:417)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:907)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:271)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:98)
at com.example.FormProcessServlet.doPost(FormProcessServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:558)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:488)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:483)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:973)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:417)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:907)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:941)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
Agregué esta línea al archivo ''eclipse.ini'' que está presente dentro de la carpeta eclipse.
-vm C: / Archivos de programa / Java / jdk1.8.0_131 / bin / javaw.exe
y también cambio el camino de JRE en eclipse
ventanas -> preferencias -> java -> JRE instalados
y siempre ruta hasta jdk
C: / Archivos de programa / Java / jdk1.8.0_131
Como Jan Bartel sugirió, desde Jetty: Cómo configurar JSP :
al agregar la línea a continuación en el start.ini
start.ini en Eclipse, funciona bien.
-Dorg.apache.jasper.compiler.disablejsr199=true
En liferay 7: Solucioné este error cambiando el entorno de ejecución del servidor de jre a jre con jdk
Extraño porque este hilo sugiere:
La solución fue instalar el paquete jdk7-openjdk .
Quizás esto debería agregarse a la lista de dependencias (o tal vez para embarcadero, y no para solr).
Pero eso no ayuda mucho en Windows, donde el binario para openjdk7 no está disponible fácilmente.
(En los comentarios de " Disponibilidad de OpenJDK para Windows OS ", eckes menciona haber encontrado algunos binarios de openjdk para Windows , como parte de Build b146 . Sin embargo, dichas versiones ya no se mantienen)
El informe de error llenado por se cierra con una simple referencia a la página wiki de Eclipse "Jetty / Howto / Configure JSP" .
Obtuve el error PWC6345 al ejecutar una aplicación web con el complemento Run-Jetty-Run.
La solución fue cambiar la configuración de los entornos de ejecución en Preferencias. Como estoy usando Java 7, necesitaba cambiar la configuración de JavaSE-1.7. Probablemente, otros entornos de ejecución se comportarán de manera similar.
Ventana -> Preferencias -> Java -> JRE instalados -> Entornos de ejecución
Seleccione JavaSE-1.7 a la izquierda -> elija el * jdk * 1.7.x_xx en el lado derecho
Obtuve el error PWC6345 cuando ejecuté jetty-runner 9.2.1 autónomo desde Windows 7 cmd (o archivo por lotes) con Oracle JDK 1.7.0_60, y ninguna de las otras sugerencias en este u otros foros funcionó. Dejaré mi solución aquí, en caso de que ayude a alguien ...
Después de instalar el JDK, ejecutar ''where java'' mostró dos rutas diferentes de java.exe, la primera en la carpeta del sistema de Windows y la segunda en la carpeta JDK (que es la que agregué a la ruta de forma manual). Ambos están instalados por el mismo instalador JDK. El java.exe en la carpeta del sistema tenía prioridad y hacía que el JDK completo no se detectara.
Colocar la carpeta bin JDK (por ejemplo, "C: / Archivos de programa / java / jdk1.7.0_60 / bin") en la ruta antes de que las otras rutas del sistema corrigieran el problema.
Ok, solucionado esto después de un montón de búsquedas.
Descarga cualquier jdk y apunta JAVA_HOME a este jdk. Dentro de esta carpeta jdk encontrará ./bin y ./jre/bin. Copie el javac de ./bin y péguelo en ./jre/bin [recuerde que copiar no cortó]
Ahora, en eclipse, Ejecutar-> Herramientas-externas-> Configuraciones-Herramientas-externas , seleccione build.xml para su proyecto en el panel izquierdo y haga clic en la pestaña JRE en el panel derecho. Haga clic en JRE instalados y agregue el jdk en el paso anterior. Una vez hecho esto, seleccione este nuevo JRE (jdk1.6.0_31) como ''JRE Separado'', haga clic en aplicar en la parte inferior y ejecute.
Esto supone que estás haciendo un embarcadero: ejecuta usando hormiga en eclipse.
Pasé buena cantidad de tiempo en este tema, pero resultó ser muy simple. Todo lo que tienes que hacer es:
¡elija el JDK en lugar de JRE mientras configura el tiempo de ejecución del servidor!
Funcionó como un campeón, tuve este problema con glassFish 4.0
Recibí este error al implementar el paquete de guerra en nuestro servidor.
Mi comando deploy es (contenedor web aplicado que puede encontrar):
java -jar jetty-runner.jar --port 8020 xx.war
Escribo esta respuesta porque me confundió casi un día. Intenté algunos métodos más arriba pero fallé.
Finalmente encontré que solo hay jre en mis servidores pero no full jdk.
$ls /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
jre
Lo soluciono buscando en jdk disponible e instalo uno.
$yum search java | grep ''java-''
$sudo yum install java-1.8.0-openjdk-devel.x86_64
(Observe el -devel
)
También tuve la repentina org.apache.jasper.JasperException: PWC6345
obtener org.apache.jasper.JasperException: PWC6345
con mi instalación Eclipse y el Plugin Jetty Maven (que utilizo para iniciar Jetty desde Eclipse).
La razón fue que actualicé mi instalación JDK poco antes. Dentro de Eclipse, esto provocó que se cambiara el " JRE instalado " para apuntar a una instalación JRE simple en lugar de una instalación JDK completa. Se necesita una instalación JDK para Jasper, ya que Jasper necesita javac
(que no es proporcionado por JRE).
En mi caso, la solución fue proporcionar a Eclipse la instalación de JDK. Para hacerlo, seleccione Ventana -> Preferencias -> Java -> JRE instalados . Aquí, haga clic en Agregar ... , luego apunte a su instalación de JDK (en mi caso, la página de inicio de JRE debe apuntar a C:/Program Files (x86)/Java/jdk1.7.0_17
). Haga clic en Finalizar . Luego, de vuelta en la descripción general de JREs instalados , elimine la referencia anterior de JRE y seleccione la instalación de JDK recién agregada .
Tengo el mismo problema. Cuando corro where java
, la salida es:
C: / Windows / System32 / java.exe
D: / Archivos de programa / Java / jdk1.7.0_25 / bin / java.exe
Por supuesto, el primero es incorrecto. Entonces mi problema radica en la RUTA. Puedo rectificar esto eliminando java.exe en el directorio C: / Windows / System32 / porque estoy seguro de que es inútil, o poniendo la segunda entrada en frente de la primera.
Entonces, cuando encuentre este problema, verifique su RUTA para el jdk. Espero que mi problema y mi solución sean útiles de alguna manera.
Tienes soluciones planty chicos pero pensé que existe una solución mejor que arreglar start.ini
Viví el mismo problema y luego me di cuenta de que podría ser porque tenía un JDK7 para 64 bits, mientras que debería tener un JDK7 para 32.
Así que arreglé mi problema descargando y uso el JDK7 para 32 bits.
Además, aún necesitarías
- Usa el JDK y no el JRE
- Configura tu JAVA_HOME
Estoy corriendo en Windows por cierto ...
si configura la variable de entorno JRE_HOME
, JRE_HOME
o elimínela y vuelva a iniciar el servidor.