Javax.servlet.UnavailableException after upgrade to WAS 7

I ported my application from WAS 6 to WAS 7. There is no compilation error in the code or something is missing, but when I try to run the application, I get the following exception.

[9/19/12 9:45:37:609 EDT] 00000009 extension W com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor createServletWrapper Servlet action is currently unavailable: SRVE0203E: Servlet [action]: com.ibm.services.tools.citrus.ctl.ActionServlet was found, but is missing another required class. SRVE0206E: This error typically implies that the servlet was originally compiled with classes which cannot be located by the server. 

So, I checked the ffdc exception trace, and I found the following exception. I turned on the entire jar, which was transferred by the old configuration.

  [9/19/12 9:26:53:328 EDT] FFDC Exception:javax.servlet.UnavailableException SourceId:com.ibm.ws.webcontainer.webapp.WebApp.handleError ProbeId:912 Reporter: com.ibm.ws.webcontainer.webapp.WebAppImpl@475c475c javax.servlet.UnavailableException: SRVE0203E: Servlet [action]: com.ibm.services.tools.citrus.ctl.ActionServlet was found, but is missing another required class. SRVE0206E: This error typically implies that the servlet was originally compiled with classes which cannot be located by the server. SRVE0187E: Check your class path to ensure that all classes required by the servlet are present.SRVE0210I: This problem can be debugged by recompiling the servlet using only the classes in the application runtime class path at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:534) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:354) at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:3369) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3968) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 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:1604) 

And I want to understand what the average problem is, you can debug it by recompiling the servlet using only the classes in the path of the application execution class.

+4
source share
3 answers

The error indicates that your servlet is being imported or otherwise depends on classes that are no longer available after the upgrade. Since the exception does not name a class that is missing, WAS offers you to compile the application against the WAS 7 libraries. If you do, the compiler will tell you which of the dependent classes is missing. You are probably compiling against WAS 6 or some other libraries, so the error is delayed until execution.

0
source

The following may be the reason for the same problem.

  • The / jar libraries used are not compatible for the version of ur java on which the application is created.
  • In my case, I had two utility.jar files (for others there can be any other banks), one of them is built with a compatible one, and one with a higher version. Solved: When removing jars with a higher version.
0
source

Below are the steps that solved the problem:

1. Assigned versions of JRE and server in java 8. Ie version in Window -> Preferences -> Java -> The installed version of the JRE and the WAS server runtime should be the same. 2. Then I rebuilt the ears, reinstalled these ears on the server, after that I can start the application

0
source

Source: https://habr.com/ru/post/1435072/


All Articles