2014-01-23 32 views
1

我們編寫了自己的AccessorFactory來序列化XML中的POJO,所以我們創建了package-info.java並在此文件中添加了註解@XmlAccessorFactory。JAXB忽略package-info.java中的@XmlAccessorFactory

@XmlAccessorFactory(MeiAccessorFactory.class) 
package com.meicpg.ti.domain; 

我們所有的POJO都標註有@XmlAccessorType(XmlAccessType.NONE),我們已經註釋有與@XmlElement

大部分的系列化運作良好的時間,但有時被序列化的所有領域Dev的機器上(在生產中,我們沒有這個問題,並開發誰在Unix上工作)POJO不序列化。

我試圖用註釋的@XmlAccessorFactory POJO之一,它已經被正確序列化。在另一個POJO上,我移動了getter的@XmlElement註釋,並且它已經正確地序列化了。

之前應用在我所有的POJO該解決方案中的一個,我想知道是否有人已經遇到了這個怪異的行爲,發現爲什麼在package-info.java忽略註釋。

謝謝。

+0

'@ XmlAccessorFactory'是一個不太明顯的JAXB RI擴展,你有一個特定的用例需要嗎? –

+1

感謝您的回答。 我試圖在package-info.java添加其他註釋(如@XmlAccessorType(XmlAccessType.NONE),因爲我們在每一個POJO使用它),並似乎在包信息的所有註釋被忽略。 有什麼想法? – Guillaume

+0

我已經添加了一個答案,應該幫助:http://stackoverflow.com/questions/21314322/jaxb-ignores-xmlaccessorfactory-in-package-info-java/21318313#21318313 –

回答

0

我試過(因爲我們在每一個POJO使用它像 @XmlAccessorType(XmlAccessType.NONE))來添加其他註釋在package-info.java, ,似乎在包信息的所有註釋被忽略。任何 的想法?

如果package-info註釋被忽略了一定以下:

  1. 你的包註解是在一個文件中定義了一個名爲package-info.java
  2. package-info.java源文件被編譯成package-info.class
  3. package-info註釋只將那包內,向班。你不會看到他們的影響類在其他包,所以你可能需要其他package-info類。
+1

感謝您的建議。 我所有的package-info.java源文件不會被編譯。這是我使用的螞蟻版本的已知問題。 – Guillaume