如何访问耳朵文件中组装的端点?

时间:2019-06-11 10:11:12

标签: rest java-ee ear

我正在使用Java ee作为后端并且使用angular作为前端来构建Web应用程序。作为应用服务器,我选择了Wildfly13。作为后端的构建工具,我选择了Maven。我已经为项目创建了此结构:

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

这两个模块都不打包war文件,我打包3个jar,最后使用

将它们组装到ear文件中
  

“ Project-ear”

我试图在内部使用暴露的服务

  

“项目服务”

但是我不能。看来我没有设定正确的网址。有人可以帮我吗?

我尝试访问以下网址:

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

我创建了RestActivator类:

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

}

我创建了一个Resource类:

@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 :(得分:0)

在配置应用程序服务器(Wildfly)并添加耳罩时,它会在耳夹中创建目标文件夹。在这里可以找到一个名为application.xml的文件。您必须像这样设置上下文根:

<?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取决于您在application.xml的context-root中设置的内容以及如何在根类(RestActivator)中设置应用程序路径。 在此示例中:

localhost:8080/api/resources

并在TestResource中访问您的方法:

localhost:8080/api/resources/test/testDtos