Java &引用;“请求的资源不可用”;在Tomcat中部署Jersey应用程序时
我正在尝试构建一个简单的Restful api,它返回用户详细信息 我已参考链接 以下是我的课程: API服务类别:Java &引用;“请求的资源不可用”;在Tomcat中部署Jersey应用程序时,java,jersey,Java,Jersey,我正在尝试构建一个简单的Restful api,它返回用户详细信息 我已参考链接 以下是我的课程: API服务类别: package com.demoapp; 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; import org.omg.Messaging.SyncSc
package com.demoapp;
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;
import org.omg.Messaging.SyncScopeHelper;
@Path("/AddUserApi")
public class AddUserApi {
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers(){
return UserUtil.getUserList();
}
}
package com.demoapp;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
String name="";
String u_name="";
String password="";
String email="";
String user_type="";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUser_type() {
return user_type;
}
public void setUser_type(String user_type) {
this.user_type = user_type;
}
}
package com.demoapp;
import java.util.List;
public class UserUtil {
public static String mysql_ip="jdbc:mysql://10.119.32.86/";
public static String metadata_database="haas";
public static String mysql_username="root";
public static String mysql_password="";
public static List<User> getUserList(){
List<User> users=new ArrayList<User>();
User user=new User();
user.setName("abc");
user.setU_name("ab_c");
user.setPassword("1234");
user.setUser_type("normal");
user.setEmail("abc@gmail.com");
users.add(user);
return users;
}
}
Utils类:
package com.demoapp;
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;
import org.omg.Messaging.SyncScopeHelper;
@Path("/AddUserApi")
public class AddUserApi {
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers(){
return UserUtil.getUserList();
}
}
package com.demoapp;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
String name="";
String u_name="";
String password="";
String email="";
String user_type="";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUser_type() {
return user_type;
}
public void setUser_type(String user_type) {
this.user_type = user_type;
}
}
package com.demoapp;
import java.util.List;
public class UserUtil {
public static String mysql_ip="jdbc:mysql://10.119.32.86/";
public static String metadata_database="haas";
public static String mysql_username="root";
public static String mysql_password="";
public static List<User> getUserList(){
List<User> users=new ArrayList<User>();
User user=new User();
user.setName("abc");
user.setU_name("ab_c");
user.setPassword("1234");
user.setUser_type("normal");
user.setEmail("abc@gmail.com");
users.add(user);
return users;
}
}
package com.demoapp;
导入java.util.List;
公共类UserUtil{
公共静态字符串mysql\u ip=“jdbc:mysql://10.119.32.86/";
公共静态字符串元数据_database=“haas”;
公共静态字符串mysql\u username=“root”;
公共静态字符串mysql_password=“”;
公共静态列表getUserList(){
列表用户=新建ArrayList();
用户=新用户();
user.setName(“abc”);
user.setU_name(“ab_c”);
user.setPassword(“1234”);
user.setUser_类型(“正常”);
user.setEmail(“abc@gmail.com");
用户。添加(用户);
返回用户;
}
}
web.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>UserAPI</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<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.demoapp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
用户API
index.html
index.htm
index.jsp
Jersey RESTful应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.demoapp
Jersey RESTful应用程序
/休息/*
我从站点下载了jersey jar,提取了3个文件夹,并在构建路径中添加了这些jar
我已经按照教程做了所有的事情。
仍然显示此错误:
您能建议一种解决此问题的方法吗?如果服务器已启动并正在运行,并且应用程序已正确部署,则您的端点应位于以下URL中:
http://[host]:[port]/[context]/rest/AddUserApi/users
其中:
是WAR文件的名称(不带[context]
扩展名).WAR
来自/rest
:web.xml
/rest/*
来自/AddUserApi
类上的AddUserApi
注释@Path
来自/users
方法上的getUsers()
注释@Path
[context]
默认情况下。Mazzochi Molin,所以我只从IDE运行,我假设它应该自动创建此链接本地主机:8082/UserAPI/rest/AddUserApi/users…如果我错了,请更正我。@satishsilveri我不知道创建此链接…自动是什么意思。但是如果服务器在8082
端口上运行,则如果应用程序在UserAPI
上下文中部署时没有错误,您应该能够执行GET
请求http://localhost:8082/UserAPI/rest/AddUserApi/users
并获得所需的输出。您从哪里获得端口8082
和上下文UserAPI
?您确定打开的端口是8082吗而不是8080?