Java 未找到restful Web服务资源错误
我正在使用jersey restful webservice+hibernate框架和maven java项目创建一个注册页面。 注册类别:Java 未找到restful Web服务资源错误,java,hibernate,web-services,rest,maven,Java,Hibernate,Web Services,Rest,Maven,我正在使用jersey restful webservice+hibernate框架和maven java项目创建一个注册页面。 注册类别: package com.data; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Entity; @Entity public cl
package com.data;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Entity;
@Entity
public class Registration {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String fristName;
private String lastName;
private String email;
private String password;
private String rePassword;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFristName() {
return fristName;
}
public void setFristName(String fristName) {
this.fristName = fristName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRePassword() {
return rePassword;
}
public void setRePassword(String rePassword) {
this.rePassword = rePassword;
}
}
注册服务类别:
package com.dao;
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.data.Registration;
public class RegistrationService {
private SessionFactory sessionFactory = null;
public Registration adddNewUser(Registration newUser){
try{
sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(newUser);
session.getTransaction().commit();
session.close();
}catch(Exception ex){
ex.printStackTrace();
}
return newUser;
}
@SuppressWarnings("unchecked")
public ArrayList<Registration> getUsers(){
ArrayList<Registration> users = new ArrayList<Registration>();
try{
sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
users = (ArrayList<Registration>) session.createCriteria(Registration.class).list();
session.close();
}catch(Exception ex){
ex.printStackTrace();
}
return users;
}
}
package com.dao;
导入java.util.ArrayList;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.hibernate.cfg.Configuration;
导入com.data.Registration;
公共类注册服务{
私有SessionFactory SessionFactory=null;
公共注册adddNewUser(注册新用户){
试一试{
sessionFactory=新配置().configure().buildSessionFactory();
Session Session=sessionFactory.openSession();
session.beginTransaction();
session.save(newUser);
session.getTransaction().commit();
session.close();
}捕获(例外情况除外){
例如printStackTrace();
}
返回新用户;
}
@抑制警告(“未选中”)
公共ArrayList getUsers(){
ArrayList用户=新建ArrayList();
试一试{
sessionFactory=新配置().configure().buildSessionFactory();
Session Session=sessionFactory.openSession();
users=(ArrayList)session.createCriteria(Registration.class.list();
session.close();
}捕获(例外情况除外){
例如printStackTrace();
}
返回用户;
}
}
注册资源类别:
package com.resource;
import java.util.ArrayList;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.dao.RegistrationService;
import com.data.Registration;
@Path("register")
public class RegistrationResource {
private RegistrationService registrationService = new RegistrationService();
@Path("new")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Registration addNewUser(Registration newUser){
return registrationService.adddNewUser(newUser);
}
@GET
@Path("all")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Registration> getAllUsers(){
return registrationService.getUsers();
}
}
package.com.resource;
导入java.util.ArrayList;
导入javax.ws.rs.Consumes;
导入javax.ws.rs.GET;
导入javax.ws.rs.POST;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
导入com.dao.RegistrationService;
导入com.data.Registration;
@路径(“寄存器”)
公共类注册资源{
私有注册服务注册服务=新注册服务();
@路径(“新”)
@职位
@使用(MediaType.APPLICATION_JSON)
@产生(MediaType.APPLICATION_JSON)
公共注册addNewUser(注册newUser){
返回registrationService.adddNewUser(newUser);
}
@得到
@路径(“全部”)
@产生(MediaType.APPLICATION_JSON)
公共阵列列表getAllUsers(){
返回registrationService.getUsers();
}
}
有人帮忙。。。。。。。
请有人告诉我哪里有问题,我将感谢你……:) 您正在使用Maven和pom作为构建应用程序的构建机制。如果您的restful服务是web应用程序,则需要在web.xml中映射restful属性,否则jersey服务器将无法找到资源:
<servlet>
<servlet-name>jersey-serlvet</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.resource</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Servlet Mappings -->
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/register/*</url-pattern>
</servlet-mapping>
泽西塞尔维特酒店
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
com.resource
com.sun.jersey.api.json.POJOMappingFeature
真的
1.
泽西塞尔维特酒店
/登记册/*
我正在检查postman rest客户端,jersey在创建项目时使用的一种方法工作正常,而我使用的另一种方法不工作,您能告诉我哪种方法不工作吗?只看您的代码,我觉得以下方法不工作:public ArrayList getAllUsers(){return registrationService.getUsers();}默认情况下,不允许您发送对象的arrayList。您需要修改默认的ContextResolver或Messagebodywriter才能这样做。您可以做的另一件事是将arrayList包装在javax.ws.rs.core.GenericEntity中,并返回GenericEntity(registrationService.getUsers)()).