2012-10-05 3 views
0

У меня есть java webservice (jaxws/jersey) и хочу, чтобы он отображал изображение на первой странице , когда я посещаю веб-сервис с помощью браузера.Показать изображение с JAXWS Jersey Webservice

Моего @GET Метод, который посылает в HTML-код для первой страницы выглядит следующим образом:

@GET 
@Produces(MediaType.TEXT_HTML) 
public String getHTMLSite(){ 

    String message = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"+ 
      "<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"de-DE\">" + 
      "<div style=\"padding-left:20px; height:200px; width:800px; font-size:20px;\">" + 
       "<p>" + 
        "<h1 style=\"color:#313e7d\">" + 
         "Hello World. This is a Webservice URL" + 
        "</h1>" + 
       "</p>"+ 
       "<img src=\"/images/img_logo.gif\" height=\"51\" width=\"537\"/>"+ 
      "</div>"+ 
      "</html>"; 


    return message; 
} 

Все работает отлично, за исключением изображений

<img src=\"/images/img_logo.gif\" height=\"51\" width=\"537\"/> 

не было найдено.

Я переместил изображение в каталог WebContent/images /.

Что я делаю неправильно?

+0

Что ваш фильтр-отображение 'URL-pattern'? Это '/ *'? – condit

+0

О, хорошо, у меня даже нет фильтра-сопоставления, кроме сервлет-отображения. Для сервлет-сопоставления установлено значение/*. – Chris

ответ

1

Поскольку у вас есть набор карт сервлетов /*, Джерси собирается перехватить все эти запросы на статические ресурсы и не знать, что с ними делать. Вы могли бы:

  • Переместить расположение вашего сервлета-отображения на /api/* или что-то подобное. Это решит проблему статического ресурса, но переместит конечную точку всех ваших вызовов REST.

  • Переключение на фильтр-Джерси, как описано в этом ответе: Jersey /* servlet mapping causes 404 error for static resources

+0

большое спасибо. Второй вариант работал как шарм. – Chris

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