1

I am trying to migrate my applications to websphere 9 from wensphere 8.5.5.x. My application was developed on Java 7. I changed the JRE to 1.8 and created a maven build on JDK 1.8 as WAS 9 supports java 8. After I deployed my application EAR to WAS 9 and tried to start the application I started getting ClassNotFoundException for com.sun.faces.taglib.jsf_core package.

I saw some suggestions that I need to add this dependency in my project. I added the dependency in pom.xml. After adding this dependency, when I start the application, it just hangs trying to start and after 40-45 minutes I get below exception.

Dependency that I added to add com.sun.faces.taglib.jsf_core package.

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.20</version>
    </dependency>

Stack trace:

[8/20/19 15:49:31:732 EDT] 000000a9 webapp        E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextDestroyed SRVE0285E: Exception caught while destroying context: {0}
                                 java.lang.NullPointerException
               at org.jboss.weld.servlet.WeldInitialListener.contextDestroyed(WeldInitialListener.java:134)
               at com.ibm.ws.webcontainer.managedobject.ManagedObjectListenerWrapper.contextDestroyed(ManagedObjectListenerWrapper.java:138)
               at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextDestroyed(WebApp.java:1867)
               at com.ibm.ws.webcontainer.webapp.WebApp.destroy(WebApp.java:3288)
               at com.ibm.ws.webcontainer.webapp.WebAppImpl.destroy(WebAppImpl.java:1561)
               at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:97)
               at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:170)
               at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:904)
               at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:789)
               at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:427)
               at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:719)
               at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1219)
               at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1514)
               at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:704)
               at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:1096)
               at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:786)
               at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1421)
               at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2232)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:436)
               at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:379)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:127)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(CompositionUnitMgrImpl.java:654)
               at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5488)
               at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5614)
               at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:668)
               at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:612)
               at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1311)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
               at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
               at java.lang.reflect.Method.invoke(Method.java:508)
               at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:83)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
               at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
               at java.lang.reflect.Method.invoke(Method.java:508)
               at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287)
               at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1263)
               at java.security.AccessController.doPrivileged(AccessController.java:666)
               at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
               at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1257)
               at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1096)
               at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:831)
               at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:813)
               at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350)
               at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
               at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1243)
               at com.ibm.ws.management.commands.AdminServiceCommands$InvokeCmd.execute(AdminServiceCommands.java:251)
               at com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:246)
               at com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.execute(ApplicationDeploymentCollectionAction.java:608)
               at org.apache.struts.action.RequestProcessor.processActionPerform(Unknown Source)
               at org.apache.struts.action.RequestProcessor.process(Unknown Source)
               at org.apache.struts.action.ActionServlet.process(Unknown Source)
               at org.apache.struts.action.ActionServlet.doPost(Unknown Source)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1239)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:778)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:477)
               at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
               at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143)
               at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:78)
               at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:969)
               at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1109)
               at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1386)
               at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:195)
               at org.apache.struts.action.RequestProcessor.doForward(Unknown Source)
               at org.apache.struts.tiles.TilesRequestProcessor.doForward(Unknown Source)
               at org.apache.struts.action.RequestProcessor.processForwardConfig(Unknown Source)
               at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(Unknown Source)
               at org.apache.struts.action.RequestProcessor.process(Unknown Source)
               at org.apache.struts.action.ActionServlet.process(Unknown Source)
               at org.apache.struts.action.ActionServlet.doPost(Unknown Source)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1239)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:778)
               at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:477)
               at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
               at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143)
               at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:96)
               at com.ibm.ws.console.core.servlet.WSCUrlFilter.setUpCommandAssistance(WSCUrlFilter.java:970)
               at com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoringTaskState(WSCUrlFilter.java:517)
               at com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:338)
               at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
               at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
               at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:969)
               at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1109)
               at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4112)
               at com.ibm.ws.webcontainer.webapp.WebAppImpl.handleRequest(WebAppImpl.java:2171)
               at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
               at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1028)
               at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
               at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:294)
               at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
               at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:532)
               at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:318)
               at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
               at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1820)
               at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
               at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
               at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
               at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
               at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
               at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
               at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
               at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
lwestby
  • 1,209
  • 6
  • 10
NOT_FOUND
  • 125
  • 2
  • 13
  • By chance, does this application also use JAX-RS? – lwestby Aug 21 '19 at 15:06
  • No, It does not use JAX-RS – NOT_FOUND Aug 21 '19 at 15:14
  • Hmm ok, not the problem I was thinking of then. I don't really have a specific answer for this problem, but I know that some problems like this can be identified with a tool IBM publishes called Migration Toolkit for Application Binaries (there's also an Eclipse plugin). Maybe that will indicate something... https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries – lwestby Aug 21 '19 at 15:21

1 Answers1

0

The JSF SunRI engine was removed in WebSphere traditional V9.0. You can either use the MyFaces implementation included in WebSphere traditional V9.0 or package your own JSF engine with your application. Here is a documentation page talking about the features that were removed in WebSphere traditional V9.0 (including JSF SunRI) and how to resolve them: https://www.ibm.com/support/knowledgecenter/SSAW57_9.0.5/com.ibm.websphere.nd.multiplatform.doc/ae/rmig_remfeat.html

As mentioned in the comments, I would suggest running the Migration Toolkit for Application Binaries (https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries) against your application. It will help you find these kinds of issues and tell you how to resolve them. It includes information about the JSF SunRI removal.

dalia
  • 146
  • 4
  • thanks for the response, Dalia. I tried running the migration tool kit for my EAR but it gives me "targetAppServer 9.0.0 is not valid" error. Is the tool not meant for WAS 9.0? Any idea ? – NOT_FOUND Aug 27 '19 at 04:30
  • You'll need to specify a valid target value like --targetAppServer=was90. Run the `java -jar binaryAppScanner.jar --help` command to find out how the scanner should be used. There is also lots of documentation on the download page on how to use the scanner. – dalia Sep 27 '19 at 18:00
  • I dont think this is related to Websphere only. I started getting this issue on Liberty server as well after upgrading SpringBoot from 2.4 to 2.5 I can do mvn clean install without any issues but deploying to Liberty (starting Liberty server) fails with same error. – pixel Apr 08 '22 at 22:24