java - ¿Cómo habilito la compilación sobre la marcha de JSP en Wildfly 9?
jboss compilation (3)
Busca el subsistema y agrégalo a la configuración jsp
<subsystem xmlns="urn:jboss:domain:undertow:1.1"><br>. . . .<br> <servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
Estoy usando Wildfly 9.0.0.CR2. ¿Cómo habilito la compilación de JSP sobre la marcha? Encontré esta configuración en otro hilo
<subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" native="false">
<configuration>
<jsp-configuration development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</configuration>
</subsystem>
pero, por desgracia, no funciona, resulta en gin la siguiente excepción cuando reinicio mi servidor JBoss ...
14:23:05,224 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:131)
at org.jboss.as.server.ServerService.boot(ServerService.java:350)
at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:271)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[442,2]
Message: Unexpected element ''{urn:jboss:domain:web:1.4}subsystem''
at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:108)
at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69)
at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:1199)
at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_4(StandaloneXml.java:457)
at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:144)
at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:106)
at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110)
at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69)
at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123)
... 3 more
Asegúrese de estar cargando la extensión de resaca. De lo contrario, la configuración del subsistema no se puede cargar. Aparte de eso, tu sintaxis es correcta.
<extensions>
<!-- other extensions here -->
<extension module="org.wildfly.extension.undertow"/>
</extensions>
Este es un problema de análisis XML como se evidencia en este mensaje de error javax.xml.stream.XMLStreamException: ParseError
. El análisis falló para esta línea en particular. Unexpected element{urn:jboss:domain:web:1.4}subsystem
.
Puede ver los documentos de esquema XML para descubrir estos tipos de problemas de análisis XML. Los esquemas se encuentran en la carpeta docs de WildFly.
Por cierto, debería usar la versión de compilación WildFly-9.0.1.Final
, ya que es la última versión candidata de lanzamiento.
Lo más probable es que necesite realizar los cambios en el subsistema de resaca. He actualizado un ejemplo a continuación:
<subsystem xmlns="urn:jboss:domain:undertow:2.0">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
Recomiendo usar CLI para hacer esos cambios:
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=development,value=true)
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=recompile-on-fail,value=true)
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=check-interval,value=1)
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=modification-test-interval,value=1)
De esta forma puede evitar estos errores de análisis XML sin tener que encontrar los esquemas XML exactos.