I was helping my team to migrate an application that was running on WebSphere Application Server to JBoss. The web application was using struts as the framework. The application did not show any error message in the IDE. The IDE we were using was JBoss Developer Studio. However at the time of deployment we get an error message like this
INFO [ContainerBase] Marking servlet action as unavailable ERROR [ContainerBase] Servlet /XXXWeb threw load() exception org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
This makes our struts framework unavailable to the application.
After doing some research work we found a solution to this problem. Remove bundled commons-logging.jar from web application. I.e., remove commons-logging.jar from WEB-INF\lib folder of your web application.
I am not sure about the reason for this behavior. Seems like a bug to me. May be a bug in JBoss, Eclipse or JBoss Developer studio.