2016-10-10 4 views
1

Я разрабатываю ws с трикотажем и Tomcat8, проблема в том, что @path не обрабатывается, поэтому результирующий URL-адрес не работает должным образом.RESTful jersey 404 не найдено

пакетов и классов Описание:

eu.datex и eu.datex2 пакеты содержат классы Java с XML-аннотаций для JAXB.

Класс трансформатора преобразует данные xml в java, эти классы java обрабатываются и сохраняются в новом объекте datex2, который будет возвращен ass http get для ответа с XML.

URL, который не работает Localhost: 8090/org.CTAG.DATEX2REST/отдых/Datex

Здесь я покажу вам мою структуру МВН проекта и некоторые важные файлы.

MVN Структура:

enter image description here

Это ResourceConfig класс:

package com.CTAG.application; 
import javax.ws.rs.ApplicationPath; 
import org.glassfish.jersey.server.ResourceConfig; 


@ApplicationPath("/rest") 
public class MyApplication extends ResourceConfig { 

    public MyApplication() { 
     packages("com.CTAG.rest;"); 
    } 

} 

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" version="3.1"> 
    <display-name>org.CTAG.DATEX2REST</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> 

    <display-name>CTAG DATEX2</display-name> 

    <listener> 
     <listener-class> 
      com.CTAG.application.Init 
     </listener-class> 
    </listener> 
</web-app> 

Этот класс инициализирует преобразование из XML-данных (от сервера ГЭТ) к классам Java с JAXB:

public class Init implements ServletContextListener { 

    @Override 
    public void contextDestroyed(ServletContextEvent arg0) { 
     System.out.println("ServletContextListener destroyed"); 
    } 
    @Override 
    public void contextInitialized(ServletContextEvent arg0) { 
     System.out.println("----INITIALIZED----"); 
     try { 
      Map<SituationRecord, Integer> map = new HashMap<>(); 

       URL url = new URL(" http://infocar.dgt.es/datex2/dgt/SituationPublication/all/content.xml"); 
       Map<SituationRecord, Integer> copia = map; 
       map = Traslator.traslator(copia, url); 
       System.out.println("----DATEX now available----"); 

       // Preubassleep(30000); 

     } catch (TransformerConfigurationException | JAXBException | ParserConfigurationException | IOException e) { 

      e.printStackTrace(); 
     } 
    } 
} 

класс ресурсов (DataExchange), это возвращено класс Java, который будет преобразован в XML :

package com.CTAG.rest; 


@Path("/datex") 
@Produces(MediaType.APPLICATION_XML) 
public class DataExchange { 

    private D2LogicalModel datex2 = Traslator.d2; 

    @GET 
    @Produces(MediaType.APPLICATION_XML) 
    public Response getDatex() { 

     return Response.ok(this.datex2).build(); 
    } 

    @GET 
    @Path("/{road}") 
    public Response getDatexByRoad(@PathParam("road") String roadName){ 

     SituationPublication payLoad = (SituationPublication)this.datex2.getPayloadPublication(); 
     FilterByRoad filter = new FilterByRoad(payLoad.getSituation()); 
     List<Situation> filteredList = new LinkedList<>(); 
     filteredList.addAll(filter.filterByRoad(roadName)); 
     payLoad.setSituation(filteredList); 
     this.datex2.setPayloadPublication(payLoad); 

     return Response.ok(this.datex2).build(); 
    } 
+1

Какое окончательное название войны? – kuhajeyan

+0

Что такое 'org.CTAG.DATEX2REST'? – ujulu

ответ

0

Заменить

{

packages("com.CTAG.rest;"); 

}

к

{

packages("com.CTAG.rest"); 

}

Это будет работать.

+0

Привет, спасибо, что исправил эту ошибку, но она все еще не работает. – Datex2

0

Это было решено с помощью register() вместо пакетов(), но я не могу понять, почему, спасибо.

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

  • Нет связанных вопросов^_^