2015-11-08 58 views
1

我正在使用JBoss 9.x应用程序服务器,我想创建一个REST API来与我的EJB进行通信。 我创建了两个类PlayerRestApi和PlayerEJB和部署到wildfly,但是当我请求/播放器的反应总是404为EJB创建REST API

注:我将张贴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

回答

1

我部署一个jar文件,而不是战争的文件,因此wildfly回报404 它的代码是正确的和工作。

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

1

您需要使用例如图书馆的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> 
+0

我觉得野蛮9.0+不需要web.xml文件,它是正确的? – urb

+0

嗨,我还没有使用wildfly 9.0+。我不知道是否有一个实例可以开箱即可提供休息服务...... –