2009-06-07 5 views
2

Je suis nouveau à Seam et que vous souhaitez développer Webservice en utilisant Seam.I ont une date limite agressive Où je peux trouver les détails pour développer le Webservice en utilisant Seam.Any bon document, livre, site Web, etc.Webservice utilisant Seam

+0

Duplicata de http://stackoverflow.com/questions/911424/qui-est-que-le-premier-cadre-pour-implement-soap-web-services-sur-jboss-seam – mtpettyp

Répondre

4

Comme mentionné dans the other question, vous pouvez utiliser JAX-WS. Toutefois, si vous préférez utiliser les services REST (JAX-RS) alors:

  • Lire sur JAX-WS dans le Seam Docs
  • Jetez un coup d'article de Stéphane Épardaud here; ou
  • Jetez un oeil à Sun Jersey qui est une implémentation de JAX-RS.

EDIT: Norman Richards de l'équipe de Seam vient de publier un blog article about Seam and JAX-RS. Il a l'air fantastique et probablement plus ce que vous cherchez que Jersey.

J'ai jeté un coup d'oeil à Jersey la semaine dernière et j'ai été étonné de voir combien peu de code vous avez besoin. Voici un petit guide:

  1. Téléchargez le Jars Jersey et les JAXB Jars (vous pouvez sortie XML et/ou JSON) et les ajouter à votre classpath
  2. Ajouter le servlet Jersey à votre web. xml (dans l'exemple ci-dessous avec un url-pattern de service/*)
  3. annoter le Bean qui contient vos données avec annotations JAXB
  4. Créer une classe de service avec les annotations Jersey.

Voici un exemple d'un service:

@Path("/users") 
public class UsersService { 
    @GET 
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 
    public Users getUsers() { 
    return UserQuery.getUsers(); 
    } 
} 

Lorsque cela est la classe des utilisateurs:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlRootElement(name = "users") 
public class Users { 
    @XmlElement(name="users") 
    private List<User> users = new ArrayList<User>(); 

    public List<User> getUsers() { 
    return this.users; 
    } 

    public void setUsers(List<User> users) { 
    this.users = users; 
    } 
} 

Et ceci est la classe User:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlRootElement(name = "user") 
public class User implements Serializable { 
    @XmlElement(name="id") 
    private long userId; 

    @XmlElement(name="firstName") 
    private String firstName; 

    @XmlElement(name="lastName") 
    private String lastName; 

    @XmlElement(name="email") 
    private String email; 

    public User() {} 

    public User(long userId, String firstName, String lastName, String email) { 
    this.userId = userId; 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.email = email; 
    } 

    //And the getter/setters 
} 

Ensuite, vous pouvez accéder à la service à http://yourhost/service/users Il va produire XML ou JSON en fonction de ce que votre client a pour son entête HTTP Accepts. Assez cool hein?