10 Replies Latest reply on May 6, 2013 10:30 AM by keeper3000

    Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?

    keeper3000

      Hi Everyone,

       

      We downloaded and compiled Jboss 7.1.4 using the build.bat.  We also have the following in our configuration xml file:

       

              <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

                  <configuration>

                      <jsp-configuration development="true"/>

                  </configuration>

       

      However, just like in Jboss 7.1.1 Jsp will not pickup until a server restart.  I even went into the work folder and deleted the compiled java files.  Is the Jsp Hot Deploy broken again in 7.1.4 like it was in 7.1.1?

      Is it because we are using a war file directory as opposed to a zipped war file?  btw... We are using a war file directory in development just to speed deployment times because of the large size of the project

       

      I also noticed there are some additional properties available such as check-interval, and keep-generated that are available, however I do not know if those are factors.


      Thank you in advance!  We love the JBoss community!

       

      -Michael

        • 1. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
          keeper3000

          btw.... I have verified that it still doesn't work using a .war file.

          • 2. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
            jaikiran

            Michael, welcome to the forums. What exactly do you mean when you say hot deploy isn't working? You typically don't require a server restart for hot deployment, but your post seems to suggest you are restarting it. Also, when you do restart it, do you see that the jsp-configuration is still around in that standalone*.xml file (by the which exact file did you change)?

            • 3. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
              keeper3000

              What I mean is I goto my default.jsp file in either the deployed folder or the extracted tmp folder and make content changes to the JSP file...  Then, when I goto the application I don't see any of my changes.

               

              For example I went to default.jsp and put the word "test" at the top and saved it to my standalone/deployments/myproject.war file or in the tmp/vfs/myproject.war/default.jsp and then refreshed the page and did not see a change.

               

              I created my own standalone-mzp.xml file that I'm using and I do still see the change in that file.  My JBoss is being launched with --server-config=standalone-mzp.xml  and I can verify that it is getting all of my other configurations.

               

              Thank you btw Jaikiran for responding!

              • 4. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                keeper3000

                I've also tried C:\jboss-as-8.0.0.Alpha1-SNAPSHOT with the latest stable nightly and am still unable to get the server to recognize a change to any jsp files?

                 

                With 8.0.0 I'm using the default undertow configuration:

                        <subsystem xmlns="urn:jboss:domain:undertow:1.0">

                            <server name="default-server">

                                <http-listener name="default" socket-binding="http"/>

                                <host name="default-host" alias="localhost">

                                    <location name="/">

                                        <file path="${jboss.home.dir}/welcome-content" cache-buffer-size="1024" cache-buffers="1024"/>

                                    </location>

                                </host>

                            </server>

                            <servlet-container name="default">

                                <jsp-config/>

                            </servlet-container>

                        </subsystem>

                • 5. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                  ctomc

                  Hi,

                   

                  undertow subsystem does not fully support configuring jsp parameters yet. It is stilly early in development process.

                  I hope i will have this part done by next week as i am just working on that...

                   

                   

                  in any case reloading of jsps should work in every version since 7.1.2 and up.

                   

                  for current nightly build of WildFly you can still use jbossweb (instead of undertow) by running jboss with -c standalone-jbossweb.xml

                   

                  where you have web subsystem as you know if from 7.x series of Jboss AS.

                   

                  --

                  tomaz

                  • 6. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                    jaikiran

                    That should have worked. Can you attach that standalone-mzp.xml to this thread?

                    • 7. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                      keeper3000

                      <?xml version='1.0' encoding='UTF-8'?>

                       

                       

                      <server xmlns="urn:jboss:domain:1.2">

                       

                       

                          <extensions>

                              <extension module="org.jboss.as.clustering.infinispan"/>

                              <extension module="org.jboss.as.configadmin"/>

                              <extension module="org.jboss.as.connector"/>

                              <extension module="org.jboss.as.deployment-scanner"/>

                              <extension module="org.jboss.as.ee"/>

                              <extension module="org.jboss.as.ejb3"/>

                              <extension module="org.jboss.as.jaxrs"/>

                              <extension module="org.jboss.as.jdr"/>

                              <extension module="org.jboss.as.jmx"/>

                              <extension module="org.jboss.as.jpa"/>

                              <extension module="org.jboss.as.logging"/>

                              <extension module="org.jboss.as.mail"/>

                              <extension module="org.jboss.as.naming"/>

                              <extension module="org.jboss.as.osgi"/>

                              <extension module="org.jboss.as.pojo"/>

                              <extension module="org.jboss.as.remoting"/>

                              <extension module="org.jboss.as.sar"/>

                              <extension module="org.jboss.as.security"/>

                              <extension module="org.jboss.as.threads"/>

                              <extension module="org.jboss.as.transactions"/>

                              <extension module="org.jboss.as.web"/>

                              <extension module="org.jboss.as.webservices"/>

                              <extension module="org.jboss.as.weld"/>

                          </extensions>

                       

                       

                          <system-properties>

                              <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="on"/>

                              <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES" value="text/javascript,text/css,text/html,text/xml,text/json"/>

                          </system-properties>

                       

                       

                          <management>

                              <security-realms>

                                  <security-realm name="ManagementRealm">

                                      <authentication>

                                          <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                                      </authentication>

                                  </security-realm>

                                  <security-realm name="ApplicationRealm">

                                      <authentication>

                                          <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                                      </authentication>

                                  </security-realm>

                              </security-realms>

                              <management-interfaces>

                                  <native-interface security-realm="ManagementRealm">

                                      <socket-binding native="management-native"/>

                                  </native-interface>

                                  <http-interface security-realm="ManagementRealm">

                                      <socket-binding http="management-http"/>

                                  </http-interface>

                              </management-interfaces>

                          </management>

                       

                       

                          <profile>

                              <subsystem xmlns="urn:jboss:domain:logging:1.1">

                                  <console-handler name="CONSOLE">

                                      <level name="INFO"/>

                                      <formatter>

                                          <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>

                                      </formatter>

                                  </console-handler>

                                  <periodic-rotating-file-handler name="FILE" autoflush="true">

                                      <level name="DEBUG"/>

                                      <formatter>

                                          <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>

                                      </formatter>

                                      <file relative-to="jboss.server.log.dir" path="server.log"/>

                                      <suffix value=".yyyy-MM-dd"/>

                                      <append value="false"/>

                                  </periodic-rotating-file-handler>

                                  <logger category="com.arjuna">

                                      <level name="WARN"/>

                                  </logger>

                                  <logger category="org.apache.tomcat.util.modeler">

                                      <level name="WARN"/>

                                  </logger>

                                  <logger category="sun.rmi">

                                      <level name="WARN"/>

                                  </logger>

                                  <logger category="javax">

                                      <level name="INFO"/>

                                  </logger>

                                  <logger category="com.sun">

                                      <level name="INFO"/>

                                  </logger>

                                  <logger category="jacorb">

                                      <level name="WARN"/>

                                  </logger>

                                  <logger category="jacorb.config">

                                      <level name="ERROR"/>

                                  </logger>

                                  <logger category="org.jboss">

                                      <level name="INFO"/>

                                  </logger>

                                  <logger category="org.apache">

                                      <level name="INFO"/>

                                  </logger>

                                  <root-logger>

                                      <level name="DEBUG"/>

                                      <handlers>

                                          <handler name="CONSOLE"/>

                                          <handler name="FILE"/>

                                      </handlers>

                                  </root-logger>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:configadmin:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:datasources:1.0">

                                  <datasources>

                                      <datasource jta="false" jndi-name="java:/jdbc/mz_plus/cloud" pool-name="cloud" enabled="true" use-ccm="false">

                                          <connection-url>jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxx)(PORT = 1521))(CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = xxx)    )  )</connection-url>

                                          <driver-class>oracle.jdbc.OracleDriver</driver-class>

                                          <driver>ojdbc6-nonxa</driver>

                                          <security>

                                              <user-name>xxxxxxxx</user-name>

                                              <password>xxxxxxxx</password>

                                          </security>

                                          <validation>

                                              <validate-on-match>false</validate-on-match>

                                              <background-validation>false</background-validation>

                                          </validation>

                                          <statement>

                                              <share-prepared-statements>false</share-prepared-statements>

                                          </statement>

                                      </datasource>

                                      <datasource jta="false" jndi-name="java:/jdbc/conxons" pool-name="conxons" enabled="true" use-ccm="false">

                                          <connection-url>jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxxx)(PORT = 1521))(CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = xxx)    )  )</connection-url>

                                          <driver-class>oracle.jdbc.OracleDriver</driver-class>

                                          <driver>ojdbc6-nonxa</driver>

                                          <security>

                                              <user-name>xxxxxxxxxx</user-name>

                                              <password>xxxxxxxxx</password>

                                          </security>

                                          <validation>

                                              <validate-on-match>false</validate-on-match>

                                              <background-validation>false</background-validation>

                                          </validation>

                                          <statement>

                                              <share-prepared-statements>false</share-prepared-statements>

                                          </statement>

                                      </datasource>

                                      <drivers>

                                          <driver name="ojdbc6" module="oracle.jdbc">

                                              <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>

                                          </driver>

                                          <driver name="ojdbc6-nonxa" module="oracle.jdbc">

                                              <xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>

                                          </driver>

                                      </drivers>

                                  </datasources>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">

                                  <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" deployment-timeout="1200"/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:ee:1.0">

                                  <global-modules>

                                      <module name="oracle.jdbc" slot="main"/>

                                  </global-modules>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:ejb3:1.2">

                                  <session-bean>

                                      <stateless>

                                          <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                                      </stateless>

                                      <stateful default-access-timeout="5000" cache-ref="simple"/>

                                      <singleton default-access-timeout="5000"/>

                                  </session-bean>

                                  <pools>

                                      <bean-instance-pools>

                                          <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                          <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                      </bean-instance-pools>

                                  </pools>

                                  <caches>

                                      <cache name="simple" aliases="NoPassivationCache"/>

                                      <cache name="passivating" passivation-store-ref="file" aliases="SimpleStatefulCache"/>

                                  </caches>

                                  <passivation-stores>

                                      <file-passivation-store name="file"/>

                                  </passivation-stores>

                                  <async thread-pool-name="default"/>

                                  <timer-service thread-pool-name="default">

                                      <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/>

                                  </timer-service>

                                  <remote connector-ref="remoting-connector" thread-pool-name="default"/>

                                  <thread-pools>

                                      <thread-pool name="default">

                                          <max-threads count="10"/>

                                          <keepalive-time time="100" unit="milliseconds"/>

                                      </thread-pool>

                                  </thread-pools>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate">

                                  <cache-container name="mzpcachecontainer" default-cache="cardcache">

                                      <local-cache name="cardcache" start="EAGER" jndi-name="mzpTokenCache">

                                          <transaction mode="NONE"/>

                                          <eviction strategy="NONE"/>

                                      </local-cache>

                                  </cache-container>

                                  <cache-container name="hibernate" default-cache="local-query">

                                      <local-cache name="entity">

                                          <transaction mode="NON_XA"/>

                                          <eviction strategy="LRU" max-entries="10000"/>

                                          <expiration max-idle="100000"/>

                                      </local-cache>

                                      <local-cache name="local-query">

                                          <transaction mode="NONE"/>

                                          <eviction strategy="LRU" max-entries="10000"/>

                                          <expiration max-idle="100000"/>

                                      </local-cache>

                                      <local-cache name="timestamps">

                                          <transaction mode="NONE"/>

                                          <eviction strategy="NONE"/>

                                      </local-cache>

                                  </cache-container>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:jca:1.1">

                                  <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                                  <bean-validation enabled="true"/>

                                  <default-workmanager>

                                      <short-running-threads>

                                          <core-threads count="50"/>

                                          <queue-length count="50"/>

                                          <max-threads count="50"/>

                                          <keepalive-time time="10" unit="seconds"/>

                                      </short-running-threads>

                                      <long-running-threads>

                                          <core-threads count="50"/>

                                          <queue-length count="50"/>

                                          <max-threads count="50"/>

                                          <keepalive-time time="10" unit="seconds"/>

                                      </long-running-threads>

                                  </default-workmanager>

                                  <cached-connection-manager/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:jmx:1.1">

                                  <show-model value="true"/>

                                  <remoting-connector/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:jpa:1.0">

                                  <jpa default-datasource=""/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:mail:1.0">

                                  <mail-session jndi-name="java:jboss/mail/Default" debug="true">

                                      <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                                  </mail-session>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:naming:1.1"/>

                              <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">

                                  <properties>

                                      <property name="org.osgi.framework.startlevel.beginning">

                                          1

                                      </property>

                                  </properties>

                                  <capabilities>

                                      <capability name="javax.servlet.api:v25"/>

                                      <capability name="javax.transaction.api"/>

                                      <capability name="org.apache.felix.log" startlevel="1"/>

                                      <capability name="org.jboss.osgi.logging" startlevel="1"/>

                                      <capability name="org.apache.felix.configadmin" startlevel="1"/>

                                      <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

                                  </capabilities>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:remoting:1.1">

                                  <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

                              <subsystem xmlns="urn:jboss:domain:security:1.1">

                                  <security-domains>

                                      <security-domain name="other" cache-type="default">

                                          <authentication>

                                              <login-module code="Remoting" flag="optional">

                                                  <module-option name="password-stacking" value="useFirstPass"/>

                                              </login-module>

                                              <login-module code="RealmUsersRoles" flag="required">

                                                  <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>

                                                  <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>

                                                  <module-option name="realm" value="ApplicationRealm"/>

                                                  <module-option name="password-stacking" value="useFirstPass"/>

                                              </login-module>

                                          </authentication>

                                      </security-domain>

                                      <security-domain name="jboss-web-policy" cache-type="default">

                                          <authorization>

                                              <policy-module code="Delegating" flag="required"/>

                                          </authorization>

                                      </security-domain>

                                      <security-domain name="jboss-ejb-policy" cache-type="default">

                                          <authorization>

                                              <policy-module code="Delegating" flag="required"/>

                                          </authorization>

                                      </security-domain>

                                  </security-domains>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:threads:1.1"/>

                              <subsystem xmlns="urn:jboss:domain:transactions:1.1">

                                  <core-environment>

                                      <process-id>

                                          <uuid/>

                                      </process-id>

                                  </core-environment>

                                  <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                                  <coordinator-environment default-timeout="300"/>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

                                  <configuration>

                                      <jsp-configuration development="true"/>

                                  </configuration>

                                  <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

                                  <virtual-server name="default-host" enable-welcome-root="true">

                                      <alias name="localhost"/>

                                      <alias name="example.com"/>

                                  </virtual-server>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:webservices:1.1">

                                  <modify-wsdl-address>true</modify-wsdl-address>

                                  <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                                  <endpoint-config name="Standard-Endpoint-Config"/>

                                  <endpoint-config name="Recording-Endpoint-Config">

                                      <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                                          <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                                      </pre-handler-chain>

                                  </endpoint-config>

                              </subsystem>

                              <subsystem xmlns="urn:jboss:domain:weld:1.0"/>

                          </profile>

                       

                       

                          <interfaces>

                              <interface name="management">

                                  <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

                              </interface>

                              <interface name="public">

                                  <inet-address value="${jboss.bind.address:127.0.0.1}"/>

                              </interface>

                              <interface name="unsecure">

                                  <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

                              </interface>

                          </interfaces>

                       

                       

                          <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

                              <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

                              <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

                              <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>

                              <socket-binding name="ajp" port="8009"/>

                              <socket-binding name="http" port="8080"/>

                              <socket-binding name="https" port="8443"/>

                              <socket-binding name="osgi-http" interface="management" port="8090"/>

                              <socket-binding name="remoting" port="4447"/>

                              <socket-binding name="txn-recovery-environment" port="4712"/>

                              <socket-binding name="txn-status-manager" port="4713"/>

                              <outbound-socket-binding name="mail-smtp">

                                  <remote-destination host="xxxxxxxx.rossgroupinc.com" port="25"/>

                              </outbound-socket-binding>

                          </socket-binding-group>

                       

                       

                      </server>

                      • 8. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                        ctomc

                        Hi,

                         

                        does anything changes if you add check-interval="1" (= check every 1 second) to configuration

                        • 9. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                          keeper3000

                          I tried development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true" and combinations and still the same result.  Any hits on how to debug this?

                          • 10. Re: Jsp Hot Deploy in Jboss(WildFly) 7.1.4 Working?
                            keeper3000

                            Got it!!!

                             

                            So the above configuration needs to be present: 

                             

                                    <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>

                             

                            It was failing because I was upgrading incorrectly.  I was copying our previous  modules folder overtop of the installation.  We have some 100+ modules used within our application.

                            So essentially I was downgrading JBoss by doing so.

                             

                            To resolve the problem, I copied the entire jboss 8 libraries overtop of my modules folder.

                             

                            What clued me in was that when I was merging the jboss 8 with my standalone-mzp.xml configuration file, I noticed I would get a classnotfound exception when attempting to utilize newer jboss 8 subsystems.

                             

                            Thank you everyone.  Maybe this answer will help someone else!