1. 程式人生 > >關於(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; 錯誤

關於(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; 錯誤

異常: 

“/AcesysWeb”應用程式中的伺服器錯誤。

com.ericliu.DAO.ProductDAO.searchCategoryAndLikeName(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。

異常詳細資訊: System.ServiceModel.FaultException: com.ericliu.DAO.ProductDAO.searchCategoryAndLikeName(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;

源錯誤:



行 29:             //MessageBox.Show("查詢條件:type==" + Session["searchTypeID"].ToString() + "||欄位==" + Session["searchCondition"].ToString());
行 30: 
行 31:             ProductsService.Product[] productsArray2 = productsService.getProductByCategoryAndlikename(getSearchProductsReq)[email protected];
行 32: 
行 33:             GridView_searchProductsList.DataSource = productsArray2;


原始檔: d:/我的文件/Visual Studio 2008/WebSites/AcesysWeb/product/products_search_show.aspx.cs    行: 31

堆疊跟蹤:

[FaultException: com.ericliu.DAO.ProductDAO.searchCategoryAndLikeName(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +7599295
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +275
   ProductsService.ProductDAOServicePortType.getProductByCategoryAndlikename(getProductByCategoryAndlikenameRequest request) +0
   ProductsService.ProductDAOServicePortTypeClient.ProductsService.ProductDAOServicePortType.getProductByCategoryAndlikename(getProductByCategoryAndlikenameRequest request) +20
   product_products_search_show.Page_Load(Object sender, EventArgs e) in d:/我的文件/Visual Studio 2008/WebSites/AcesysWeb/product/products_search_show.aspx.cs:31
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

版本資訊: Microsoft .NET Framework 版本:2.0.50727.4927; ASP.NET 版本:2.0.50727.4927

解決方法:

1、出現(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;

     表明是陣列處理出了問題;

2、由於Webservice不能傳遞List,所以接收Java端列表資料集合時,要注意在java端

     轉化為陣列形式傳遞之;

3、這個問題出現主要是java裡面的List的泛型出現問題;

     關於List<T>,可以參照網上的資料;

4、本人檢查自己程式碼,發現java服務端獲取陣列list之後,確實轉化為Array[]了,但是

     仍然出現了上面的問題,除錯了半天發現自己使用List時沒有指定型別,只是如:

         List  ls = pdao.searchCategory(category);

     嘗試加上型別:

         List<Product>  ls = pdao.searchCategory(category);

     將其他類似的地方全部加上強型別;這樣.net端呼叫就不會出現這個問題;

教訓,做事不能偷懶;