我正在使用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>