Question

I am working on J2EE Application with RAD/WAS 8.5 runtime. I was cleaning up old jars in this very old project and referencing new jars. Everything was working fine, but after a workspace clean and a server restart I started getting these errors.

com.ibm.ws.jsp.taglib.TldParser logParseErrorMessage Failed to parse Tag Library [/WEB-INF/commontags.tld]: /WEB-INF/commontags.tld

com.ibm.ws.jsp.taglib.TldParser logParseErrorMessage Failed to parse Tag Library [/WEB-INF/displaytag.tld]: /WEB-INF/displaytag.tld

and

javax.servlet.UnavailableException: Missing configuration resource for path /WEB-INF/struts-config.xml

I am just not able to figure out if there's a problem with a missing jar or I have conflicting jars in my workspace. I have not changed any of the *.xml files or any code.

Any ideas with what will be the best possible way to debug this issue would be great. Thanks!

Update:

enter image description here

In web.xml:

<servlet>
    <description></description>
    <display-name></display-name>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
.
.
.    
<jsp-config>
    <taglib>
        <taglib-uri>commontags</taglib-uri>
        <taglib-location>/WEB-INF/commontags.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>http://displaytag.sourceforge.net/</taglib-uri>
        <taglib-location>/WEB-INF/displaytag.tld</taglib-location>
    </taglib>
</jsp-config>

I am not sure about newer versions for these jars. Are these covered in struts-taglibs or any other struts jars?!

enter image description here

WebSphere error log:

com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Loading Web Module: ‎MyWebProject.‎
WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Will create a new session ‎context for application key default_host/testhost
jsp           E com.ibm.ws.jsp.taglib.TldParser logParseErrorMessage Failed to parse Tag Library [/WEB-‎INF/commontags.tld]: /WEB-INF/commontags.tld
jsp           E com.ibm.ws.jsp.taglib.TldParser logParseErrorMessage Failed to parse Tag Library [/WEB-‎INF/displaytag.tld]: /WEB-INF/displaytag.tld
FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on ‎C:\IBM\WebSphere85\AppServer\profiles\testwas85\logs\ffdc\server1_d215675c_13.12.03_16.15.45.25‎‎03351670868379650030.txt com.ibm.ws.webcontainer.servlet.ServletWrapperImpl 272‎
ActionServlet I org.apache.struts.action.ActionServlet initChain Loading chain catalog from ‎wsjar:file:/C:/IBM/WebSphere85/AppServer/profiles/testwas85/installedApps/HJKGFL4Node05Cell/MyEARProject.ear/MyWebProject.war/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-‎config.xml
PropertyMessa W org.apache.struts.util.PropertyMessageResources loadLocale   Resource ‎org/apache/struts/action/ActionResources_en_US.properties Not Found.‎
PropertyMessa W org.apache.struts.util.PropertyMessageResources loadLocale   Resource ‎org/apache/struts/action/ActionResources_en.properties Not Found.‎
ActionServlet E org.apache.struts.action.ActionServlet splitAndResolvePaths Missing configuration ‎resource for path /WEB-INF/struts-config.xml
webapp        E com.ibm.ws.webcontainer.webapp.WebApp commonInitializationFinally SRVE0266E: ‎Error occured while initializing servlets: {0}
                                 javax.servlet.UnavailableException: Missing configuration resource for path /WEB-‎INF/struts-config.xml
