2016-02-11 4 views
0

Я пытаюсь работать с Java Restful Api..Но когда я запускаю приложение, сервер посылает обратно Ресурс не найден .. Я стараюсь, но я не могу решить эту проблему Я использую Eclipse IDE и сервер Tomcat 7.Java Restful API .. Запрошенный ресурс недоступен

................ web.xml файл .....................

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
<display-name>RestfullAndAngularJSTest</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
<welcome-file>index.htm</welcome-file> 
<welcome-file>index.jsp</welcome-file> 
<welcome-file>default.html</welcome-file> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
</web-app> 

........... Product.java файл .....................

package entities; 

import java.io.*; 
import javax.xml.bind.annotation.*;; 

@XmlRootElement(name = "product") 
public class Product implements Serializable { 
    private String id; 
    private String name; 
    private double price; 

    @XmlElement 
    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    @XmlElement 
    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @XmlElement 
    public double getPrice() { 
     return price; 
    } 

    public void setPrice(double price) { 
     this.price = price; 
    } 

    public Product(String id, String name, double price) { 
     super(); 
     this.id = id; 
     this.name = name; 
     this.price = price; 
    } 

    public Product() { 

    } 

} 

..... ...... ApplicationConfig.java файл ....................

package productWS; 

import java.util.Set; 

import javax.ws.rs.core.Application; 

@javax.ws.rs.ApplicationPath("rest") 
public class ApplicationConfig extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> resources = new java.util.HashSet<>(); 
     addRestResourceClasses(resources); 
     return resources; 
    } 

    private void addRestResourceClasses(Set<Class<?>> resources) { 
     resources.add(productWS.ProductRestFull.class); 
    } 

} 

......... ProductRestFull.java файл ......

package productWS; 

import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 

import java.util.*; 
import entities.*; 

@Path("product") 
public class ProductRestFull { 
    @GET 
    @Path("findall") 
    @Produces(MediaType.APPLICATION_JSON) 
    public List<Product> findAll() { 
     List<Product> result = new ArrayList<Product>(); 
     result.add(new Product("P01", "Name1", 1000.00)); 
     result.add(new Product("P02", "Name2", 1050.00)); 
     result.add(new Product("P01", "Name3", 2000.00)); 
     result.add(new Product("P01", "Name4", 3000.00)); 
     return result; 
    } 
} 

Это URL: http://localhost:8080/RestfullAndAngularJSTest/rest/product/findall

ответ

0

Вам необходимо включить реализацию JAX-RS API джерси баночку т.е. построить успокоительные WebServices.

Загрузите jersey jar снизу.

https://jersey.java.net/download.html

Добавить после вступления сервлета в web.xml.

<servlet> 
     <servlet-name>Jersey REST Service</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.expertwebindia.rest</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>Jersey REST Service</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
     </servlet-mapping> 

Вы можете получить более подробную информацию о JAX-RS tutorial

+0

я уже выполнил вашу инструкцию, но она по-прежнему не работает ... может кто-нибудь мне помочь ?? –

+0

Добавили ли вы запись сервлета в web.xml. Вам нужно jersey.config.server.provider.packages param для вашего имени пакета «productWS». Поделитесь записью web.xml здесь и ошибкой, которую вы получаете. –

+0

pastebin link web.xml файл: http: //pastebin.com/dwQU69f6 –