2008-09-19 5 views
4

XML 스키마를 기존 EJB 프로젝트에 추가하려고했습니다. JAXB는 XML 스키마를 Java 클래스에 바인딩하는 데 사용됩니다. EJB가 세션 중에있을 때 검색 엔진을 사용하여 DTO를 크롤링합니다.EJB 통합 - JAXB 인터페이스를 사용하는 XML

엔티티 클래스 파일을 XML 스키마에 매핑하는 데 직접적인 접근법을 찾을 수 없습니다.

우리가 지금까지 성취 할 수 있었던 유일한 방법은 웹 서비스를 작성하고 XML 스키마 (XSD)를 생성하는 WSDL을 생성 한 다음 JAXB (xjc 명령)를 통해 XSD 파일을 구문 분석하여 Java 클래스 파일을 작성하는 것입니다. 이제 mapping-binding.xml 파일을 사용하여 XML 및 Java 클래스 파일을 모두 매핑 할 수 있습니다.

하지만 다시이 문제는 엔티티 클래스에 매핑하는 방법과 관련이 있습니다. 이것은 우리가 달성하고자하는 것입니다

: XML 스키마와

  • XML 데이터 개체 (이 이미 JAXB 사양에 존재한다).
  • 그러면 Entity Bean은이 JAXB 객체를 확장하거나 인터페이스를 갖습니다.
  • 모든 지속성 기능은
  • 이 값 개체가에서 바이너리 또는 XML 형태로 검색 할 수 있습니다 ..
  • 엔터티 빈은 다음 XML 마샬링을 포함 할 것이며, 비 정렬 화는 JAXB에서 발견 기능 ... 엔티티 빈에 의해 관리된다 Entity Bean 객체
  • JSP는 값 개체에서 XML 스키마와 XML 데이터를 쉽게 추출하고 XSL 변환과 같은 작업을 수행 할 수 있습니다.

내 주장은 Entity Beans에는 JAXB 객체와의 인터페이스를위한 표준 방법이 없다는 것입니다.

Castor가 해결책 일 수 있지만 웹 서비스를 구현하거나 Castor JDO를 사용해야합니다.

XStream은 엔티티 bean 클래스 객체를 호출하고 xml 파일을 생성 할 수있는 변환기 클래스를 사용하므로 매우 유용하다고 알았습니다. 하지만 다른 클래스를 사용하는 대신 기존 Bean 클래스에 함수를 통합하는 것을 선호했습니다.

이와 관련하여 저를 도와 줄 수 있습니까?


나는 실제로 무엇을 성취하려고하는지 알려 드릴 것입니다. 세션 중에 EJB가 실행될 때 검색 엔진을 만들고 DTO를 통해 크롤러를 사용하고 XML 형식의 스냅 샷을 가져옵니다. 검색은 다른 기준에 따릅니다. 이미 DTO의 PHP & Java 응용 프로그램 사이의 통신에 웹 서비스에 의해 사용되는가 (EJB

루씬 검색 엔진 도구 중 하나이지만, 그것은 자신의 특성과 파일

(더 독립과 같은 역할을합니다)를 사용 -층). JAXB가 xml-schema를 통해 자체적으로 생성 된 클래스를 사용하기 때문에 할 수없는 XML 테이블의 출력을 얻기 위해 크롤러로 jaxb에서 DTO를 재사용하고 싶습니다. 당신이 말했듯이 JAXB에게 콩 클래스를 지시하는 방법을 아직 찾지 못했습니다.

+0

학자 인 : * 교정하십시오의 인터페이스를. – GEOCHET

답변

2

데이터 모델 (엔터티 빈)을 XML 인터페이스에 밀접하게 연결하는 것은 전 세계에서 가장 좋은 아이디어는 아닙니다. 그것은 당신이 다른 하나를 바꾸지 않고 하나를 바꾸는 것을 방해합니다.

나는 당신이하려는 것을 이해하고 있지만, JAXB가 새로운 클래스를 만드는 것이 아니라 클래스를 확장하도록 지시하는 방법이 있다고 생각합니다. Entity Bean은 정상적으로 생성 할 수 있으며 JAXB 생성 Bean에서 추가 정보를 사용하여 Bean을 확장 할 수 있습니다.

나는 당신의 영속 계층보다 어딘가에 다른에서 엔티티 빈 인스턴스를 받고 (예 : XML에서 그들을 직렬화 복원으로) 당신을 위해 문제가 될 것입니다 말할 수 있습니다.

XML을 사용하여 Java 응용 프로그램 (예 : JSP/Servlet과 EJB 계층 간)간에 통신하는 것은 나쁜 생각입니다. XML의 마샬링과 추가 된 자세한 정보는 당신을 거의 사지 않는다. RMI (EJB가 당신을 위해 무엇을 할 것인가)를 통해 객체를 직렬화하는 것은 구현, 테스트 및 유지 보수가 훨씬 쉬울 것입니다.

+0

당신을 도와 주셔서 감사합니다 및 suggesetion 데이브 .. 부탁드립니다 ... ive 추가 정보 –