at org.apache.struts.action.ActionServlet.splitAndResolvePaths(ActionServlet.java:1872)‎
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:683)‎
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:356)‎
at javax.servlet.GenericServlet.init(GenericServlet.java:161)‎
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:337)‎
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)‎
at ‎com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1360)‎
at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:606)‎
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:576)‎
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:425)‎
at ‎com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)‎
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)‎
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)‎
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)‎
at ‎com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)‎
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)‎
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1173)‎
at ‎com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)‎
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)‎
at ‎com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)‎
at ‎com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:772)‎
at ‎com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1367)‎
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2172)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)‎
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:11‎‎6)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(CompositionUnitMgrImpl.java:663)‎
at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5459)‎
at ‎com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5585)‎
at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:677)‎
at ‎com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:621)‎
at ‎com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1259)‎
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)‎
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)‎
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)‎
at java.lang.reflect.Method.invoke(Method.java:613)‎
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:68)‎
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)‎
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)‎
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)‎
at java.lang.reflect.Method.invoke(Method.java:613)‎
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287)‎
at ‎javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1256)‎
at java.security.AccessController.doPrivileged(AccessController.java:252)‎
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)‎
at ‎javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:125‎‎0)‎
at ‎javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1088)‎
at ‎com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:8‎‎31)‎
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:804)‎
at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1335)‎
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)‎
at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1228)‎
at ‎com.ibm.ws.management.application.sync.StartDeploymentTask.startDeployment(StartDeploymentTask.‎java:247)‎
at ‎com.ibm.ws.management.application.sync.StartDeploymentTask.fullAppUpdate(StartDeploymentTask.java:119)‎
at ‎com.ibm.ws.management.application.sync.StartDeploymentTask.performTask(StartDeploymentTask.java:107)‎
at ‎com.ibm.ws.management.application.sync.AppBinaryProcessor$ExpandApp.expand(AppBinaryProcessor.java:1709)‎
at ‎com.ibm.ws.management.application.sync.AppBinaryProcessor.postProcessSynchronousExt(AppBinaryProcessor.java:749)‎
at ‎com.ibm.ws.management.bla.sync.BLABinaryProcessor.postProcess(BLABinaryProcessor.java:590)‎
at ‎com.ibm.ws.management.bla.sync.BLABinaryProcessor.onChangeCompletion(BLABinaryProcessor.java‎:467)‎
at ‎com.ibm.ws.management.bla.sync.BinaryProcessorWrapper.onChangeCompletion(BinaryProcessorWrapper.java:109)‎
at com.ibm.ws.management.repository.FileRepository.postNotify(FileRepository.java:1924)‎
at com.ibm.ws.management.repository.FileRepository.update(FileRepository.java:1433)‎
at ‎com.ibm.ws.management.repository.client.LocalConfigRepositoryClient.update(LocalConfigRepositoryClient.java:189)‎
at ‎com.ibm.ws.sm.workspace.impl.WorkSpaceMasterRepositoryAdapter.update(WorkSpaceMasterRepositoryAdapter.java:665)‎
at ‎com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.update(RepositoryContextImpl.java:1998)‎
at ‎com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.synch(RepositoryContextImpl.java:1946)‎
at com.ibm.ws.sm.workspace.impl.WorkSpaceImpl.synch(WorkSpaceImpl.java:549)‎
at com.ibm.ws.management.configservice.ConfigServiceImpl.save(ConfigServiceImpl.java:719)‎
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)‎
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)‎
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)‎
at java.lang.reflect.Method.invoke(Method.java:613)‎
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:68)‎
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)‎
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)‎
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)‎
at java.lang.reflect.Method.invoke(Method.java:613)‎
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287)‎
at ‎javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1256)‎
at java.security.AccessController.doPrivileged(AccessController.java:252)‎
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)‎
at ‎javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:125‎‎0)‎
at ‎javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1088)‎
at ‎com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:8‎‎31)‎
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:804)‎
at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1335)‎
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)‎
at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1228)‎
at ‎com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:181)‎
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)‎
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)‎
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)‎
at java.lang.reflect.Method.invoke(Method.java:613)‎
at com.ibm.ws.management.connector.soap.SOAPConnector.invoke(SOAPConnector.java:478)‎
at com.ibm.ws.management.connector.soap.SOAPConnector.service(SOAPConnector.java:312)‎
at ‎com.ibm.ws.management.connector.soap.SOAPConnection.handleRequest(SOAPConnection.java:65)‎
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:733)‎
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:532)‎
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1815)‎

Was it helpful?

Solution

Folks, here's how I did it.

Open the file causing the trouble, in this case commontags.tld, displaytag.tld and struts-config.xml and make a fake edit i.e add/delete a line. And voila! All the errors are mysteriously gone!

Flashback: I had to fake edit my application.xml earlier when the .war file was not showing up in the WebSphere Enterprise Applications tab on Administrative Console.

I assume for some reasons the.earfile in my local server was not updated even after re-deploying.

A better explanation is most welcome! Thanks!

PS: I am still getting a HTTP 404 Not Found error on deploying the web app but this question is done here.

OTHER TIPS

When you "cleaned up" your jars, did you set them in both the Java Build Path and in the Deployment Assembly? I find I sometimes change the former and forget that this clears the latter.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top