路径在Java部署的REST web服务中如何工作?
在Tomcat和Jersey库下,我创建了一个REST web服务,如本课程所述:路径在Java部署的REST web服务中如何工作?,java,rest,tomcat,jax-rs,Java,Rest,Tomcat,Jax Rs,在Tomcat和Jersey库下,我创建了一个REST web服务,如本课程所述: package Servicios; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.PathParam; import javax.ws.rs.Consumes; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.w
package Servicios;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
@Path("service")
public class ServiceResource {
@Context
private UriInfo context;
/**
* Creates a new instance of ServiceResource
*/
public ServiceResource() {
}
@GET
@Produces("text/html")
public String getHtml() {
return "<h1>Here we are, at the contemplation of the most simple web service</h1>";
}
@PUT
@Consumes("text/html")
public void putHtml(String content) {
}
}
package服务;
导入javax.ws.rs.core.Context;
导入javax.ws.rs.core.UriInfo;
导入javax.ws.rs.PathParam;
导入javax.ws.rs.Consumes;
导入javax.ws.rs.PUT;
导入javax.ws.rs.Path;
导入javax.ws.rs.GET;
导入javax.ws.rs.products;
@路径(“服务”)
公共类服务资源{
@上下文
私有信息上下文;
/**
*创建ServiceResource的新实例
*/
公共服务资源(){
}
@得到
@生成(“文本/html”)
公共字符串getHtml(){
return“我们在这里,正在考虑最简单的web服务”;
}
@放
@使用(“文本/html”)
公共HTML(字符串内容){
}
}
因此,在访问http://localhost:8080/GetSomeRest
创建默认的.jsp
文件
我在ProjectProperties(使用NetBeans)中设置了一个相对URL作为webresources/service
,因此service
部分的定义与@Path(“service”)
中的定义相同。一切正常,进入http://localhost:8080/GetSomeRest/webresources/service
使web服务被消费
但是如果我想直接从http://localhost:8080/GetSomeRest/service
?我试图在这样的相对URL中只设置服务
,我得到了一条错误404
消息,该消息将转到http://localhost:8080/GetSomeRest/service
虚拟路径是如何工作的
向web服务添加别名意味着什么?您提供的代码中没有设置路径段
webresources
,因此我将猜测您的代码是什么样子的
JAX-RS应用程序可以配置一个扩展javax.ws.RS.core.application
的类。这样的类可以用@javax.ws.rs.ApplicationPath()
注释。我猜在您的项目中,此注释设置为
@javax.ws.rs.ApplicationPath("webresources")
因此,JAX-RS
资源类的URL是从这些部分构建的
http://localhost:8080/
-主机和端口GetSomeRest
-上下文,通常是部署的.war
文件的名称webresources
-@ApplicationPath
注释的值service
-类的@Path
注释的值@ApplicationPath
注释的值可以被web.xml
中的servlet映射
元素覆盖,仅供参考
路径段
webresources
由包中的netbeans在代码中设置
org.netbeans.rest.application.config-ApplicationConfig类进入您自己的项目中!!!所以改变它,它就完成了…我不清楚你在问什么。你是在问相对URL是如何工作的吗?您是否在询问如何在web服务中设置别名?这很让人困惑。
web.xml
应该在哪里?在目录/web-INF/
中,web.xml
是可选的。该文件应该定义什么?为什么它是可选的?