简体   繁体   English

HTTP 状态 500 javax.servlet.ServletException:servlet [Jersey RESTful App] 的 Servlet.init() 抛出异常 java.lang.IllegalArgumentException

[英]HTTP Status 500 javax.servlet.ServletException: Servlet.init() for servlet [Jersey RESTful App] threw exception java.lang.IllegalArgumentException



I am writing my first Java REST application. 我正在编写我的第一个 Java REST 应用程序。
I was following this tutorial: 我正在关注本教程:
https://www.tutorialspoint.com/restful/restful_first_application.htm https://www.tutorialspoint.com/restful/restful_first_application.htm
but I am getting this error: 但我收到此错误:
 HTTP Status 500 – Internal Server Error Type Exception Report Message Servlet.init() for servlet [Jersey RESTful Application] threw exception Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception javax.servlet.ServletException: Servlet.init() for servlet [Jersey RESTful Application] threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:830) Root Cause java.lang.IllegalArgumentException jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:171) jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153) jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:425) org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:170) org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:915) org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:869) org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:775) org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1206) org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1178) org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1174) org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:345) org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:830)

Could you help me? 你可以帮帮我吗?
I checked with many similiar topics and articles also here on Stack Overflow but nothing helped me. 我也在 Stack Overflow 上查看了许多类似的主题和文章,但没有任何帮助。

My specification: 我的规格:
OS: Windows 10 操作系统:Windows 10
IDE: Eclipse Version: 2020-06 (4.16.0) IDE:Eclipse 版本:2020-06 (4.16.0)
Application server: apache-tomcat-9.0.38 应用服务器:apache-tomcat-9.0.38
jaxrs-ri-2.25.1 jaxrs-ri-2.25.1


I copied code from tutorial website to my project to make sure I made no mistake. 我将代码从教程网站复制到我的项目中,以确保我没有弄错。
Java files: Java文件:
UserService.java 用户服务.java
 package com.tutorialspoint; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/UserService") public class UserService { UserDao userDao = new UserDao(); @GET @Path("/users") @Produces(MediaType.APPLICATION_XML) public List<User> getUsers(){ return userDao.getAllUsers(); } }

User.java 用户.java
 package com.tutorialspoint; import java.io.Serializable; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private String profession; public User(){} public User(int id, String name, String profession){ this.id = id; this.name = name; this.profession = profession; } public int getId() { return id; } @XmlElement public void setId(int id) { this.id = id; } public String getName() { return name; } @XmlElement public void setName(String name) { this.name = name; } public String getProfession() { return profession; } @XmlElement public void setProfession(String profession) { this.profession = profession; } }

UserDao.java用户道

package com.tutorialspoint; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; public class UserDao { public List<User> getAllUsers(){ List<User> userList = null; try { File file = new File("Users.dat"); if (!file.exists()) { User user = new User(1, "Mahesh", "Teacher"); userList = new ArrayList<User>(); userList.add(user); saveUserList(userList); } else{ FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); userList = (List<User>) ois.readObject(); ois.close(); } } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return userList; } private void saveUserList(List<User> userList){ try { File file = new File("Users.dat"); FileOutputStream fos; fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(userList); oos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

web.xml网页.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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> <display-name>User Management</display-name> <servlet> <servlet-name>Jersey RESTful Application</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.tutorialspoint</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Jersey RESTful Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>

我通过使用 apache-tomcat-9.0.38 和 Jersey 2.16 让它工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 javax.servlet.ServletException:Servlet中继的Servlet.init()抛出异常 - javax.servlet.ServletException: Servlet.init() for servlet Relay threw exception javax.servlet.ServletException:servlet spring的Servlet.init()引发了异常 - javax.servlet.ServletException: Servlet.init() for servlet spring threw exception javax.servlet.ServletException:Servlet的Servlet.init()引发异常,并且找不到元素&#39;beans&#39;的声明 - javax.servlet.ServletException: Servlet.init() for servlet spring threw exception & Cannot find the declaration of element 'beans' HTTP状态500-Servlet球衣的Servlet.init()-Servlet抛出异常 - HTTP Status 500 - Servlet.init() for servlet jersey -servlet threw exception HTTP状态500-javax.servlet.ServletException:Servlet执行引发异常 - HTTP Status 500 - javax.servlet.ServletException: Servlet execution threw an exception HTTP 状态 500 - servlet appServlet 的 Servlet.init() 抛出异常 - HTTP Status 500 - Servlet.init() for servlet appServlet threw exception HTTP状态500-Servlet Dispatcher的Servlet.init()抛出异常 - HTTP Status 500 - Servlet.init() for servlet Dispatcher threw exception HTTP状态500-Servlet HelloWeb的Servlet.init()抛出异常? - HTTP Status 500 - Servlet.init() for servlet HelloWeb threw exception? HTTP状态500 - servlet fitTrackerServlet的Servlet.init()引发异常 - HTTP Status 500 - Servlet.init() for servlet fitTrackerServlet threw exception HTTP状态500-Servlet appServlet的Servlet.init()抛出异常 - HTTP Status 500 - Servlet.init() for servlet appServlet threw exception
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM