2013-08-13 1 views
2

Я не могу понять это. попытался использовать аннотации и web.xml для настройки путей к webcontent, но продолжать получать неизвестные ресурсы., обслуживающий HTML/JSP, в приятном webapp, используя jersey & java

Джерси главный:

@ApplicationPath("/") 
public class App extends PackagesResourceConfig { 
    public App() { 
     super("webapp.resources"); 
    } 
} 

Джерси путь по умолчанию "/": (привет мир работает index.html \ JSP не!)

@Path("/") 
@Produces(MediaType.TEXT_HTML) 
public class RootResource 
{ 
    @GET 
    public String index(@Context HttpServletRequest request) { 
     return "hello world"; 
    } 
} 

Что я пробовал:

  1. несколько web.xml config
  2. выступающей viewables (ошибка не может разрешить шаблон index.jsp)

, что вы думаете, может быть решением для обслуживания страниц, таких как HTML или JSP?

есть способ сделать это с майкой (без пружины!) И видимыми \ шаблонами?

ответ

1

Это должно быть легко; попробуйте следующее:

/WEB-INF/web.xml файл:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 

    <display-name>Your REST end Point</display-name> 

    <!-- /////////////////////// JERSEY (NO SPRING) ///////////////////////// --> 
    <servlet> 
     <servlet-name>MyRESTEndPoint</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 

     <!- Package where jersey will scan for resources -> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.mycompany</param-value> 
     </init-param> 

     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>MyRESTEndPoint</servlet-name> 
     <url-pattern>/MyRESTEndPoint/*</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

</web-app> 

AT пакет com.mycompany (смотрите на в web.xml) поместить Application класс:

package com.mycompany; 

public class MyApp 
    extends Application { 
    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> s = new HashSet<Class<?>>(); 
     s.add(MyResource.class); 
     // ... add other resources 
     return s; 
    } 
} 

Создать ресурс как:

@Path("myResourcePath") 
public class R01ERESTResourceForStructure { 
    @GET @Path("{myResourceId}") 
    @Produces(MediaType.APPLICATION_XML) 
    public Response load(@PathParam("myResourceId") final String id) { 
     .... 
    } 
} 

Ваши URLs должны быть: как/MyRESTEndPoint/myResourcePath/myResourceId

Если вы используете SPRING или Guice web.xml должен быть немного отличается

+0

Я делал именно так много раз за последние несколько дней. я только что сделал это снова - 1 выключил сервер 2 чистый проект 3 создал web.xml когда я положил xml в папку с информацией о сети, он «борется» с аннотациями @path что-то, что я не могу объяснить , прямо сейчас кажется, что сервер игнорирует web.xml, потому что я могу получить доступ к пути, который я не объявлял в web.xml. есть способ сделать это с аннотацией джерси/java. я ненавижу установку xml! – OrenM

+0

Итак, у вас есть ресурс REST для работы, но вы хотите настроить JSP-службу ТОЛЬКО через аннотации (без web.xml). Правильно? Я не знаю способ зарегистрировать JSP через аннотации (сервлеты можно было зарегистрировать с помощью аннотаций [см. Сервлет 3.0] (https://blogs.oracle.com/swchan/entry/servlet_3_0_annotations), но jsps ...) – futuretelematics

+0

Это работает , Огромное спасибо :) – Protagonist

0

Джерси обеспечивает поддержку шаблонов JSP в Джерси-mvc- расширение JSP модуль

ЗАКАНЧИВАТЬ official doc

3

ответить на мой вопрос. Решение futuretelematics должно работать для большинства людей. это известное и действительное решение. так почему не работает, когда я сделал это:

вопрос 1: после того, как много пустячный вокруг я обнаружил, что когда я изменил корневой путь приложения от «/» до «/ апи» (или/???) внезапно все начало играть. должен быть майка предмет. Я где-то читал, что для того, чтобы сделать «/» работу, вы должны сопоставить с фильтром в web.xml. Я бы с удовольствием услышал, успешно ли это сделал.

так что сейчас он служит для моей начальной страницы с JSP. эту страницу я могу манипулировать с помощью jsons в режиме отдыха.

вопрос 2: делает @viewable работу только вопрос создания правильного пути структуры папок в WebContent (COM/WebAPP/модель/индекс (< - JSP)). вот как работает переназначение страницы.