我正在使用Glassfish 4,我使用简单的REST Web服务创建了一个简单的Web应用程序。 一切都很好,直到我试图创建一个新的glassfish安装。当我完成新安装时,我部署了战争并且它成功部署,而没有任何错误在glassfish日志上。部署之后,当我从管理控制台提供的URL启动Web应用程序时:
http://localhost:8080/MyRESTWebApp_war/
我收到状态404未找到错误...
这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>MyRESTWebApp</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>my.package.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyRESTWebApp</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
我还配置了一个使用@Path注释扩展Application的类:
@ApplicationPath("/rest")
public class MyRESTWebAppApplication extends Application
{
@Override
public Set<Class<?>> getClasses()
{
return getResourceClasses();
}
private Set<Class<?>> getResourceClasses()
{
Set<Class<?>> resources = new HashSet<>();
resources.add(Example.class);
return resources;
}
}
我不记得我在之前的glassfish安装上做了什么配置,这非常令人沮丧......
当我尝试测试示例helloworld Rest服务时,我也收到404错误:
http://localhost:8080/MyRESTWebApp_war/rest/helloworld
答案 0 :(得分:0)
url http://localhost:8080/MyRESTWebApp_war/rest/rest/怎么样?
你的其他api url从/ rest / *开始,你的资源类url也从/ rest开始。
答案 1 :(得分:0)
您只能使用http://localhost:8080/rest/访问它吗?
你的Example.class
看起来像什么?
<强>更新强>
您无法访问此网址的原因很简单我认为,您的服务已在http://localhost:8080/MyRESTWebApp_war/rest/上得到很好的部署,而您在此处获得404回复的事实是因为您没有在该路径上实现了GET方法。尝试创建如下资源:
@Path("/")
class RootResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello(){
return "Hello"
}
}
答案 2 :(得分:0)
在一些玻璃鱼重新启动后,我的休息服务正在按预期工作。
我访问时仍然收到404错误:
http://localhost:8080/MyRESTWebApp_war/
但是当我点击完整的RESTful服务链接时:
http://localhost:8080/MyRESTWebApp_war/rest/helloworld
我得到了预期的回应......
我仍然没有弄清楚我做错了什么,这几乎花了我一整天才弄明白......谢谢大家的时间和建议!