RE: problem on handling array

2005-05-15 スレッド表示 tiffany.chan
木村さん

  ご丁寧な説明をありがとうございました。

  他のプログラムも教えていただいたように
  作成したら問題なく動くようになりました。
  
  今後もよろしくお願いいたします。

---
Tiffany


-Original Message-
From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED] 
Sent: Friday, May 13, 2005 6:53 PM
To: axis-user-ja@ws.apache.org
Subject: Re: problem on handling array


To: Tiffanyさん

 木村です。

 『なぜgetterをつけなければならないのか』と問われると「そう
いう物なんです」となり、答えに困ってしまうのですが...。^^;
可能な限りご説明したいと思います。

 TiffanyさんのWebサービスは、サーバ側で作成したSample01Repと
いうクラス(Bean)をAxisが提供するBeanSerializerの機能を用いて
クライアント側に転送しています。Beanは、内部に持つプロパティ
に対するsetterメソッドとgetterメソッドを持つ必要があり、今回
の場合は、setName()とgetName()がそれにあたります。下記の報告
では、便宜上getName()メソッドのみを追加しましたが、プロパティ
nameが固定値ではない場合、setName()メソッドも必要となります。

 最初に送られてきたSample01Rep.javaにはsetterもgetterも存在
しないため、BeanSerializer/BeanDeserializerの期待するクラス
ではなくご報告頂いたような不具合が生じてしまったと思われます。
しかし、正常に実装されたBeanを利用する場合には発生しない現象
ですので、今回のケースは「バグ」というよりは利用方法の誤りと
見るべきと考えました。

 以上の説明で、ご納得頂けたでしょうか?

よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>

On Fri, 13 May 2005 [EMAIL PROTECTED] wrote:

