2015-07-28 2 views
0

Я разрабатывал пример RESTful Web Service, используя Apache Tomcat в Eclipse, но я не выполняю этот пример.Запуск веб-службы RESTful в Eclipse с Apache Tomcat

Во-первых, я настроил Apache Tomcat на 8080 порт, поэтому, когда я запускаю сервер я могу видеть приветственное окно.

Я создал проект под названием «RestEjemplo», то я создал «Hola.java» класс, который в «es.rest.test» пакет

Ниже я покажу код Hola.java

package es.rest.test; 

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


// POJO, no interface no extends 

// Sets the path to base URL + /hola 
@Path("/hola") 
public class Hola { 

    // This method is called if TEXT_PLAIN is request 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayPlainTextHello() { 
     return "Hola Jersey"; 
    } 

    @GET 
    @Produces(MediaType.TEXT_XML) 
    public String sayXMLHello(){ 
     return "<?xml version=\"1.0\"?>" + "<hola> Hola Jersey" + "</hola>"; 
    } 

    // This method is called if HTML is request 
    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String sayHtmlHello(){ 
     return "<html> " + "<title>" + "Hola Jersey" + "</title>" + 
       "<body><h1>" + "Hola Jersey" + "</h1></body>" + 
       "</html>"; 
    } 

} 

И это мой 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>RestEjemplo</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> 

    <servlet> 
    <servlet-name>Jersey REST Service</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>es.rest.test</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> 

</web-app> 

После этого я проверил, что парам значение было то же имя пакета моего проекта, а остальные параметры

я щелкаю по моему классу Helo.java и «Запуск> Выполнить на сервере " и Eclipse, запустить следующее направление автоматически

http://localhost:8080/RestEjemplo/WEB-INF/classes/es/rest/test/Hola.java 

, который, я думаю, что это неправильно. В любом случае веб-браузер имеет ошибку.

Estado HTTP 404 - 
type: Informe de estado 
mensaje: 
descripción: El recurso requerido no está disponible 

Apache Tomcat/7.0.63 

Кроме того, если я изменю де URI/URL к другому, который имеет больше смысла, как это:

http://localhost:8080/RestEjemplo/rest/hola 

Eclipse, покажите мне ту же ошибку. Я не знаю, как это решить, потому что я думаю, что конфигурация Apache в порядке, и последний использованный URI также в порядке. Что я не так?

+0

Вы пробовали http: // localhost: 8080/rest/hola – morsor

+0

Да, но не работает –

+0

Параметрическое значение в файле web.xml должно содержать имя пакета java, а не имя проекта. es.rest.test Drona

ответ

0

Джерси 2.0 не признает init-param с именем com.sun.jersey.config.property.packages

Попробуйте изменить его

jersey.config.server.provider.packages 

Тогда вместо:

http://localhost:8080/RestEjemplo/rest/hola 

Вы можете использовать что-то вроде этого

http://localhost:8080/es.rest.test/rest/hola 

Вы можете также хочу посмотреть на этот ресурс Jersey REST Web Service, Tomcat, Eclipse and 404 error

+0

Я получаю HTTP 404, снова –

+0

Кажется, вы используете Джерси 2.0. проверьте один раз с обновленным ответом. – Rockstar

+0

Я использую Jersey 2.19, и я меняю _com.sun.jersey.config.property.packages_ на _jersey.config.server.provider.packages_ и не работает. Также я читал нить, которую вы мне рекомендуете, а затем я копирую код в новый проект на Eclipse, но не работает –

0

Если URL парам есть

<url-pattern>/rest/*</url-pattern> 

хит,

http://localhost:8080/RestEjemplo/rest/hola/ok

Попробуйте: Измените метод и ударил выше URL:

@GET 
    @Path("/ok") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayPlainTextHello() { 
     return "Hola Jersey"; 
    } 
+0

Я ударил http: // localhost: 8080/RestEjemplo/rest/hola ранее, но не работает все же –

+0

вы нажимаете этот url в затмении? @ JoséMaríaValbae – VedX

+0

Да, я нажимаю URL-адрес в веб-браузере, который принадлежит Eclipse, а также в Chrome, но ни один из них не работает –

Смежные вопросы