Java 为EJB创建RESTAPI

Java 为EJB创建RESTAPI,java,rest,jboss,ejb,Java,Rest,Jboss,Ejb,我正在使用JBoss9.x应用服务器,我想创建一个RESTAPI来与我的EJB通信。 我创建了两个类PlayerRestApi和PlayerEJB并将其部署到wildfly,但当我请求/player时,响应总是404 注意:我将发布带有虚拟返回的PlayerRestApi类 PlayerRestApi代码: @Local @Path("/player") @Consumes("application/json") @Produces("application/json") public clas

我正在使用JBoss9.x应用服务器,我想创建一个RESTAPI来与我的EJB通信。 我创建了两个类PlayerRestApi和PlayerEJB并将其部署到wildfly,但当我请求/player时,响应总是404

注意:我将发布带有虚拟返回的PlayerRestApi类

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;
    }
}
@Local
@路径(“/player”)
@使用(“应用程序/json”)
@生成(“应用程序/json”)
公营球员{
玩家;
@得到
公共地图getPlayer(){
Map r=新的HashMap();
r、 放入(“姓名”、“罗纳尔多”);
返回r;
}
}
当我尝试此路由时,localhost:
Wildfly返回404。

您需要使用例如RESTEasy库,我不知道Wildfly是否有现成的库(是jboss库),您也可以使用Jersey

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

下面是一个示例(您必须将类放在resteasy.resources中)


resteasy.resources
您的JAX-RS注释类
轻松扫描
真的
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
RESTEasyServlet
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
RESTEasyServlet
/*

我部署的是jar文件而不是war文件,所以wildfly返回404。 代码正确且有效


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

我认为Wildfly 9.0+不需要web.xml文件,对吗?您好,我还没有使用Wildfly 9.0+。我不知道是否有现成的实例可以提供rest服务。。。
<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>