REST: načítání seznamu článků z EJB a DB.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Tue, 06 Apr 2010 00:27:48 +0200
changeset 9212268fc31114
parent 91 936ad9853a30
child 93 ac53dcce11a9
REST: načítání seznamu článků z EJB a DB.
java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java
java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java
     1.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java	Tue Apr 06 00:09:59 2010 +0200
     1.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java	Tue Apr 06 00:27:48 2010 +0200
     1.3 @@ -1,5 +1,6 @@
     1.4  package cz.frantovo.nekurak.web;
     1.5  
     1.6 +import cz.frantovo.nekurak.ejb.ClanekRemote;
     1.7  import cz.frantovo.nekurak.ejb.PodnikRemote;
     1.8  import cz.frantovo.nekurak.ejb.UzivatelRemote;
     1.9  import java.io.Serializable;
    1.10 @@ -17,8 +18,9 @@
    1.11  
    1.12      private PodnikRemote podnikEJB;
    1.13      private UzivatelRemote uzivatelEJB;
    1.14 +    private ClanekRemote clanekEJB;
    1.15      private static final Logger log = Logger.getLogger(HledacSluzby.class.getSimpleName());
    1.16 -
    1.17 +    
    1.18      public PodnikRemote getPodnikEJB() {
    1.19  	if (podnikEJB == null) {
    1.20  	    try {
    1.21 @@ -44,4 +46,17 @@
    1.22  	}
    1.23  	return uzivatelEJB;
    1.24      }
    1.25 +
    1.26 +    public ClanekRemote getClanekEJB() {
    1.27 +	if (clanekEJB == null) {
    1.28 +	    try {
    1.29 +		Context c = new InitialContext();
    1.30 +		clanekEJB = (ClanekRemote) c.lookup("cz.frantovo.nekurak.ejb.ClanekRemote");
    1.31 +	    } catch (NamingException e) {
    1.32 +		log.log(Level.SEVERE, "Chyba při hledání ClanekRemote", e);
    1.33 +		throw new RuntimeException(e);
    1.34 +	    }
    1.35 +	}
    1.36 +	return clanekEJB;
    1.37 +    }
    1.38  }
     2.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java	Tue Apr 06 00:09:59 2010 +0200
     2.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java	Tue Apr 06 00:27:48 2010 +0200
     2.3 @@ -1,7 +1,6 @@
     2.4  package cz.frantovo.nekurak.xml;
     2.5  
     2.6  import cz.frantovo.nekurak.dto.Clanek;
     2.7 -import javax.xml.bind.annotation.XmlAttribute;
     2.8  import javax.xml.bind.annotation.XmlElement;
     2.9  import javax.xml.bind.annotation.XmlRootElement;
    2.10  
    2.11 @@ -21,7 +20,7 @@
    2.12  	this.clanek = clanek;
    2.13      }
    2.14  
    2.15 -    @XmlAttribute(name = "id", required = true)
    2.16 +    @XmlElement
    2.17      public int getId() {
    2.18  	return clanek.getId();
    2.19      }
     3.1 --- a/java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java	Tue Apr 06 00:09:59 2010 +0200
     3.2 +++ b/java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java	Tue Apr 06 00:27:48 2010 +0200
     3.3 @@ -1,7 +1,10 @@
     3.4  package cz.frantovo.nekurak.rest;
     3.5  
     3.6  import cz.frantovo.nekurak.dto.Clanek;
     3.7 +import cz.frantovo.nekurak.web.HledacSluzby;
     3.8  import cz.frantovo.nekurak.xml.ClanekXML;
     3.9 +import java.util.ArrayList;
    3.10 +import java.util.Collection;
    3.11  import javax.ws.rs.Consumes;
    3.12  import javax.ws.rs.DELETE;
    3.13  import javax.ws.rs.GET;
    3.14 @@ -14,14 +17,23 @@
    3.15  @Path("clanek")
    3.16  public class ClankyREST {
    3.17  
    3.18 -    private static final String MIME_XML = "text/xml";
    3.19 +    private static final String MIME_XML = "application/xml";
    3.20 +    private static final String MIME_TEXT = "text/plain";
    3.21 +    private HledacSluzby hledac = new HledacSluzby();
    3.22  
    3.23      /** Vypíšeme seznam všech článků v systému */
    3.24      @GET
    3.25      @Path("/")
    3.26 -    @Produces("text/plain")
    3.27 -    public String getClanky() {
    3.28 -	return "tady bude seznam";
    3.29 +    @Produces(MIME_XML)
    3.30 +    public Collection<ClanekXML> seznam() {
    3.31 +	Collection<ClanekXML> vysledek = new ArrayList<ClanekXML>();
    3.32 +	Collection<Clanek> clanky = hledac.getClanekEJB().getClanky();
    3.33 +
    3.34 +	for (Clanek c : clanky) {
    3.35 +	    vysledek.add(new ClanekXML(c));
    3.36 +	}
    3.37 +
    3.38 +	return vysledek;
    3.39      }
    3.40  
    3.41      /** Získáme konkrétní článek */
    3.42 @@ -42,7 +54,7 @@
    3.43       */
    3.44      @POST
    3.45      @Consumes(MIME_XML)
    3.46 -    @Produces("text/plain")
    3.47 +    @Produces(MIME_TEXT)
    3.48      public int zaloz() {
    3.49  	return 0;
    3.50      }