rest - Glassfish and Java EE Webapp 500 error 4 out of 5 times -
i trying make rest service glassfish 4. have soap service , servlet working properly, cannot rest stuff work.
here simple dao:
@remote @webservice public interface ipersondao { public void createandsave(string fn, string ln, string eid); public void persist(person p); public collection<person> getallpeople(); public person getperson(integer id); public void delete(person p); public void deletebyid(integer id); } @stateless @remote(ipersondao.class) @named("memorypersondao") @webservice(endpointinterface = "dummy.server.ipersondao") public class persondao implements ipersondao { map<integer, person> people; int id_seq = 1; /** * */ public persondao() { people = new java.util.hashmap<integer, person>(); /*createandsave("mike", "jones", "2234"); createandsave("joe", "smith", "22314");*/ } @postconstruct public void postconstruct() { createandsave("mike", "jones", "2234"); createandsave("joe", "smith", "22314"); } private int nextid() { return id_seq++; } /* * (non-javadoc) * * @see dummy.server.ipersondao#createandsave(java.lang.string, * java.lang.string, java.lang.string) */ @override public void createandsave(string fn, string ln, string eid) { person p = new person(); p.setfirstname(fn); p.setlastname(ln); p.setemployeeid(eid); p.setid(nextid()); persist(p); } @override public person getperson(integer id) { return people.get(id); } /* * (non-javadoc) * * @see dummy.server.ipersondao#persist(dummy.server.person) */ @override public void persist(person p) { if (p.getid() != null) { p.setid(nextid()); } people.put(p.getid(), p); } /* * (non-javadoc) * * @see dummy.server.ipersondao#getallpeople() */ @override public collection<person> getallpeople() { return people.values(); } /* (non-javadoc) * @see dummy.server.ipersondao#delete(dummy.server.person) */ @override public void delete(person p) { deletebyid(p.getid()); } /* (non-javadoc) * @see dummy.server.ipersondao#deletebyid(java.lang.integer) */ @override public void deletebyid(integer id) { people.remove(id); } here's rest class
@applicationpath("api") public class personrestservice extends application { @ejb ipersondao persondao; /** * */ @override public set<class<?>> getclasses() { final set<class<?>> classes = new hashset<class<?>>(); classes.add(personrestservice.class); return classes; } public personrestservice() { } @get @path("people") public string test() { return "test ok"; } public collection<person> getpeople(){ system.err.println("getting people!"); return persondao.getallpeople(); } } i have servlet works , soap service works (i can see ?wsdl , ?tester pages). rest url? see in log:
2015-07-07t10:17:32.052-0400|info: registering jersey servlet application, named dummy.server.personrestservice, @ servlet mapping /api/*, application class of same name.
here web.xml (not needed due using annotations):
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>gb</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> here glassfish-web.xml
<!doctype glassfish-web-app public "-//glassfish.org//dtd glassfish application server 3.1 servlet 3.0//en" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> <glassfish-web-app> <context-root>/gb</context-root> </glassfish-web-app> however, cannot figure out rest url. know gives here?
Comments
Post a Comment