Please create a GitHub repo with your code and I'll take a look. Note that
the examples from the book were tested only on Tomcat, and a pretty long
time ago. I'll need any server details you're using.

Also note that S2 is fairly different now than when the book was written.

On Sun, Nov 12, 2017 at 8:26 AM albert kao <[email protected]> wrote:

> struts2 version: 2.1.6
>
> On Sat, Nov 11, 2017 at 9:47 PM, Dave Newton <[email protected]>
> wrote:
>
> > What version of Struts 2 are you attempting to use?
> >
> > On Sat, Nov 11, 2017 at 5:58 PM albert kao <[email protected]> wrote:
> >
> > > I downloaded the source code of the book "Apache Struts 2 Web
> Application
> > > Development" by Dave Newton from the
> > > https://www.packtpub.com/books/content/support.
> > >
> > > Chapter 2 had compile error with Apache Maven 3.5.0.
> > > $ mvn -version
> > > Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426;
> > > 2017-04-03T15:39:06-04:00)
> > > Maven home: /home/alkao/maven/apache-maven-3.5.0
> > > Java version: 1.8.0_144, vendor: Oracle Corporation
> > > Java home: /home/alkao/jdk/jdk1.8.0_144/jre
> > > Default locale: en_CA, platform encoding: UTF-8
> > > OS name: "linux", version: "4.4.0-21-generic", arch: "i386", family:
> > "unix"
> > >
> > > To fix it, I removed just the <scope> tag in pom.xml.
> > > Then run mvn:
> > > $ cd
> > > /home/alkao/Struts2/Apache_Struts_2_Web_Application_
> > Development/ch02/sanity
> > > $ mvn clean package
> > >
> > > Running wildfly-10.1.0.Final:
> > > $ JBOSS_HOME/bin/standalone.sh
> > > $ jboss-cli.sh --connect --command="deploy
> > >
> > > /home/alkao/Struts2/Apache_Struts_2_Web_Application_
> > Development/ch02/sanity/target/ch02-sanity-1.0.war
> > > --force"
> > >
> > > Running these 3 http links resulted in the same error in the web
> browser
> > > below.
> > > Please help. Thanks.
> > > http://localhost:8080/ch02-sanity-1.0/index.html
> > > http://localhost:8080/ch02-sanity-1.0/sanity.jsp
> > > http://localhost:8080/ch02-sanity-1.0/sanity.action
> > >
> > >
> > >
> > >
> > > Error processing request
> > > Context Path:
> > > /ch02-convention-1.0
> > >
> > > Servlet Path:
> > > /index.html
> > >
> > > Path Info:
> > > null
> > >
> > > Query String:
> > > null
> > >
> > > Stack Trace
> > > java.lang.NullPointerException
> > >
> > > com.opensymphony.xwork2.util.FileManager$FileRevision.
> > needsReloading(FileManager.java:209)
> > >
> > > com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(
> > FileManager.java:60)
> > >
> > > com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.
> > needsReload(XmlConfigurationProvider.java:325)
> > >
> > > org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(
> > StrutsXmlConfigurationProvider.java:168)
> > >
> > > com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(
> > ConfigurationManager.java:220)
> > >
> > > com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(
> > ConfigurationManager.java:61)
> > > org.apache.struts2.dispatcher.Dispatcher.getContainer(
> > Dispatcher.java:774)
> > >
> > >
> org.apache.struts2.dispatcher.ng.InitOperations.initStaticContentLoader(
> > InitOperations.java:77)
> > >
> > > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.
> > init(StrutsPrepareAndExecuteFilter.java:49)
> > >
> > > io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(
> > LifecyleInterceptorInvocation.java:111)
> > >
> > > org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(
> > RunAsLifecycleInterceptor.java:84)
> > >
> > > io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(
> > LifecyleInterceptorInvocation.java:97)
> > > io.undertow.servlet.core.ManagedFilter.createFilter(
> > ManagedFilter.java:80)
> > > io.undertow.servlet.core.ManagedFilter.getFilter(ManagedFilter.java:66)
> > > io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
> > >
> > > io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.
> > doFilter(FilterHandler.java:131)
> > >
> > > io.undertow.servlet.handlers.FilterHandler.handleRequest(
> > FilterHandler.java:84)
> > >
> > > io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.
> > handleRequest(ServletSecurityRoleHandler.java:62)
> > >
> > > io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(
> > ServletDispatchingHandler.java:36)
> > >
> > > org.wildfly.extension.undertow.security.SecurityContextAssociationHand
> > ler.handleRequest(SecurityContextAssociationHandler.java:78)
> > >
> > > io.undertow.server.handlers.PredicateHandler.handleRequest(
> > PredicateHandler.java:43)
> > >
> > > io.undertow.servlet.handlers.security.SSLInformationAssociationHandl
> > er.handleRequest(SSLInformationAssociationHandler.java:131)
> > >
> > > io.undertow.servlet.handlers.security.ServletAuthenticationCallHandl
> > er.handleRequest(ServletAuthenticationCallHandler.java:57)
> > >
> > > io.undertow.server.handlers.PredicateHandler.handleRequest(
> > PredicateHandler.java:43)
> > >
> > > io.undertow.security.handlers.AbstractConfidentialityHandler
> > .handleRequest(AbstractConfidentialityHandler.java:46)
> > >
> > > io.undertow.servlet.handlers.security.ServletConfidentialityConstrai
> > ntHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
> > >
> > > io.undertow.security.handlers.AuthenticationMechanismsHandle
> > r.handleRequest(AuthenticationMechanismsHandler.java:60)
> > >
> > > io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHand
> > ler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
> > >
> > >
> io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(
> > NotificationReceiverHandler.java:50)
> > >
> > > io.undertow.security.handlers.AbstractSecurityContextAssocia
> > tionHandler.handleRequest(AbstractSecurityContextAssocia
> > tionHandler.java:43)
> > >
> > > io.undertow.server.handlers.PredicateHandler.handleRequest(
> > PredicateHandler.java:43)
> > >
> > > org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.
> > handleRequest(JACCContextIdHandler.java:61)
> > >
> > > io.undertow.server.handlers.PredicateHandler.handleRequest(
> > PredicateHandler.java:43)
> > >
> > > io.undertow.server.handlers.PredicateHandler.handleRequest(
> > PredicateHandler.java:43)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(
> > ServletInitialHandler.java:292)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler.access$
> > 100(ServletInitialHandler.java:81)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler$2.call(
> > ServletInitialHandler.java:138)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler$2.call(
> > ServletInitialHandler.java:135)
> > >
> > > io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(
> > ServletRequestContextThreadSetupAction.java:48)
> > >
> > > io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(
> > ContextClassLoaderSetupAction.java:43)
> > >
> > > io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(
> > LegacyThreadSetupActionWrapper.java:44)
> > >
> > > io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(
> > LegacyThreadSetupActionWrapper.java:44)
> > >
> > > io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(
> > LegacyThreadSetupActionWrapper.java:44)
> > >
> > > io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(
> > LegacyThreadSetupActionWrapper.java:44)
> > >
> > > io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(
> > LegacyThreadSetupActionWrapper.java:44)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(
> > ServletInitialHandler.java:272)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler.access$
> > 000(ServletInitialHandler.java:81)
> > >
> > > io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(
> > ServletInitialHandler.java:104)
> > > io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
> > >
> io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
> > >
> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
> > ThreadPoolExecutor.java:1149)
> > >
> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > ThreadPoolExecutor.java:624)
> > > java.lang.Thread.run(Thread.java:748)
> > >
> > --
> > e: [email protected]
> > m: 908-380-8699
> > s: davelnewton_skype
> > t: @dave_newton <https://twitter.com/dave_newton>
> > b: Bucky Bits <http://buckybits.blogspot.com/>
> > g: davelnewton <https://github.com/davelnewton>
> > so: Dave Newton <http://stackoverflow.com/users/438992/dave-newton>
> >
>
-- 
e: [email protected]
m: 908-380-8699
s: davelnewton_skype
t: @dave_newton <https://twitter.com/dave_newton>
b: Bucky Bits <http://buckybits.blogspot.com/>
g: davelnewton <https://github.com/davelnewton>
so: Dave Newton <http://stackoverflow.com/users/438992/dave-newton>

Reply via email to