我正在使用JBoss 9.x Application Server,并且想创建一个REST api与我的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;
    }
}


当我尝试此路由时,本地主机:http://localhost:28070/appname/player
Wildfly返回404。

最佳答案

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

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

这是一个示例(您必须将类放在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>

10-04 10:27