2008-10-27 2 views
7

축을 사용하여 webservice 가공물을 자동 생성 한 다음 응용 프로그램에서 사용되는 객체로 변환합니다. 이것을하기위한 합리적인 패턴이 있습니까? 우리는 축 생성 객체로부터 객체를 출력하기위한 변환 메소드를 작성했습니다. 축 객체를 응용 프로그램 객체로 변환하는 중간 클래스 집합을 작성했습니다. 이것을 접근하는 일반적인 방법이 있습니까?패턴 : 축 객체에서 Java 클래스 변환

답변

0

우리는 과거에도 비슷한 문제가 발생했습니다. 최근 Axis에서 생성 한 복잡한 웹 서비스의 경우 "MaintainOffersRequestTypeReqReqDataMaintEnhancementCancellationReason"과 같은 이름의 Java 클래스 157 개를 사용했습니다.

마지막 축약과 마찬가지로 축 생성 개체를 비즈니스 개체로 변환하는 쓰기 클래스를 작성했습니다. 나는 그것이 최선의 방법인지는 모르겠지만 그것은 확실히 실행 가능한 해결책이다.

3

올바르게 이해하면 Axis WSDL2Java 기능을 사용하여 WSDL에서 코드를 생성 한 다음 기존 애플리케이션 객체 모델에 매핑하려고합니다. 이 경우 JiBX 바인딩이있는 Axis를 사용하는 것이 좋습니다.

0

축 1을 사용하는 경우 비즈니스 클래스는 축 데이터 클래스와 동일한 정규화 된 이름을 가지며 다른 조건이 적용됩니다. 설정이 필요없는 축 클래스 대신 비즈니스 클래스를 사용할 수 있습니다. 우리는 여러 번 그렇게했습니다.

축 2의 경우 ADB (기본값) 이외의 데이터 바인딩에 문제가있어 Apache Commons Beanutils를 사용하여 Axis 클래스와 비즈니스 클래스간에 데이터를 광범위하게 복사합니다.

1

"축 생성"을 비즈니스 객체로 변환하려는 경우 객체 구현에서 다른 구현으로 복사하는 "매퍼"인 도저 (http://dozer.sourceforge.net/)와 같은 도구를 사용해 볼 수 있습니다. 사용 방법을 모르겠다. (번역을 XML 파일로 설명해야한다고 생각한다.) 그런 다음 작동해야한다. (나 자신을 사용하지는 않았지만 일부 동료가 비슷한 목적으로 사용했다.

1

나는 상식이 있다고 생각합니다. 그런 식으로 말입니다. 조금 추상적 인 당신의 마음과 상상 레이어.

  1. 기본 IO 및 기본 세션 기능 및/또는 자격 증명이있는 라이브러리를 얻을 수 있습니다.
  2. 변환 레이어를 만듭니다. 여기에서는 애플리케이션 종속 객체를 빌드하는 데 필요한 모든 코드를 배치합니다. 이 레이어를 응용 프로그램에 맞는 멋진 인터페이스로 완성하십시오.

변환 계층은 여러 가지 방법으로 수행 할 수 있습니다.

  • 변환이 간단하면 첫 번째 레이어와 두 번째 레이어를 거의 하나로 병합 할 수 있습니다. 변환 기능을 제공하기 위해 POJOS를 확장하십시오. 이 코드는 적어도 두 조각의 코드를 자동으로 생성하고 확장 기능을 제공합니다.

  • 여러 개의 작은 응용 프로그램 개체로 변환해야하는 거대한 XML에 대해 이야기하고 있다면. 보통, 그대로 제 층을 남겨 두 번째 사용 :

    • 명령 패턴을 : 변환을 캡슐화.
    • 변형이 더러워지면 : Chain of responsibility은 변환 트리를 생성하는 데 도움이됩니다.

나는이

도움이되기를 바랍니다