java - javax.servlet.UnavailableException:从jdk8迁移到openjdk11&weblogic到jetty时,Servlet类MyClass不是javax.servlet.Servlet
问题描述
我面临 MyClass 不是 javax.servlet.Servlet 警告,并且在码头服务器中部署时应用程序没有启动。
早些时候在 jdk8 和 weblogic 上运行时,它运行良好。我在从 jdk8 迁移到 openjdk11 和 weblogic 到 jetty 时遇到了这个问题。
我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SomeName</display-name>
<listener>
<listener-class>StaticQueueConnectionServlet</listener-class>
</listener>
<servlet>
<servlet-name>Soap11HttpPort</servlet-name>
<servlet-class>MyClass</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SchedulerServlet</servlet-name>
<servlet-class>SchedulerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Soap11HttpPort</servlet-name>
<url-pattern>/Soap11HttpPort</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SchedulerServlet</servlet-name>
<url-pattern>/SchedulerServlet</url-pattern>
</servlet-mapping>
我的网络服务类
@javax.jws.WebService(serviceName = "XXXXXX",
name = "Soap11HttpPort",
targetNamespace = "xxxxxxx",
endpointInterface = "MyInterface")
public final class MyClass implements MyInterface {
@javax.annotation.Resource
private WebServiceContext context;
public Resp ping(final Request request) throws Exception {
return pesponse;
}
public Response printDocument(
final Request request) throws Exception {
try {
final MessageContext ctx = context.getMessageContext();
final HttpServletRequest request = (HttpServletRequest) ctx.get(MessageContext.SERVLET_REQUEST);
return response;
} catch (Exception exc) {
}
}
}
我正进入(状态
javax.servlet.UnavailableException: Servlet class MyClass is not a javax.servlet.Servlet
at org.eclipse.jetty.servlet.ServletHolder.checkServletType(ServletHolder.java:547)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:380)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:745)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:739)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:361)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1443)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1407)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:821)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:276)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:46)
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:188)
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:513)
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:154)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:172)
at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:436)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:66)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:622)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:538)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:402)
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:318)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:145)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:599)
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:249)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.server.Server.start(Server.java:407)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:106)
at org.eclipse.jetty.server.Server.doStart(Server.java:371)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$0(XmlConfiguration.java:1824)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1773)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:218)
at org.eclipse.jetty.start.Main.start(Main.java:491)
at org.eclipse.jetty.start.Main.main(Main.java:77)
解决方案
推荐阅读
- python - 在 Numpy/OpenCV 中将图像从 BGR 转换为 sRGB
- docker - docker容器内的overlayfs
- flutter - 如何在颤动中正确导航分页数据表的页面?
- c - 信号量和消息队列
- sql-server - SQL整理,我不能在一列上有多个整理吗?
- python - 如何在 Odoo 13 中修改日历事件对象弹出框的值
- python - Pycharm 不更新类输入变量的缓存
- angular - Angular 在 NGINX 反向代理 404 后面的 Docker 中运行
- windows - VS 控制台中的应用程序验证程序报告和错误:删除具有无效锁定计数的关键部分
- python - Python 3.9 x64 执行错误的 pip install (x32)