> 木村さん
>
>  素早いご返信ありがとうございます。
>
>  教えていただいたとおり、getterメソッドを付けて実行したら
>  予想通りの結果を得ることができました。
>  ありがとうございます。
>
>  しかし、なぜgetterをつけなければならないのか
>  教えていただけませんでしょうか?
>
> ---
> Tiffany
>
> -Original Message-
> From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
> Sent: Friday, May 13, 2005 5:45 PM
> To: axis-user-ja@ws.apache.org
> Subject: Re: problem on handling array
>
> To: Tiffanyさん
>
>  木村です。
>
>  関連しそうとご報告のあったAXIS-1569とは無関係の様です。
>
>  本件は、Bean実装であるSample01Rep.javaのソースに問題がある
> ようです。次の様に修正して実行してしてみて下さい。変更内容は
> getterメソッドgetName()を追加したのみです。
>  このファイルをコンパイル後にAPサーバにコピーし、サーバを
> 再起動すれば、正常に配列データが取得できるようになるはずです。
> もし、不具合が解決しないようであれば、また連絡ください。
>
> .*.*.*.*.*.*.*
> package mysamples;
>
> import java.io.Serializable;
>
> public class Sample01Rep implements Serializable{
>   public String[] name = {"name1", "name2", "name3", "name4" ,
> "name5"};
>
>   public Sample01Rep(){
>   }
>
>   public String [] getName() {
>   return name;
>   }
> }
> .*.*.*.*.*.*.*
>
> よろしくお願いします。
> ---
> Toshi <[EMAIL PROTECTED]>
>
> On Fri, 13 May 2005 [EMAIL PROTECTED] wrote:
>
>> 皆さん
>>
>> こんにちは。はじめまして、Tiffanyです。
>>
>> AxisRC3から使い始めて、今週Axis1.2Finalにバージョンアップしました。
>>
>> 英語版のバグリスト等で数回似たような問題が取り上げられていますが、
>> いまだ仕様なのかバグなのかが分からないため、メーリングリストに
>> 投稿させていただきました。
>>
>> 下記と似たような問題だと思います。
>> http://issues.apache.org/jira/browse/AXIS-1569
>>
>> 私のプログラムは、
>> サーバー側のあるクラスの中に配列を持たせて、
>> クライアントに配列の値を表示する、ごくシンプルなものです。
>> 配列には5つ値をいれているにも関わらず、クライアント側には
>> 最後の1つの値しか返りません。
>>
>> なお、上記リンクを参考にしてsetter/getterをつけたところ、RC3では動いたものの、
>> 1.2FinalではSAXParseExceptionが発生しました。(これはまた別件になります。。。)
>>
>> どなたか同じような問題に遭遇した方はいらっしゃいますでしょうか?
>> 下記にソースコードを添付しますので、ご確認、ご意見をいただければと思います。
>>
>> よろしくお願いいたします。
>>
>> ■サーバーサイド(Tomcat)
>> mysamplesのパッケージにSample01.javaとSample01Rep.javaの
>> 2つのクラスを作りました。
>> ***Sample01.java***
>> package mysamples;
>>
>> import java.io.Serializable;
>>
>> public class Sample01 implements Serializable{
>>public Sample01Rep returnArray(){
>>return new Sample01Rep();
>>}
>> }
>> ***Sample01.java***
>> package mysamples;
>>
>> import java.io.Serializable;
>>
>> public class Sample01Rep implements Serializable{
>>public String[] name = {"name1", "name2", "name3", "name4" ,
>> "name5"};
>>
>>public Sample01Rep(){
>>}
>> }
>>
>> ■クライアントサイド(Java)
>> ***Sample01Client.java***
>> import mysamples.Sample01;
>> import mysamples.Sample01Rep;
>> import mysamples.Sample01Service;
>> import mysamples.Sample01ServiceLocator;
>>
>> public class Sample01Client{
>> 	public static void main(String[] args) throws Exception{
>> 	System.out.println("<< Sample01 Client >>");
>> 	//Make a Service
>> 	Sample01Service service = new Sample01ServiceLocator();
>>
>> 	//Now use the service to get a stub
>> 	Sample01 stub = service.getsample01();
>>
>> 	//Make the actual call
>> 	Sample01Rep rep = stub.returnArray();
>>
>> 	System.out.println("length --> " + rep.getName().length);
>> 	for(int i=0; i> 	System.out.println("[" + rep.getName()[i] + "]");
>> 	}
>> 	System.out.println("<<  END  >>");
>> 	}
>> }
>>
>> ■結果
>> << Sample01 Client >>
>> length --> 1
>> [name5]
>> <<  END  >>
>>
>> なお、想定される結果は下記に示している感じです。
>> << Sample01 Client >>
>> length --> 5
>> [name1]
>> [name2]
>> [name3]
>> [name4]
>> [name5]
>> <<  END  >>
>>
>> ■その他
>> ○JAVA2WSDL (host:portは省かせていただきました。)
>> java org.apache.axis.wsdl.Java2WSDL -o Sample01.wsdl
>> -lhttp://host:port/axis/services/sample01 -n sample01 
>> mysamples.Sample01
>>
>> ○WSDL2JAVA
>> java org.apache.axis.wsdl.WSDL2Java Sample01.wsdl -s -o ClientSample
>> -p mysamples
>>
>> ○WSDD
>> 生成されたdeploy.wsddファイル内のクラス名部分を下記のように変更しました。
>> (変更前)  > value="mysamples.Sample01SoapBindingImpl"/>
>> (変更後)  
>>
>> ○デプロイ(host:portは省かせていただきました。)
>> java org.apache.axis.client.AdminClient
>> -lhttp://host:port/axis/servlet/AxisServlet deploy.wsdd
>>
>> 以上です。
>>
>> -
>> Tiffany Chan
>>
>>
>>
>> -

Re: HowToUse NonNegativeInteger

2005-05-15 スレッド表示 Toshiyuki Kimura
 木村です。
 NonNegativeInteger利用の方、うまくいったとのことで安心しました。
ゼロ以上の整数のみで大丈夫なのかどうかも気になっていたのですが、
大丈夫そうですね。
では。
--
Toshi
On Sun, 15 May 2005, tomioHemmi wrote:
Toshiyuki Kimura wrote:
ご丁寧にフォローいただきありがとうございました。
フルネームでImportしなければならないのに,情けなくも気がつきませんで。
おかげさまで問題なくなりました。 どうもありがとうございました。
To: トミオさん
 木村です。
 NonNegativeIntegerの利用方法は大丈夫だったでしょうか?
