2012-03-02 48 views
0

有了這個類:如何序列化webservice中的公共靜態最終字符串?

public class Class1 implements Serializable 
{ 
    public final static String VALUE = "oneValue"; 
} 

這個類在一個web服務中使用。

在Web服務客戶端,我想:

String value = Class1.VALUE 

有沒有辦法來序列等公共最後靜態字符串,所以我可以在Web服務客戶端的價值?

我使用Axis2。

回答

2

這是一個類級別字段,所以答案是否定的。如果客戶端代碼具有不同版本的類,它在給定的靜態字段中具有不同的值,這就是他們將要獲得的值。

+0

你有選擇嗎?我試圖使用一個枚舉,但沒有成功...... – Ricardo 2012-03-02 18:57:34

+0

只是使它成爲一個實例字段,因爲它應該是。 – 2012-03-02 19:23:29

+0

即使它是一個實例字段,該值也不會被序列化。這不是Web服務的工作方式。 – tom 2012-03-02 19:27:27

1

枚舉可以幫助你,但枚舉的任何私人領域不會給客戶端可見。

但是,當客戶端發送一個枚舉值到您的Web服務將被映射到您的實際枚舉所有你的私人領域,他們將使用服務器端。

的基本規則是,客戶端將不會看到任何邏輯/默認值。他們只看到你的領域的getters和setters。

+0

我在使用與axis2的枚舉時遇到問題。我會再試一次... – Ricardo 2012-03-02 19:04:23

+0

不幸的是,我只有CXF的經驗。 Axis2似乎處於瀕死狀態,沒有支持,但Web服務是Web服務。這不應該改變任何事情。 – tom 2012-03-02 19:05:33

相關問題