2009-06-07 46 views
2

我是新來Seam和想用Seam.I有一個積極的期限在哪裏可以找到詳細使用Seam.Any良好的文檔,書籍,網站等開發web服務開發Webservice的Webservice的使用Seam

+0

http://stackoverflow.com/questions/911424/which-is-the-best-way-to-implement-soap-web-services-on-jboss-seam的副本 – mtpettyp 2009-06-07 23:28:51

回答

4

正如the other question中提到的那樣,您可以使用JAX-WS。但是,如果你想用REST服務(JAX-RS),則:

  • Seam Docs
  • 退房斯特凡Épardaud的文章 here閱讀上JAX-WS;或
  • 查看Sun Jersey這是JAX-RS的實現。

編輯:來自Seam團隊諾曼·理查茲剛剛發佈了blog article about Seam and JAX-RS。看起來很棒,可能比澤西更多。

上週我看了一下澤西島,很驚訝你的代碼很少。這裏有一個小指南:

  1. 下載澤西罐和 JAXB瓶(這樣你就可以輸出XML 和/或JSON),並將它們添加到classpath
  2. 添加澤西servlet來你 網絡。 XML(在下面的url-patternservice/*一個例子)
  3. 標註與JAXB註釋握着你的 數據
  4. 與 新澤西註釋創建服務類的豆。

下面是一個服務的例子:

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

如果是這種用戶等級:

@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; 
    } 
} 

這是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 
} 

然後你可以訪問服務在http://yourhost/service/users 它將產生XML或JSON取決於您的客戶端的HTTP接受標頭。很酷很棒吧?