Есть ли способ передать объект DetachedCriteria службе jax-ws?DetachedCriteria и jax-ws
(моя проблема заключается в том, что DetachedCriteria не имеет конструктора без аргументов, которая требуется JAX-WS)
Есть ли способ передать объект DetachedCriteria службе jax-ws?DetachedCriteria и jax-ws
(моя проблема заключается в том, что DetachedCriteria не имеет конструктора без аргументов, которая требуется JAX-WS)
Я хотел бы сказать ... пожалуйста, не делайте этого.
Стыдно использовать что-то как развязанное как веб-службы, а затем привязать его к определенной комбинации Java + Hibernate, не говоря уже об этом, и изменения в конфигурации hibernate, скорее всего, будут пульсировать по всем клиентам.
Ты лучше создавать какое-то Query
объекта, который имитирует Criteria
:
public class Query {
public void setTargetClass(...) {}
public void addPropertyEquals(...) {}
/* more add/set instructions */
}
, а затем на стороне сервера у вас есть класс, который преобразует Query
к Criteria
.
JAXB основан на аннотациях, поэтому вам необходимо аннотировать DetachedCriteria
и все его подклассы, прежде чем вы сможете передать его через интерфейсы JAX-WS (в верхней части требования конструктора no-arg). Это вряд ли возможно :)
Но вы можете сериализовать DetachedCriteria
в поток байтов через стандартный механизм сериализации Java и десериализовать его на удаленной стороне. Я согласен, этот подход является неправильным использованием XML.
Я согласен и не согласен. Развязка прекрасна, если она не требует большой дополнительной работы. Я не думаю, что реализация изменится с Hibernate и java. Зачем создавать другой слой абстракции просто для ничего? «Hibernate - это образ жизни» - так что легко избавиться от него ... – pihentagy
Я хотел сказать, что клиент соединен с Hibernate, что может и не быть тем, что вы хотите. У вас есть веб-сервис, который теоретически является агностиком клиентской платформы, но на практике связан с java и спящим. Возможно, вам лучше использовать что-то вроде RMI, если вы все java. –