2016-08-30 92 views
0

我必须在Apache Tomcat上运行java URL =“http:// localhost:8080/RESTfulExample/rest/json/metallica/get”,但我得到404错误。我想得到JSON响应,所以我在做什么?在Apache本地主机上运行应用程序:8080

@Path("/json/metallica") 
public class JSONService { 

    @GET 
    @Path("/get") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Track getTrackInJSON() { 

     Track track = new Track(); 
     track.setTitle("Enter Sandman"); 
     track.setSinger("Metallica"); 

     return track; 

    } 

public class NetClientGet { 


    public static void main(String[] args) { 

     try { 

      URL url = new URL(
        "http://localhost:8080/RESTfulExample/rest/json/metallica/get"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setRequestMethod("GET"); 
      conn.setRequestProperty("Accept", "application/json"); 



      BufferedReader br = new BufferedReader(new InputStreamReader(
        (conn.getInputStream()))); 

      String output; 
      System.out.println("Output from Server .... \n"); 
      while ((output = br.readLine()) != null) { 

       System.out.println(output); 
      } 

      conn.disconnect(); 

     } catch (MalformedURLException e) { 

      e.printStackTrace(); 
     } catch (IOException e) { 

      e.printStackTrace(); 

     } 

    } 

} 

例外:

了java.lang.RuntimeException:失败:HTTP错误代码:404 com.mkyong.client.JerseyClientPost.main(JerseyClientPost.java:24)

web.xml中:

<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>Restful Web Application</display-name> 

    <servlet> 
     <servlet-name>jersey-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>com.mkyong.rest</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-serlvet</servlet-name> 
     <url-pattern>/rest/</url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

您是否将JSONService注册为restful应用程序?您使用的是哪种JAX-RS实现? – ulab

+0

是的,JSONService注册为restful应用程序..我正在使用Jersey实现。 – Vipul

+0

发布您的web.xml servlets配置。 – Yazan

回答

0

您的问题显示没有指示使用作为基准路径。
因此,假设该应用程序的名称是RESTfulExample看来你服务这条道路:
/RESTfulExample/json/metallica/get

另外,你应该从两个**编译错误在代码:
**track.setTitle("Enter Sandman");

+0

是的,我也尝试这个,但它不工作 – Vipul

相关问题