2012-01-07 15 views
0

私は、ksoap2とtomcat、axis2上で動作するjava webserviceを使用してAndroidアプリケーションを管理しています。返すWebサービスのメソッドがありますJava webservice complex types

public class RecipeSmallReturnType 
{ 
    public int  mId; 
    public String mName; 
    public String mDescription; 
    public String mUsername; 
    public int  mDifficulty; 
    public int  mServeCount; 
    public int  mPreparationTime; 
    public float mTotalRating; 
    public int  mNumOfVotes; 
    public int  mOwnerId; 
    public int  mUserRating; 
    public int  mNumOfViews; 
    public String mReleaseDate; 
} 

私は私のローカルPC上のWebサービスを使用しています(使用が新規作成> Webサービスなど)私はで満たされ、このタイプの配列を取得データ。

しかし、 私はそれを公開すると、このタイプの配列が得られますが、データはありません。

アイデアはありますか? 多分、私はいくつかの瓶を追加する必要がありますか? 何が問題なのですか?

私はこれをほとんど一週間執着しています。

私はまた、Androidの中に戻り値の型実装した

を助けが必要くださいくださいください

public class RecipeSmallReturnType implements KvmSerializable 
{ 
    public int  mId; 
    public String mName; 
    public String mDescription; 
    public String mUsername; 
    public int  mDifficulty; 
    public int  mServeCount; 
    public int  mPreparationTime; 
    public float mTotalRating; 
    public int  mNumOfVotes; 
    public int  mOwnerId; 
    public int  mUserRating; 
    public int  mNumOfViews; 
    public String mReleaseDate; 

    public Object getProperty(int param) 
    { 
     switch(param) 
     { 
      case 0:  return new Integer(mId); 
      case 1:  return mName; 
      case 2:  return mDescription; 
      case 3:  return mUsername; 
      case 4:  return new Integer(mDifficulty); 
      case 5:  return new Integer(mServeCount); 
      case 6:  return new Integer(mPreparationTime); 
      case 7:  return new Float(mTotalRating); 
      case 8:  return new Integer(mNumOfVotes); 
      case 9:  return new Integer(mOwnerId); 
      case 10: return new Integer(mUserRating); 
      case 11: return new Integer(mNumOfViews); 
      case 12: return mReleaseDate; 

      default: return null; 
     } 
    } 

    public int getPropertyCount() 
    { 
     return 13; 
    } 

    public void getPropertyInfo(int param, Hashtable arg1, PropertyInfo arg2) 
    { 
     switch(param) 
     { 
      case 0: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mId"; 
       break; 

      case 1: 
       arg2.type = PropertyInfo.STRING_CLASS; 
       arg2.name = "mName"; 
       break; 

      case 2: 
       arg2.type = PropertyInfo.STRING_CLASS; 
       arg2.name = "mDescription"; 
       break; 

      case 3: 
       arg2.type = PropertyInfo.STRING_CLASS; 
       arg2.name = "mUsername"; 
       break; 

      case 4: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mDifficulty"; 
       break; 

      case 5: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mServeCount"; 
       break; 

      case 6: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mPreparationTime"; 
       break; 

      case 7: 
       arg2.type = Float.class; 
       arg2.name = "mTotalRating"; 
       break; 

      case 8: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mNumOfVotes"; 
       break; 

      case 9: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mOwnerId"; 
       break; 

      case 10: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mUserRating"; 
       break; 

      case 11: 
       arg2.type = PropertyInfo.INTEGER_CLASS; 
       arg2.name = "mNumOfViews"; 
       break; 

      case 12: 
       arg2.type = PropertyInfo.STRING_CLASS; 
       arg2.name = "mReleaseDate"; 
       break; 

      default: break; 
     } 
    } 

    public void setProperty(int param, Object obj) 
    { 
     switch(param) 
     { 
      case 0:  mId     = (Integer)obj; break; 
      case 1:  mName    = (String)obj; break; 
      case 2:  mDescription  = (String)obj; break; 
      case 3:  mUsername   = (String)obj; break; 
      case 4:  mDifficulty   = (Integer)obj; break; 
      case 5:  mServeCount   = (Integer)obj; break; 
      case 6:  mPreparationTime = (Integer)obj; break; 
      case 7:  mTotalRating  = (Float)obj; break; 
      case 8:  mNumOfVotes   = (Integer)obj; break; 
      case 9:  mOwnerId   = (Integer)obj; break; 
      case 10: mUserRating   = (Integer)obj; break; 
      case 11: mNumOfViews   = (Integer)obj; break; 
      case 12: mReleaseDate  = (String)obj; break; 

      default: return; 
      } 
     } 
    } 

をしかし、私が得ることである。その代わりに満たされているの

searchRecipesNewResponse{return=RecipeSmallReturnType{}; return=RecipeSmallReturnType{}; return=RecipeSmallReturnType{}; return=RecipeSmallReturnType{}; return=RecipeSmallReturnType{}; } 

データ(ウェブサービスがホスト上にないが、loacl PC上のデータを取得する)

Yoav

答えて

1

は、RecipeSmallReturnTypeでKSerializableクラスを実装しています。

+0

webserviceまたはAndroidで実装しますか? KSerializableまたはKvmSerliazable - 戻り値の型です。なぜそれはローカルWebサービス上で動作しますが、ホスティング上で動作しませんか? – Yoav

+0

OK、そのKvmSerializableをAndroidアプリケーションでクラスRecipeSmallReturnTypeに実装し、KvmSerializationの実装の詳細について少し検索してください – jeet

+0

まだ動作しません - 編集を参照してください – Yoav