Как представить EJB 3.1 как веб-службу REST?

Я обнаружил новую функцию в java restful при использовании EJB 3.1, читая статью в блоге Адама Биена.

Дело в том, что bean-компоненты Stateless и Singleton могут быть представлены как корневые ресурсы. Но как? Я попытался сделать это следующим образом:

@Stateless
@LocalBean
@Path("Hybrid")
public class RESTEJBSample {

    @GET
    @Path("/demo")
    @Produces(MediaType.TEXT_PLAIN)
    public String something() {
        return "I am a Hybrid!!!";
    }

}

Когда я вызываю URL-адрес http://localhost:8080/HybridSample/resources/Hybrid/demo, я получаю ошибку 404.

Кроме того, чтобы убедиться, что JAXRS работает в моем проекте, я создал простой ресурс pojo, чтобы проверить, работает ли он нормально.

@Path("/genericresource")
public class GenericResource {
    @GET
    @Path("/samplemethod")
    @Produces(MediaType.TEXT_PLAIN)
    public String saySomething() {
        return "Something!";
    }
}

Здесь, когда я вызываю URL-адрес http://localhost:8080/HybridSample/resources/genericresource/samplemethod, он работает нормально!

Итак, мои вопросы:

  • чего не хватает в моем EJB, чтобы он мог работать как ресурс веб-службы, такой как класс GenericResource?

  • Нужна ли дополнительная настройка?

  • Каковы ограничения при использовании EJB в качестве веб-службы?

10
задан MannikJ 13 April 2016 в 11:41
поделиться