Что такое содержимое по умолчанию, возвращаемое, когда заголовок accept пуст?Тип содержимого, когда заголовок принятия пуст или неизвестен jax-rs
Приведенный ниже код возвращает приложение/xml, когда принимается заголовок пустым, который отображает findAll(). Есть ли способ заставить jax-rs выполнить findAllAtom(), когда заголовок принятия пуст или неизвестен. Я использую Resteasy версии 2 с сервера приложений JBoss и Adbera 1.1.2
@Stateless
@Path("quotes")
public class QuoteFacadeREST extends AbstractFacade<Quote> {
@PersistenceContext(unitName = "RestFullDayTraderPU")
private EntityManager em;
public QuoteFacadeREST() {
super(Quote.class);
}
@GET
@Override
@Produces({"application/xml", "application/json"})
public List<Quote> findAll() {
return super.findAll();
}
@GET
@Override
@Produces({"application/atom+xml"})
@GET
public Feed findAllAtom() throws Exception {
Factory factory = abdera.getFactory();
Feed feed = abdera.getFactory().newFeed();
feed.setId("tag:example.org,2007:/foo");
feed.setTitle("Feed Title");
feed.setSubtitle("Feed subtitle");
feed.setUpdated(new Date());
feed.addAuthor("My Name");
feed.addLink("http://example.com");
feed.addLink("http://example.com","self");
Entry entry = feed.addEntry();
entry.setId("tag:example.org,2007:/foo/entries/2");
entry.setTitle("Entry title 22 44");
entry.setUpdated(new Date());
entry.setPublished(new Date());
entry.setSummary("Feed Summary");
entry.setContent("One line content");
return feed;
}
@Override
protected EntityManager getEntityManager() {
return em;
}
}
В моих тестовых случаях я использую rssOwl в качестве клиента для отдыха. rssOwl отправляет пустой заголовок accept. Это может быть ситуация с несколькими другими клиентами ATOM. Один из способов справиться с этим - использовать согласование контента на основе URL, но я предпочитаю использовать заголовок, следовательно, вышеупомянутый вопрос. –
Вы не можете сделать это с помощью чистого JAX-RS. С быстрыми клавишами поддержки содержимого Apache Wink. Ярлыки передаются как параметр запроса в url, поэтому вызов ATOM будет http: // host: port/app? Alt = atom. См. Http://incubator.apache.org/wink/1.1/html/5.1%20Registration%20and%20Configuration.html – Tarlog
Я приму ваше предыдущее предложение. Я собираюсь реализовать согласование контента на основе URL, по крайней мере для основных каналов. –