Я просто не могу найти путь к доступу к ресурсу JAX-RS, который развернут в wildfly.найти путь к ресурсу JAX-RS
ear.ear ПОМ:
<parent>
<artifactId>jee-services</artifactId>
<groupId>org.mycompany</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<packaging>ear</packaging>
<modelVersion>4.0.0</modelVersion>
<artifactId>ear</artifactId>
<dependencies>
<dependency>
<groupId>org.mycompany</groupId>
<artifactId>ejb_book</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>
ejb_book ПОМ:
<parent>
<artifactId>jee-services</artifactId>
<groupId>org.mycompany</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>ejb</packaging>
<artifactId>ejb_book</artifactId>
применение конфигурации
@ApplicationPath("/resources")
public class ApplicationConfig extends Application {
}
ресурс
@Stateless
@Path("/books")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class BookResource extends AbstractFacade<Book> {
@PersistenceContext
private EntityManager entityManager;
@GET
@Path("/getBooks")
public Book getBook() {
return new Book();
}
Я думаю, что проблема в том, что я упаковка мой ejb_book.jar в ear.ear (где я собираю все другие модули EJB-)
Я пробовал:
localhost:8080/ear/resources/books/getBooks
и много других комбинаций, но ни один из них работали.
Приложение отлично развертывает сервер WildFly.
BTW: есть ли инструмент, помогающий людям получить доступ к их ресурсу JAX-RS? Например, из IDE. Поэтому мой вопрос больше не будет проблемой.
Вы также упаковываете WAR в свой EAR? Для доступа к службе REST вам необходимо предоставить контекстный корень. – aribeiro
Нет ВОЙНЫ. Я просто позвоню в свой браузер. Я что-то пропустил? –
Да, вы пропустили. Как упоминалось в [документации] (http://download.oracle.com/otn-pub/jcp/jaxrs-2_0-fr-eval-spec/jsr339-jaxrs-2.0-final-spec.pdf?AuthParam=1459700634_e34cc8220f019bf96f82813e0e098184) "* Приложение JAX-RS упаковано в виде веб-приложения в .war-файле. *". Поэтому вам необходимо иметь WAR, чтобы обеспечить * context-root * для службы REST вашего приложения. Только тогда вы сможете позвонить в службу REST в форме: * http: // localhost: 8080/context-root/ear-1.0-SNAPSHOT/resources/books/getBooks *. – aribeiro