Organisation
개체 목록 (로컬 형식)을 자랑스럽게 만들기 위해 jaxb 정렬/비 정렬을 사용하여 sping ws 끝점을 사용하고 있습니다. 엔드 포인트는 SOAP 1.1이며 요청 메시지에 제공된 매개 변수는 없습니다.어느 스프링이 wax jaxb annotation을 사용하여 xml 요소 이름을 변경합니까?
JAXB는 목록을 잘 처리하지 못하기 때문에 래퍼 클래스를 사용합니다.
@XmlRootElement(name="orgResponse", namespace=....)
public class OrganisationListWrapper {
private ArrayList<Organisation> organisationList;
public getOrganisationList() {
return organisationList;
}
public setOrganisationList(ArrayList<Organisation> organisationList) {
this.organisationList = organisationList;
}
}
엔드 포인트 ....
@PayloadRoot(localPart=.... namespace=....)
@ResponsePayload
public OrganisationListWrapper getOrganisations() {
OrganisationListWrapper wrapper = new OrganisationListWrapper();
wrapper.setOrganisationList(.... call service layer get list ....);
return wrapper;
}
이 잘 작동하고 내가
<orgResponse>
<organisationList>
... contents of organisation 1
</organisationList>
<organisationList>
... comtents of organisation 2
</organisationList>
.... etc ....
</orgResponse>
기구 클래스는 JAXB가 주석되지와 SOAP 페이로드를 얻을. 이것은 웹 서비스를 통해 처음으로 노출되는 선재 클래스의 큰 목록의 일부입니다. 들어 가지 않고 들어가서 손으로 모두 주석을 달아보십시오.
OrganisationWrapper
을 주석으로 orgResponse
으로 덮어 쓸 수있었습니다. 자식 요소의 organisationList
이름을 organisation
으로 대체하고 싶지만이를 수행하는 주석을 찾을 수 없었습니다.
어레이 목록 이름을 organisation
으로 바꿀 수 있지만 제대로 작동 할 것입니다. 여기서는 코딩 기준으로 우리의 목록 이름 끝에 List
을 입력해야합니다. 나는 그것을 고집하고 싶다. XmlElement
을 시도했지만 jaxb 예외가 발생했습니다.
의견을 보내 주시면 감사하겠습니다.
'organisationList' 필드에'@XmlElement'를 추가하는 것은 길입니다. 당신은 무엇을 시도 했습니까? 그리고 당신은 어떤 예외를 얻었습니까? – skaffman