DetachedCriteria 객체를 jax-ws 서비스에 전달할 수있는 방법이 있습니까?DetachedCriteria 및 jax-ws
(내 문제는 DetachedCriteria는 JAX-WS에 필요한 인수 없음의 생성자를하지 않는다는 것입니다)
DetachedCriteria 객체를 jax-ws 서비스에 전달할 수있는 방법이 있습니까?DetachedCriteria 및 jax-ws
(내 문제는 DetachedCriteria는 JAX-WS에 필요한 인수 없음의 생성자를하지 않는다는 것입니다)
내가 말할 것 ... 그렇게하지 마십시오.
웹 서비스처럼 분리 된 것을 사용하고 특정 Java + Hibernate 조합에 연결하는 것은 유감이며 최대 절전 모드 구성을 변경하면 모든 클라이언트가 영향을받을 수 있습니다.
당신은 Criteria
을 모방 Query
객체의 일종을 만드는 것이 더 낫다 :
public class Query {
public void setTargetClass(...) {}
public void addPropertyEquals(...) {}
/* more add/set instructions */
}
한 다음 서버 측에서 당신이 Criteria
에 Query
변환하는 클래스가 있습니다.
JAXB는 주석 기반이므로 DetachedCriteria
및 모든 하위 클래스에 주석을 달기 전에 JAX-WS 인터페이스 (인수가없는 생성자 요구 사항 맨 위)에 전달해야합니다. 그게 거의 불가능 :)
그러나 표준 자바 직렬화 메커니즘을 통해 DetachedCriteria
을 바이트 스트림으로 직렬화하고 원격 측에서 직렬화 해제 할 수 있습니다. 나는이 접근법이 XML의 오용이라고 동의한다.
동의하며 동의하지 않습니다. 디커플링은 많은 추가 작업이 필요하지 않는 한 괜찮습니다. 나는 구현이 Hibernate와 java에서 바뀔 것이라고 생각하지 않는다. 왜 다른 추상화 계층을 만들지 않는지? "최대 절전 모드는 삶의 방식입니다"- 그래서 그것을 제거하는 것은 쉽지 않습니다 ... – pihentagy
나는 클라이언트가 최대 절전 모드로 결합되었다고 말하면서, 당신이 원하는 것이 아닐 수도 있습니다. 이론적으로는 클라이언트 플랫폼에 무관심한 웹 서비스가 있지만 실제로는 java 및 hibernate에 바인딩되어 있습니다. 아마도 자바라면 RMI와 같은 것을 사용하는 것이 더 나을 것입니다. –