Как уже упоминалось в , другой вопрос вы можете использовать JAX-WS. Однако, если вы предпочитаете использовать службы REST (JAX-RS), то либо:
- Читайте о JAX-WS в Документах по швам
- Ознакомьтесь со статьей Стефана Эпардо.
здесь ; или
- Взгляните на Sun Джерси , который является реализацией JAX-RS.
РЕДАКТИРОВАТЬ : Норман Ричардс из команды Seam только что опубликовал статью в блоге о Seam и JAX-RS . Выглядит фантастически и, вероятно, больше того, что вы ищете, чем Джерси.
Я посмотрел на Джерси на прошлой неделе и был поражен тем, как мало кода вам нужно. Вот небольшое руководство:
- Скачайте Джерси Банки и
JAXB Jars (чтобы вы могли выводить XML
и / или JSON) и добавьте их в свой путь к классам
- Добавьте сервлет Джерси в свой
web.xml (в приведенном ниже примере с
url-pattern
из service/*
)
- Аннотируйте Боб, который держит ваш
данные с аннотациями JAXB
- Создать класс обслуживания с
Джерси аннотации.
Вот пример службы:
@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. Довольно круто, да?