Веб-сервис с использованием Seam - PullRequest
2 голосов
/ 07 июня 2009

Я новичок в Seam и хочу разработать веб-сервис с использованием Seam. У меня агрессивный крайний срок, когда я могу найти детали для разработки веб-сервиса с использованием Seam. Любой хороший документ, книга, веб-сайт и т. Д.

1 Ответ

4 голосов
/ 09 июня 2009

Как уже упоминалось в , другой вопрос вы можете использовать JAX-WS. Однако, если вы предпочитаете использовать службы REST (JAX-RS), то либо:

РЕДАКТИРОВАТЬ : Норман Ричардс из команды Seam только что опубликовал статью в блоге о Seam и JAX-RS . Выглядит фантастически и, вероятно, больше того, что вы ищете, чем Джерси.

Я посмотрел на Джерси на прошлой неделе и был поражен тем, как мало кода вам нужно. Вот небольшое руководство:

  1. Скачайте Джерси Банки и JAXB Jars (чтобы вы могли выводить XML и / или JSON) и добавьте их в свой путь к классам
  2. Добавьте сервлет Джерси в свой web.xml (в приведенном ниже примере с url-pattern из service/*)
  3. Аннотируйте Боб, который держит ваш данные с аннотациями JAXB
  4. Создать класс обслуживания с Джерси аннотации.

Вот пример службы:

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

Где это класс Users:

@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 Accepts. Довольно круто, да?

...