2016-11-22 2 views
1

Я пытаюсь изучить службу обслуживания джерси с помощью tomcat, но сталкиваясь с проблемами при попытке рендерить index.html, а затем сделать запрос ajax для вызова службы джерси. WebContentсервис службы джерси с tomcat не работает с конфигурацией файла приветствия в web.xml

Вот мой web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
<display-name>rest</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 


    <servlet> 
     <servlet-name>Rest With Jersey2</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.rest.jersey2</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Rest With Jersey2</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

И это моя джерси служба

package com.rest.jersey2; 

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

@Path("/hello") 
public class Test { 

    @GET 
    @Produces("application/json") 
    public Response defaultReverser() { 

     String result = "" ; 
     return Response.status(200).entity(result).build(); 
    } 


} 

, который я хочу получить доступ из first.js, которая включена в index.html для запроса

$.ajax({ 
     url: "/hello", 
     type: "GET", 
     success: function(){ 
      alert("success"); 
     }, 
     error: function(){ 
      alert("error!"); 
     } 
    }); 

Когда я запускаю приложение для отдыха на t omcat server он отображает index.html, но дает 404 Не найден после нажатия кнопки, чтобы запросить ajax для url/hello, чтобы вызвать службу джерси. В консоли отсутствует сообщение об ошибке, и сервер запускается нормально.

Не могли бы вы направить меня, чтобы он работал!

EDIT: Если я тестирую свое обслуживание отдыха самостоятельно, он не работает с URL-адресом/отдыхом/* в web.xml. Однако он работает, если я использую/*, но в этом случае я не могу отображать файл приветствия.

Когда я пытаюсь сделать index.html с сервисом отдыха, эта страница не может найти first.js, который включен в index.html, но buti попытался поместить first.js во многие директории, включая то же, что и исходный файл службы отдыха.

ответ

1

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

Поскольку вы получаете «не найден», я бы сказал, что вы, вероятно, не нацеливаете правильный URI службы. Может быть, потому, что вы передаете «/ hello» в jquery, где ваша служба отображается под покой/*. (Так что, вероятно,/rest/hello - это ваш URL). Если нет, используйте полный URL вашего сервиса для проверки (например: localhost: 8080/rest/rest/hello). Имейте в виде URL будет хост: порт/приложение/mappedurl/serviceurl

Если все еще есть проблемы, есть взгляд в этом джерси службе (https://github.com/NicolasFonte/rentals/blob/master/src/main/java/nicolas/trial/rest/RentalResource.java), которые подключаться с помощью JQuery в данном примере (https://github.com/NicolasFonte/rentals/blob/master/src/main/webapp/js/rentals.js), и вы будете в значительной степени решить Это.

+0

Привет, Николас, когда я тестировал свою службу отдыха самостоятельно, он не работает с URL-адресом/отдыхом/* в web.xml. Однако он работает, если я использую/*, но в этом случае я не могу отображать файл приветствия. благодаря – Shruti

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