2012-03-02 15 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

+0

インスタンスフィールドを作成するだけです。 –

+0

インスタンスフィールドであっても、値はシリアル化されません。それはウェブサービスの仕組みではありません。 – tom

1

列挙型のプライベートフィールドは役に立ちますが、列挙型のプライベートフィールドはクライアントに表示されません。

しかし、クライアントがあなたのWebサービスに列挙値を送ると、それはあなたの持つすべてのプライベートフィールドを持つ実際の列挙型にマップされ、使用可能なサーバー側になります。

基本的なルールは、クライアントにはロジック/デフォルト値が表示されないことです。彼らはあなたのフィールドのゲッターとセッターしか見ることができません。

+0

axis2で列挙型を使用する際に問題が発生しています。私はもう一度やり直します... – Ricardo

+0

残念ながら私はCXFの経験があります。 Axis2はサポートがなくなり死に上がっているようだが、ウェブサービスはウェブサービスである。それは何も変わるべきではありません。 – tom

関連する問題