为 EJB 创建 REST api

Creating REST api for EJB

我正在使用 JBoss 9.x 应用程序服务器,我想创建一个 REST api 来与我的 EJB 通信。 我创建了两个 classes PlayerRestApi 和 PlayerEJB 并将其部署到 wildfly,但是当我请求 /player 时,响应始终是 404。

注意: 我将 post PlayerRestApi class 与虚拟 return。

PlayerRestApi 代码:

@Local
@Path("/player")
@Consumes("application/json")
@Produces("application/json")
public class PlayerRestApi{
    PlayerEJB player;

    @GET
    public Map<String, String> getPlayer(){
        Map<String, String> r = new HashMap<String,String>();
        r.put("Name","Ronaldo");
        return r;
    }
}

当我尝试这条路线时,本地主机:http://localhost:28070/appname/player 野蝇 returns 404.

您需要使用例如 RESTEasy 库,我不知道 wildfly 是否开箱即用(是一个 jboss 库),您也可以使用 Jersey。

¿您是否更新了 web.xml 以定义 RESTEasy servlet?

这是一个例子(你必须把你的 class 放在 resteasy.resources 中)

<context-param>
        <param-name>resteasy.resources</param-name>
        <param-value>your JAX-RS annotated class</param-value>
    </context-param>

    <!-- Auto scan REST service -->
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>

    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>resteasy-servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

我正在部署一个 jar 文件而不是 war 文件,所以 wildfly returns 404。 代码正确且有效。

注意此版本的 Wildfly Application Server 不需要 web.xml 文件。