我是 Seam 的新手,想使用 Seam 开发 Web 服务。我的截止日期很紧迫,我可以在哪里找到使用 Seam 开发 Web 服务的详细信息。任何好的文档、书籍、网站等。
问问题
2215 次
1 回答
4
如另一个问题中所述,您可以使用 JAX-WS。但是,如果您更愿意使用 REST 服务 (JAX-RS),那么:
- 在Seam Docs中阅读 JAX-WS
- 在这里查看 Stéphane Épardaud 的文章 ;或者
- 看看 Sun Jersey,它是 JAX-RS 的一个实现。
编辑:Seam 团队的 Norman Richards 刚刚发布了一篇关于 Seam 和 JAX-RS的博客文章。看起来很棒,可能比泽西岛更适合你。
上周我看了 Jersey 并惊讶于你需要这么少的代码。这里有一个小指南:
- 下载 Jersey Jars 和 JAXB Jars(这样您就可以输出 XML 和/或 JSON)并将它们添加到您的类路径中
- 将 Jersey servlet 添加到您的 web.xml(在下面的示例中,带有
url-pattern
ofservice/*
) - 使用 JAXB 注释对保存数据的 Bean 进行注释
- 使用 Jersey 注释创建一个服务类。
这是一个服务的例子:
@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;
}
}
这是用户类:
@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
它将根据您的客户端的 HTTP Accepts 标头生成 XML 或 JSON。很酷吧?
于 2009-06-08T22:37:38.240 回答