Java 未找到restful Web服务资源错误

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

我正在使用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 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)()).