2012-04-30 3 views
0

모두! 이 편안한 웹 서비스 클라이언트를 개발하고 있지만 중첩 된 요소를 가져 오는 데 문제가 있습니다. 이것이 내가받는 XML입니다. Jersey를 사용하여 휴식 서비스에서 데이터 필드를 가져 오지 못했습니다.

<InstalledProducts> 
<InstalledProduct> 
<uri> 
<url> 
http://immix-test.natinst.com/ib-rest/1.0/installed-product/NIC:458513.xml 
</url> 
<urn>urn:installed-product:NIC:458513</urn> 
</uri> 
<instanceId>458513</instanceId> 
<site>NIC</site> 
<serialNumber>A49AD1</serialNumber> 
<productNumber>459513</productNumber> 
<ibStatus>Latest</ibStatus> 
<ibCreationDate>1998-10-14</ibCreationDate> 
<partNumber> 
    <urn>urn:product-item:181830E-01</urn> 
</partNumber> 
<latestServiceContracts> 
<url> 
http://immix-test.natinst.com/ib-rest/1.0/installed-product/NIC:458513/latestServiceContracts.xml 
</url> 
</latestServiceContracts> 
<allServiceContracts> 
    <url> 
    http://immix-test.natinst.com/ib-rest/1.0/installed-product/NIC:458513/allServiceContracts.xml 
    </url> 
    </allServiceContracts> 
</InstalledProduct> 
</InstalledProducts> 

은 InstalledProduct RootElement

import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

import org.apache.log4j.Logger; 

@XmlRootElement(name = "InstalledProduct") 
public class InstalledProductDTO { 
private ContractsURL latestServiceContracts; 
private PartNumber partNumber; 
public static Logger logger = Logger.getLogger(InstalledProductDTO.class); 
private int instanceId; 
private String status; 

@XmlElement(name = "serviceStatus") 
public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

@XmlElement(name = "instanceId") 
public int getInstanceId() { 
    return instanceId; 
} 

public void setInstanceId(int instanceId) { 
    this.instanceId = instanceId; 
} 

@XmlElement(name = "partNumber") 
public PartNumber getpartNumberURN(){ 
    return partNumber;  
} 

public void setProductNumber(PartNumber partNumber){ 
    this.partNumber = partNumber; 
} 

@XmlElement(name = "latestServiceContracts") 
public ContractsURL getLatestServiceContractsURL(){ 
    return latestServiceContracts; 
} 

public void setAllServiceContractsURL(ContractsURL latestServiceContractsURL){ 
    this.latestServiceContracts = latestServiceContractsURL; 
} 
} 

을 처리하는 자바 클래스이며,이 문제가 어디있는 PARTNUMBER 태그를 처리하는 클래스입니다.

import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement(name = "partNumber") 
public class PartNumber { 

private String urn; 

@XmlElement(name = "urn") 
public String getURN() 
{ 
    return urn; 
} 

public void setUrn(String urn){ 
    this.urn = urn; 
} 

} 

partNumber를 가져 오려고하면 null이 표시됩니다. 어떤 아이디어?

답변

0

좋아, 방금 해결했습니다. 적어도 이것은 나를 위해 일했습니다. InstalledProductDTO 클래스에서 partNumber xml 태그의 세트 및 가져 오기가 리터럴 xml 태그와 일치하지 않는지 확인하십시오. 태그는 "partNumber"이지만 get 및 set은 getPartNumberURN 및 setPartNumberURN입니다. 그래서 저는 그것들을 getPartNumber와 setPartNumber로 바꿨습니다. 이것이 효과가 있다면이를 확인해주세요. 내가 착각 한 경우, 저를 시정하십시오. 감사합니다.이 도움이 되길 바랍니다.

관련 문제