Consume Resteasy integrated with EJB
eliram Jun 9, 2011 4:36 PMHi,
I'm new to Restful web services.
After spending lots of hours understaing how to build a simple server exposes an EJB through Resteasy, I finnaly got JBoss to deploy my app without any error.
Now, I simply don't understand how to consume my service.
I'm using IntelliJ 10.0.2 Rest Client for that. My project is here.
I have GroupService interface:
@Local @Path("/groups") public interface GroupService { @GET @Produces("application/json") @Path("/getGroupShapes/{groupName}") public String getGroupShapes(@PathParam("groupName")String groupName); }
And GroupServiceBean:
@Local @Stateless public class GroupServiceBean implements GroupService { Map<String,WhiteBoardGroup> groups; public GroupServiceBean() { groups = new HashMap<String, WhiteBoardGroup>(); WhiteBoardGroup group = new WhiteBoardGroup("Yariv"); Oval o = new Oval(-65536, new Point(5,5), new Point(20,20), true); Line l = new Line(-65536, new Point(60,60), new Point(90,90)); group.addShape(o); group.addShape(l); groups.put(group.getName(), group); } public String getGroupShapes(@PathParam("groupName") String groupName) { WhiteBoardGroup group = groups.get(groupName); ObjectMapper mapper = new ObjectMapper(); try { return mapper.writeValueAsString(group.getBorad()); } catch (IOException e) { e.printStackTrace(); } return ""; } }
And a web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>resteasy.jndi.resources</param-name> <param-value>GroupServiceBean/local</param-value> </context-param> <listener> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> </listener> <servlet> <servlet-name>Resteasy</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> </servlet> <servlet-mapping> <servlet-name>Resteasy</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
I tried:
but I get HTTP 404.
Does it mean that after all I did not build my ear correctly?