我无法开始我的休息服务。我有一个war文件,其中包含了我的service.jar,在service.jar中,我使用了下面的代码
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
<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>发布于 2013-09-01 23:06:38
您还没有设置到REST servlet的映射。在您的web.xml文件中需要这样的内容:
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>或者,您可以添加一个应用程序类并使用@ApplicationPath设置映射。
@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。
@Path("/question")
public class QuestionWebService {
...
}https://stackoverflow.com/questions/18548983
复制相似问题