2011-05-03 40 views
1

我開發利用澤西下,Tomcat和TopLink在Java中RESTful Web服務。我的一個要求替換的XML數據,我的「客戶」的服務回報與實際的XML數據的資源鏈接(人)(該人資源鏈接返回)。爲了實現這一目標,同時呼籲(GET方法)的客戶服務我從「人」的資源輸出的XML和刪除XML數據的<person></person>標籤(因爲我的「客戶」服務具有屬性「人」我想在這裏粘貼這個XML數據),並在「客戶」資源的「人物」屬性中設置此XML數據。轉換XML字符串轉換爲有效的XML在澤西XML輸出

這裏是我的輸出: 輸出從客戶服務返回:

<customer> 
    <person>http://localhost:8080/xxxx/resources/person/JONESTD</person> 
    <xxx>...... </xxx> 
    <xxx>...... </xxx> 
    ...... 
    ...... 
    ...... 
</customer> 

輸出從客戶服務返回時,我使用的查詢字符串複合=人(來代替實際數據 人資源URL),而調用此服務:

<customer> 
    <person><namePrefix>Mr.</namePrefix> <nameFirst>Timothy</nameFirst> 
    <nameLast>Jones</nameLast> <nameMiddle>D.</nameMiddle> <nameSuffix/> 
    <nameDisplayInformal>Timothy D. Jones</nameDisplayInformal> <nameDisplayFormal>Mr. 
    Timothy D. Jones</nameDisplayFormal> <nameSortedInformal>Jones, Timothy 
    D.</nameSortedInformal> <nameSortedFormal>Timothy, Jones D. Mr.</nameSortedFormal> 
    <username>JONESTD</username> <emailAddress>[email protected]</emailAddress> </person> 
    <xxx>...... </xxx> 
    <xxx>...... </xxx> 
    ...... 
    ...... 
    ...... 
</customer> 

正如你看到的,我在客戶資源的人屬性設置的XML字符串不正確縮進。如果我查看「查看源文件」,它顯示了這個輸出是這樣的:

<customer> 
    &lt;namePrefix&gt;Mr.&lt;/namePrefix&gt;  
    &lt;nameFirst&gt;Timothy&lt;/nameFirst&gt;  
    &lt;nameLast&gt;Jones&lt;/nameLast&gt; &lt;nameMiddle&gt;D.&lt;/nameMiddle&gt; 
    &lt;nameSuffix/&gt; &lt;nameDisplayInformal&gt;Timothy D. 
    Jones&lt;/nameDisplayInformal&gt; &lt;nameDisplayFormal&gt;Mr. Timothy D. 
    Jones&lt;/nameDisplayFormal&gt; &lt;nameSortedInformal&gt;Timothy, Jones 
    D.&lt;/nameSortedInformal&gt; &lt;nameSortedFormal&gt;Timothy, Jones D. 
    Mr.&lt;/nameSortedFormal&gt; &lt;username&gt;JONESTD&lt;/username&gt; 
    &lt;emailAddress&gt;[email protected]&lt;/emailAddress&gt; 
    <xxx>...... </xxx> 
    <xxx>...... </xxx> 
    ....... 
    ....... 
    ....... 
</customer> 

我只在我的「人」屬性設置的人XML字符串看到這個&lt;&gt;。我試過幾件事情(包括StringEscapeUtils.unescapeHtml)到&lt;&gt;轉換成<>(正確的XML)。但沒有爲我工作。你能否給我一些關於如何解決這個問題的想法?

回答

0

爲了實現這一目標,而 調用(GET方法)客戶 服務我從 「人」資源輸出的XML和刪除這個 XML數據的 和標籤(因爲我的「客戶」的服務 有屬性的‘人’,我想 堅持這個XML數據),並在設置這個 XML數據的‘客戶‘資源人’的 屬性’。

我相信你是說你有一個帶String屬性的Customer對象來表示XML內容?當你編組這些內容時,你會看到另外的轉義字符。

我用的球衣,Tomcat和 的Toplink開發RESTful Web服務 在Java中。

當你說你正在使用TopLink時,你是oracle.toplink。*類還是org.eclipse.persistence。*類。如果您使用的是後者(EclipseLink的),你將能夠利用的EclipseLink JAXB(莫西)做你想要什麼。

代表XML作爲一個字符串

使用莫西與新澤西