我正在使用java和eclipse制作一个简单的rest服务。我用球衣1.19和杰克逊1.7.9。但当我尝试用tomcat运行项目时,我有一个例外。
严重: Servlet[jersey-servlet]在Web应用程序[/员工服务]抛出加载()异常org.apache.catalina.core.ClassNotFoundException:rapper.loadServletContainer在rapper.java:1087WebappClassLorg.apache.catalina.core.类(WebappClassLontext.load)在ontext.java:5262WebappClassLorg.apache.catalina.core.类(WebappClassLontext.start)在ontext.java:5550DefaultInstanceMorg.apache.catalina.util.类(DefaultInstanceMase.start)在ase.java:150DefaultInstanceMorg.apache.catalina.core.ClassMaybePrivileged(DefaultInstanceManager.java:488)在org.apache.catalina.core.DefaultInstanceManager.new实例(DefaultInstanceManager.java:115)在org.apache.catalina.core.Standard ardWrapper.loadServlet(标准rapper.java:1148)在java.lang.标准com.sun.jersey.spi.container.servlet.(标准org.apache.catalina.loader.)在oader.load标准oader.java:1720OnStartup(标准org.apache.catalina.loader.)在oader.load标准oader.java:1571内部(标准org.apache.catalina.core.)在anager.load生命周期anager.java:506(生命周期org.apache.catalina.core.)在anager.loadContainerBase$StartChild. call(ContainerBase. java: 1575)at org. apache. catalina. corer
在这里,我将复制课程和网站。我拥有的xml。
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name=“employee”)公共类员工{
public String empId;
public String name;
public String email;
@javax.xml.bind.annotation.XmlElement(required = true)
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
@javax.xml.bind.annotation.XmlElement(required = true)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@javax.xml.bind.annotation.XmlElement(required = true)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
@path("/emp")公共类员工服务{
@GET
@Path("/get/{empId}")
public Employee getEmployee(@PathParam("empId") String empId) {
Employee employee = new Employee();
employee.setEmpId(empId);
employee.setName("Nikola");
employee.setEmpId("nikola@nikola.com");
return employee;
}
@POST
@Path("/create")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_XML)
public Employee createEmployee(Employee employee) {
// create logic goes here
return employee;
}
@PUT
@Path("/update")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Employee updateEmployee(Employee employee) {
// create logic goes here
employee.setName(employee.getName() + "updated");
return employee;
}
@DELETE
@Path("/delete/{empId}")
public javax.ws.rs.core.Response deleteEmployee(@PathParam("empId") int empId) throws URISyntaxException {
return javax.ws.rs.core.Response.status(200).entity("Employee with " + empId + "is deleted successfully").build();
}
网状物xml
<?xml version="1.0" encoding="UTF-8"?>
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd“id=“WebApp\u id”版本=“3.0”
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest.employee</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
你应该在你的网站上删除这个。xml
<load-on-startup>1</load-on-startup>
由于生成路径问题,我们出现了此错误。您应该在生成路径中添加“服务器运行时”库。
“java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer”
请按照以下步骤解决未找到类异常。
右键单击项目-
是的,删除启动标签上的负载。
它应该可以正常工作。
我也有同样的问题。我将所有jar放入引用库中。但您只需将所有必需的jar文件复制粘贴到WEB-INF/lib文件夹中。问题已解决。
我想使用JDBC我在类路径中添加了Mysql驱动程序,如下所示: 但即使这样我也会犯这个错误: java.lang.ClassNotFoundException:com.mysql.jdbc.driver在java.net.urlClassLoader$1上运行(urlClassLoader.java:366)在java.net.urlClassLoader$1上运行(urlClassLoader
是在API级别20中添加的。 我在我的中导入并重写,但出现在api级别从14到21的某些电话中。原因何在? 发生在:根Nexus 5,Android 4.4.2 堆栈跟踪:
我正在尝试在Pentaho 5上执行map reduce。对于Pentaho 5,Pentaho应用程序是为Apache Hadoop 0.20.2预先配置的,它表示此版本无需进一步配置。我使用cygwin在windows上安装了Hadoop 0.20.2,一切正常。我在Pentaho上运行了一个简单的作业,该作业将文件复制到HDFS中,并成功完成,文件系统被复制到HDFS中。但是,当我运行map
我正在尝试将Jetty配置为http和https的代理。我下载了两个不同版本的jetty,但我都有相同的问题。 我目前使用的版本是:jetty-分发-8.1.8. v20121106,运行在CentOs 6.2上。 打开焦油包装后。gz,我修改了开始。ini文件添加etc/jetty代理。xml到配置文件列表: 码头定期启动。我可以通过以下方式访问它: 读取日志文件时,似乎在端口8080、8443
我使用CXF、REST服务和Apache Camel实现了以下API。 http://localhost:9090/api/compute http://localhost:9091/api/listaction null IllegalArgumentException:无效的URI:/API/ListAction/API/ListAction。如果您正在转发/桥接httpendpoint,则在