首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException: javax.jws.WebService

ClassNotFoundException: javax.jws.WebService
EN

Stack Overflow用户
提问于 2020-03-28 21:00:36
回答 2查看 6.5K关注 0票数 3

我正在尝试将一个简单的java servlet部署到Tomcat,该servlet使用部署在本地主机上的同一个Tomcat的web服务。我正在Netbeans的Maven项目中工作。

servlet导入以下类:

代码语言:javascript
复制
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.WebServiceRef;

我能够将生成的war文件部署到Tomcat,但是我无法在catalina.out中使用以下错误启动应用程序:

代码语言:javascript
复制
    28-Mar-2020 20:57:12.769 SEVERE [http-nio-8080-exec-93] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/opt/tomcat/apache-tomcat-9.0.31/webapps/CalculatorWebServiceClient.war]
                        java.lang.IllegalStateException: Error starting child
                                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
                                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
                                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
                                at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
                                at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
                                at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1642)
                                at jdk.internal.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
                                at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at java.base/java.lang.reflect.Method.invoke(Method.java:566)
                                at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
                                at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
                                at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
                                at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1590)
                                at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:294)
                                at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:212)
                                at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
                                at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
                ...
                  Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/CalculatorWebServiceClient]]
                                at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
                                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
                                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
                                ... 43 more
                        Caused by: java.lang.TypeNotPresentException: Type javax.jws.WebService not present
                                at java.base/sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException(TypeNotPresentExceptionProxy.java:46)
                                at java.base/sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:86)
                                at com.sun.proxy.$Proxy2.value(Unknown Source)
                                at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1699)
                                at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1137)
                                at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
                                at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
                                at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
                                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5051)
                                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                                ... 44 more
                        Caused by: java.lang.ClassNotFoundException: javax.jws.WebService
                                at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
                                at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
                                at java.base/java.lang.Class.forName0(Native Method)
                                at java.base/java.lang.Class.forName(Class.java:398)
                                at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)

我注意到日志文件中的ClassNotFoundException: javax.jws.WebService,并编辑了pom.xml文件,包括:

javax.xml.ws.jaxws-api.2.3.1及其编译依赖关系,如每个[https://mvnrepository.com/artifact/javax.xml.ws/jaxws-api/2.3.1/][1]所找到的。

代码语言:javascript
复制
javax.annotation.javax.annotation-api.1.3.2
javax.xml.bind.jaxb-api.2.3.1
javax.xml.soap.javax.xml.soap-api.1.4.0

在检查项目目录时,我可以看到相应的库存在于WEB/lib目录中。

即使在此之后,我仍然会收到相同的错误消息,无法启动应用程序。有人能告诉我我在这里错过了什么吗?

你好,米哈尔

EN

回答 2

Stack Overflow用户

发布于 2021-06-14 03:35:34

如果您使用的是java 11,则必须接收此erorr,因为不再有JAXB( javax.xml.bind在java 11中不再存在)。

在pom文件中添加下面的依赖项以解决此问题。

代码语言:javascript
复制
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0.1</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.1</version>
</dependency>
票数 0
EN

Stack Overflow用户

发布于 2022-09-06 14:00:07

我们也面临着类似的问题,并补充说,上述建议的罐子仍未解决。可以看到/WEB/lib目录中的jars。请提出一些解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60906948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档