Как получить доступ к конечной точке, собранной внутри файла ear? - PullRequest
0 голосов
/ 11 июня 2019

Я создаю веб-приложение, используя java ee в качестве бэкэнда и angular в качестве внешнего интерфейса. В качестве сервера приложений я выбрал Wildfly 13. В качестве инструмента сборки для бэкэнда я выбрал Maven. Я создал эту структуру для проекта:

-Project
---Project-ear
---Project-model
---Project-service
---Project-service-api

Ни один из этих модулей не упаковывает файл war, я упаковываю 3 баночки и в конце собираю их в файл ear, используя

"Проект-ухо"

Я пытался использовать открытую службу внутри

"Проект-сервис"

но я не могу. Кажется, я не установил правильный URL. Может кто-нибудь помочь мне, пожалуйста?

Я попытался получить доступ к следующим URL-адресам:

http://localhost:8080/Project-ear/Project-service/resources/test/testDtos/,
http://localhost:8080/resources/test/testDtos/ 

Я создал класс RestActivator:

@ApplicationPath("/resources")
public class RestActivator extends Application {

}

И я создал класс ресурсов:

@Path("/test")
public class TestResource {

    @GET
    @Path("/testDtos")
    @Produces(MediaType.APPLICATION_JSON)
    public Response getWorkflowDiagram() {
        TestDto testDto =  new TestDto();
        testDto.setFirstName("Test");
        testDto.setLastName("Test");
        return Response.ok(testDto).build();
    }
}

Я не получаю сообщения об ошибке, просто не могу получить доступ к конечной точке URL.

1 Ответ

0 голосов
/ 17 июня 2019

Когда вы настраиваете сервер приложений (Wildfly) и добавляете артефакт уха, он создает целевую папку в вашей папке ear.Там вы можете найти файл с именем application.xml.Вы должны установить context-root следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
 <application xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"
  version="7">

  <module>
      <web>
          <web-uri>test.war</web-uri>
          <context-root>/api</context-root>
      </web>
  </module>

</application>

Ваш URL зависит от того, что вы установили в context-root в application.xml, и от того, как вы установили путь к приложению в вашем корневом классе (RestActivator),В этом примере:

localhost:8080/api/resources

И чтобы получить доступ к вашему методу в TestResource:

localhost:8080/api/resources/test/testDtos
...