I did as you said and did not get any exception!

Could you please add following line to catalina.bat:

set "JAVA_OPTS=-XX:+TraceClassLoading -XX:+TraceClassUnloading"

then:

catalina.bat run > my_tomcat.log 2>&1

then finally search my_tomcat.log for MethodUtils?

I would like to see from where your tomcat load MethodUtils class!


On 9/2/2017 7:06 PM, albert kao wrote:
> My hello-world.war has the commons lang3 3.6:
> hello-world/WEB-INF/lib
> hello-world/WEB-INF/lib/commons-fileupload-1.3.3.jar
> hello-world/WEB-INF/lib/ognl-3.1.12.jar
> hello-world/WEB-INF/lib/struts2-core-2.5.12.jar
> hello-world/WEB-INF/lib/freemarker-2.3.23.jar
> hello-world/WEB-INF/lib/log4j-core-2.8.2.jar
> hello-world/WEB-INF/lib/log4j-api-2.8.2.jar
> hello-world/WEB-INF/lib/commons-io-2.4.jar
> hello-world/WEB-INF/lib/javassist-3.20.0-GA.jar
> hello-world/WEB-INF/lib/commons-lang3-3.6.jar
>
> However, the helloworld link in index.jsp did not see it.
>
>
> On Sat, Aug 26, 2017 at 7:43 PM, Yasser Zamani <yasser.zam...@live.com>
> wrote:
>
>> I checked it's codes and seems ok. It has a dependency to struts 2.5.12
>> which has (not optional) dependency to commons lang3 3.6. So you should
>> have commons lang3 3.6 in your war lib. Do you? Or maybe you have lower
>> version of commons lang3 jar in your tomcat lib? Please check both.
>>
>> albert kao <albertk...@gmail.com> نوشت:
>>
>>> I downloaded struts-examples-master.zip from
>>> https://github.com/apache/struts-examples.
>>> Unzip it and run mvn.
>>>
>>> # mvn -version
>>> Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5;
>>> 2015-11-10T11:41:47-05:00)
>>> Maven home: /home/alkao/maven/apache-maven-3.3.9
>>> Java version: 1.8.0_131, vendor: Oracle Corporation
>>> Java home: /home/alkao/jdk/jdk1.8.0_131/jre
>>> Default locale: en_CA, platform encoding: UTF-8
>>> OS name: "linux", version: "4.4.0-21-generic", arch: "i386", family:
>> "unix"
>>>
>>>
>>> $ mvn -e clean package
>>> [INFO] Error stacktraces are turned on.
>>> [INFO] Scanning for projects...
>>> [WARNING]
>>> [WARNING] Some problems were encountered while building the effective
>> model
>>> for org.apache.struts:annotations:war:1.0.0
>>> [WARNING] The expression ${artifactId} is deprecated. Please use
>>> ${project.artifactId} instead.
>>> [WARNING]
>>> ...
>>> [WARNING]
>>> [WARNING] It is highly recommended to fix these problems because they
>>> threaten the stability of your build.
>>> [WARNING]
>>> [WARNING] For this reason, future Maven versions might no longer support
>>> building such malformed projects.
>>> [WARNING]
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] Reactor Build Order:
>>> [INFO]
>>> ...
>>> [INFO] Building Action chaining 1.0-SNAPSHOT
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> Downloading:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-compiler-plugin/3.3/maven-compiler-plugin-3.3.pom
>>> Downloaded:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-compiler-plugin/3.3/maven-compiler-plugin-3.3.pom
>>> (12 KB at 21.7 KB/sec)
>>> Downloading:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-plugins/27/maven-plugins-27.pom
>>> Downloaded:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-plugins/27/maven-plugins-27.pom
>>> (0 B at 0.0 KB/sec)
>>> Downloading:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> maven-parent/26/maven-parent-26.pom
>>> Downloaded:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> maven-parent/26/maven-parent-26.pom
>>> (0 B at 0.0 KB/sec)
>>> Downloading:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-compiler-plugin/3.3/maven-compiler-plugin-3.3.jar
>>> Downloaded:
>>> https://repo.maven.apache.org/maven2/org/apache/maven/
>> plugins/maven-compiler-plugin/3.3/maven-compiler-plugin-3.3.jar
>>> (46 KB at 415.4 KB/sec)
>>> Downloading:
>>> https://repository.apache.org/content/groups/public/org/
>> apache/struts/struts2-core/2.5.12/struts2-core-2.5.12.pom
>>> Downloaded:
>>> https://repository.apache.org/content/groups/public/org/
>> apache/struts/struts2-core/2.5.12/struts2-core-2.5.12.pom
>>> (17 KB at 30.1 KB/sec)
>>> ...
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] BUILD SUCCESS
>>> ...
>>>
>>>
>>>
>>> Copy hello-world.war to Apache TomEE:
>>> # cp helloworld/target/hello-world.war $CATALINA_HOME/webapps/.
>>>
>>>
>>> In a browser accessing URL:
>>> http://localhost:8080/hello-world/index.jsp
>>>
>>>
>>> which display:
>>> "Welcome To Struts 2!
>>>
>>> Hello World"
>>>
>>>
>>>
>>> Then clicking the 'Hello World' link got the url:
>>> http://localhost:8080/hello-world/hello.action;jsessionid=
>> 8EEA47306A76BAE87F665C6090D518E3
>>>
>>>
>>> which display:
>>> HTTP Status 500 - Filter execution threw an exception
>>>
>>> type Exception report
>>>
>>> message Filter execution threw an exception
>>>
>>> description The server encountered an internal error that prevented it
>> from
>>> fulfilling this request.
>>>
>>> exception
>>>
>>> javax.servlet.ServletException: Filter execution threw an exception
>>> root cause
>>>
>>> java.lang.NoSuchMethodError:
>>> org.apache.commons.lang3.reflect.MethodUtils.getAnnotation(Ljava/lang/
>> reflect/Method;Ljava/lang/Class;ZZ)Ljava/lang/annotation/Annotation;
>>> org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
>> r.doIntercept(AnnotationValidationInterceptor.java:47)
>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
>> MethodFilterInterceptor.java:98)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.
>> doIntercept(ConversionErrorInterceptor.java:139)
>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
>> MethodFilterInterceptor.java:98)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
>> ParametersInterceptor.java:134)
>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
>> MethodFilterInterceptor.java:98)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
>> ParametersInterceptor.java:134)
>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
>> MethodFilterInterceptor.java:98)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.
>> intercept(StaticParametersInterceptor.java:199)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.MultiselectInterceptor.intercept(
>> MultiselectInterceptor.java:69)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(
>> DateTextFieldInterceptor.java:115)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(
>> CheckboxInterceptor.java:88)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(
>> FileUploadInterceptor.java:246)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(
>> ModelDrivenInterceptor.java:99)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.
>> intercept(ScopedModelDrivenInterceptor.java:139)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(
>> ChainingInterceptor.java:157)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(
>> PrepareInterceptor.java:174)
>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
>> MethodFilterInterceptor.java:98)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.
>> java:123)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(
>> ServletConfigInterceptor.java:171)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.AliasInterceptor.
>> intercept(AliasInterceptor.java:201)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.
>> intercept(ExceptionMappingInterceptor.java:193)
>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(
>> DefaultActionInvocation.java:247)
>>> org.apache.struts2.factory.StrutsActionProxy.execute(
>> StrutsActionProxy.java:53)
>>> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:
>> 577)
>>> org.apache.struts2.dispatcher.ExecuteOperations.executeAction(
>> ExecuteOperations.java:81)
>>> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.
>> doFilter(StrutsPrepareAndExecuteFilter.java:143)
>>> note The full stack trace of the root cause is available in the Apache
>>> Tomcat (TomEE)/8.5.11 (7.0.3) logs.
>>>
>>> Apache Tomcat (TomEE)/8.5.11 (7.0.3)
>>
>

Reply via email to