念のため最も簡単な利用事例を以下に示しておきます。
.*.*.*.*.*.*.*
  import org.apache.axis.types.NonNegativeInteger;
  ...
  public class TestClient {
...
a.setp2s( new NonNegativeInteger("3") );
.*.*.*.*.*.*.*
 尚、リファレンスは下記URLで確認することができます。

よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Wed, 11 May 2005, Toshiyuki Kimura wrote:
To: トミオさん
 木村です。
 問題が二つありますね。
Stubを作ったところ、NonNegativeIntegerがたのメソッドができてしまい
ました。

 意図せず、NonNegativeInteger型の実装になってしまったようなのですが
まずそのデータ型で問題ないのでしょうか?利用できる数値は「value >= 0」
という条件になります。
NonNegativeIntegerがたのset/getメソッドなのですが、Javaでどうやって
値をセットしてよいかわかりません。初心者で申しわけありませんが教えて
ください。

 Axisには、org.apache.axis.types.NonNegativeIntegerという実装があり
ます。もし、NonNegativeInteger型で充分なのであれば、上記のデータ型を
利用することで、うまく利用できるようになるはずです。当該クラスの利用
方法については、リファレンスやInternetを検索すればサンプルが見つかる
と思います。
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Wed, 11 May 2005, tomioHemmi wrote:
Stubを作ったところ、NonNegativeIntegerがたのメソッドができてしまいまし
た。
NonNegativeIntegerがたのset/getメソッドなのですが、Javaでどうやって値を
セットしてよいかわかりません。 初心者で申しわけありませんが教えてくださ
い。
Stub側の例
public class  {
private org.apache.axis.types.NonNagativeinteger p2s;
public org.apache.axis.types.NonNagativeinteger getp2s() {
return p2s ;}
public void setp2s(org.apache.axis.types.NonNagativeinteger p2S){
this.p2s= p2s ;}
呼び側
たとえばaとしてコンストラクタを呼び出して 1をセットしたい場合
 a.setp2s( 1 ) ; では型が違うということでエラーになってしまいま
す。
まったく使い方が間違っているのでしょうか、お教えいただけませんでしょう
か。
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: HowToUse NonNegativeInteger

2005-05-15 スレッド表示 tomioHemmi
Toshiyuki Kimura wrote:

ご丁寧にフォローいただきありがとうございました。
フルネームでImportしなければならないのに,情けなくも気がつきませんで。
おかげさまで問題なくなりました。 どうもありがとうございました。


> To: トミオさん
> 
>  木村です。
> 
>  NonNegativeIntegerの利用方法は大丈夫だったでしょうか?
> 念のため最も簡単な利用事例を以下に示しておきます。
> 
> .*.*.*.*.*.*.*
>   import org.apache.axis.types.NonNegativeInteger;
> 
>   ...
>   public class TestClient {
> ...
> a.setp2s( new NonNegativeInteger("3") );
> .*.*.*.*.*.*.*
> 
>  尚、リファレンスは下記URLで確認することができます。
>  NonNegativeInteger.html>
> 
> よろしくお願いします。
> ---
> Toshi <[EMAIL PROTECTED]>
> 
> On Wed, 11 May 2005, Toshiyuki Kimura wrote:
> 
>> To: トミオさん
>>
>>  木村です。
>>
>>  問題が二つありますね。
>>
>>> Stubを作ったところ、NonNegativeIntegerがたのメソッドができてしまい
>>> ました。
>>
>>
>>  意図せず、NonNegativeInteger型の実装になってしまったようなのですが
>> まずそのデータ型で問題ないのでしょうか?利用できる数値は「value >= 0」
>> という条件になります。
>>
>>> NonNegativeIntegerがたのset/getメソッドなのですが、Javaでどうやって
>>> 値をセットしてよいかわかりません。初心者で申しわけありませんが教えて
>>> ください。
>>
>>
>>  Axisには、org.apache.axis.types.NonNegativeIntegerという実装があり
>> ます。もし、NonNegativeInteger型で充分なのであれば、上記のデータ型を
>> 利用することで、うまく利用できるようになるはずです。当該クラスの利用
>> 方法については、リファレンスやInternetを検索すればサンプルが見つかる
>> と思います。
>>
>> よろしくお願いします。
>> ---
>> Toshi <[EMAIL PROTECTED]>
>>
>> On Wed, 11 May 2005, tomioHemmi wrote:
>>
>>> Stubを作ったところ、NonNegativeIntegerがたのメソッドができてしまいまし
>>> た。
>>>
>>> NonNegativeIntegerがたのset/getメソッドなのですが、Javaでどうやって値を
>>> セットしてよいかわかりません。 初心者で申しわけありませんが教えてくださ
>>> い。
>>>
>>> Stub側の例
>>>
>>> public class  {
>>> private org.apache.axis.types.NonNagativeinteger p2s;
>>>
>>> public org.apache.axis.types.NonNagativeinteger getp2s() {
>>> return p2s ;}
>>> public void setp2s(org.apache.axis.types.NonNagativeinteger p2S){
>>> this.p2s= p2s ;}
>>>
>>> 呼び側
>>>
>>> たとえばaとしてコンストラクタを呼び出して 1をセットしたい場合
>>>
>>>  a.setp2s( 1 ) ; では型が違うということでエラーになってしまいま
>>> す。
>>>
>>> まったく使い方が間違っているのでしょうか、お教えいただけませんでしょう
>>> か。
>>>
>>> -
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]