首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在玻璃鱼上部署休息服务4

在玻璃鱼上部署休息服务4
EN

Stack Overflow用户
提问于 2013-08-31 14:04:34
回答 1查看 7.9K关注 0票数 2

我无法开始我的休息服务。我有一个war文件,其中包含了我的service.jar,在service.jar中,我使用了下面的代码

代码语言:javascript
运行
复制
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import se.questify.entities.exam.Question;


@Path("/services/question")
public class QuestionWebService {

    @GET
    @Path("/ping")
    @Produces({MediaType.TEXT_PLAIN})
    public String ping() {
        return "ping from localhost webservice";
    }
}

当将其部署到glassfish 4(我从eclipse运行)时,在http://localhost:8080/web/services/question/ping (我的上下文根目录是/web)上无法访问/web服务。

有人知道为什么这不管用吗?

Web.xml

代码语言:javascript
运行
复制
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">


    <display-name>Counter Web Application</display-name>

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>
            javax.faces.webapp.FacesServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet> 

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-01 23:06:38

您还没有设置到REST servlet的映射。在您的web.xml文件中需要这样的内容:

代码语言:javascript
运行
复制
<servlet-mapping>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

或者,您可以添加一个应用程序类并使用@ApplicationPath设置映射。

代码语言:javascript
运行
复制
@ApplicationPath("/services")
public class QuestionApplication extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<>();
        // register root resource
        classes.add(QuestionWebService.class);
        return classes;
    }
}

然后根据映射的@Path设置URL。

代码语言:javascript
运行
复制
@Path("/question") 
public class QuestionWebService {
...
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18548983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档