泽西岛:资源不可用

时间:2016-03-22 14:28:35

标签: java web-services jersey

我尝试将简单的helloworld作为泽西项目执行,但Web服务根本没有启动。我不知道问题出在哪里。

我的主要课程如下:

 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;

 @Path("/hello")
 public class HelloWorld {
 @GET
 @Produces(MediaType.TEXT_PLAIN)
 public String getMessage() {
    return "Hello world!";
 }
 }

这是我的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">

  <display-name>Restful Web Application</display-name>
  <servlet>
    <servlet-name>jersey-XMLExample-serlvet</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>jmu.zak</param-value>
    </init-param>

    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>jersey-XMLExample-serlvet</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
    </web-app>

和我的index.jsp

   <html>
   <head>
   <title>MOXy JAX-RS JSON Provider Example</title>
   <style type="text/css"><!--
   .figure {
   text-align: center;
   margin: 20px
    }
   .cliSample {
   background-color: lightgray
   }
   --></style></head>

  <body>
  <p>A <a href="http://wadl.java.net/#spec">WADL description</a> may be  accessed at the URL:</p>
  <blockquote>
  <code>
  <a  href="http://localhost:8080/webapi/application.wadl">http://localhost:8080/webapi/application.wadl</a>
  </code></blockquote>

   <p>The resource is available at</p>
   <blockquote>
   <code>
   <a href="http://localhost:8080/webapi/hello">http://localhost:8080/webapi/hello</a>
   </code>
  </blockquote>
  </body>
  </html>

正如你所见,这个例子非常微不足道。这就是为什么我很沮丧,我的网络服务从未开始......

如果你帮助我解决这个问题,请提前感谢你,你会挽救我的生命

2 个答案:

答案 0 :(得分:1)

您错过了添加Application子类

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("api")
public class RestApplication extends Application{

}

通过此示例,您可以从http://localhost:8080/webapi/api/hello

检索资源

答案 1 :(得分:0)

我认为您正在尝试的网址缺少上下文路径。每个Web应用程序都有一个上下文路径,因此如果您发现了上下文路径,那么您应该使用以下URL:

http://localhost:8080/<your context path>/webapi/hello