2010-05-02 5 views
2

Netbeans 6.8에서 JAX-WS와 JAXB를 사용하여 SOAP 서비스를 개발 중이며, XSD 스키마의 JAXB 바인딩이 변경 사항을 기반으로 할 때마다 Netbeans이 작업을 망쳐 놓는 것에 약간 좌절감을 느낍니다.Netbeans 방지하기 JAXB 생성 쓰레싱 클래스

IDE는 스키마에 바인딩 된 클래스를 자동으로 생성합니다. 그러면 스키마가 JAXB를 사용하여 XML과 마샬링 될 수 있습니다. 이 클래스에 JPA로 데이터베이스에 유지되도록 고안된 별도의 클래스로 변환하거나 추가 클래스를 변환하는 등의 추가 메소드를 추가했습니다. 문제는 스키마가 변경되어 다시 빌드 될 때마다 이러한 클래스가 다시 생성되고 모든 사용자 지정 메서드가 삭제된다는 것입니다. 백업 파일에서 복사하여 붙여 넣기하여 수동으로 바꿀 수 있지만 시간이 많이 걸리고 지루합니다. 반복적 인 설계 방식을 사용함에 따라 스키마가 자주 변경되고 있으며 이전 코드를 복원하기 위해 언제든지 많은 시간을 낭비하고 있습니다.

IDE가 자동으로 JAXB 바인딩 클래스를 재생성하는 것은 전적으로 합리적이며 다른 의미를 내포하지는 않지만 모든 사람이 수동으로 복원해야하는 번거 로움을 방지 할 수있는 방법이 있는지 궁금합니다. 내 스키마가 변경되는 시점?

답변

1

XJC 생성 소스를 수정하는 것은 실제로 발견하지 못했기 때문에 좋은 생각이 아닙니다. 바인딩 맞춤 설정 또는 XJC를 사용하여 필요한 추가 코드를 생성하거나 XJC 생성 코드에서 별도의 소스 코드로 추가 코드를 이동해야합니다.

JAXB와 JPA 클래스 모델간에 변환 할 추가 코드가 있으면 고유 한 번역 레이어로 사용할 수 있습니다. 그런 식으로는 아니지만 문제를 해결할 것입니다.

또는 XJC plugin이 생성 된 소스에 수동으로 추가 된 코드를 보존 할 수 있지만 문서화가 잘되어 있지 않으며 직접 사용하지 않았습니다. 그것을 사용하는 방법을 알아 보려면 http://jaxb.dev.java.net/을 방문해야 할 수도 있습니다.

+0

가장 우아한 솔루션이 아니기 때문에 번역 레이어를 사용하지 않기를 바랬지 만 아마 그렇게 될 것 같습니다. 감사! – Mac

0

생성 된 클래스를 수정하여 메소드를 추가하는 대신 생성 된 클래스를 확장하고 생성 된 클래스에서 파생 된 클래스에 추가 메소드를 추가하십시오.

관련 문제