为什么C类在A类中可以访问执行,同样的代码COPY到B类时,就出现下面异常
Caused by: java.lang.NoClassDefFoundError: com/paic/is/paieas/common/web/codetable/CodeTableUtil
at com.paic.is.paieas.bailtransfer.util.InitPageData.referenceData(InitPageData.java:28)
at com.paic.is.paieas.pending.biz.action.PendingSingleTaskQueryAction.perform(PendingSingleTaskQueryAction.java:66)
at com.paic.pafa.app.biz.ac.impl.ApplicationControllerBean.handleRequest(ApplicationControllerBean.java:91)
at com.paic.pafa.app.biz.ac.impl.pafaAC_q25x5e_EOImpl.handleRequest(pafaAC_q25x5e_EOImpl.java:46)
... 34 more
Caused by: java.lang.NoClassDefFoundError: com/paic/is/paieas/common/web/codetable/CodeTableUtil
at com.paic.is.paieas.bailtransfer.util.InitPageData.referenceData(InitPageData.java:28)
at com.paic.is.paieas.pending.biz.action.PendingSingleTaskQueryAction.perform(PendingSingleTaskQueryAction.java:66)
at com.paic.pafa.app.biz.ac.impl.ApplicationControllerBean.handleRequest(ApplicationControllerBean.java:91)
at com.paic.pafa.app.biz.ac.impl.pafaAC_q25x5e_EOImpl.handleRequest(pafaAC_q25x5e_EOImpl.java:46)
... 34 more
package com.paic.is.paieas.common.web.codetable;import java.util.List;
import java.util.Map;
import java.rmi.RemoteException;
import javax.servlet.http.HttpServletRequest;import com.paic.pafa.app.biz.ac.ApplicationController;
import com.paic.pafa.app.biz.ac.ApplicationControllerException;
import com.paic.pafa.app.dto.ServiceRequest;
import com.paic.pafa.app.dto.ServiceResponse;
import com.paic.pafa.app.dto.TableCodeDTO;
import com.paic.pafa.app.lwc.core.context.ApplicationContext;
import com.paic.pafa.app.lwc.core.context.support.PafaAppCommonContexton;
import com.paic.pafa.app.lwc.core.context.support.PafaCoreContexton;
import com.paic.pafa.core.exceptions.PafaRuntimeException;import com.paic.is.paieas.common.util.ServiceRequestID;
import com.paic.is.paieas.common.web.util.WebContextNames;/**
* CodeTableUtil封装了在Web层获取CodeTable的操作。
* @author dingcy
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CodeTableUtil { /**
* 从数据库取得CodeTable数据
*
* @param codeTableParams 代码表类型等参数。
* @return a List of TableCodeDTO
* @see TableCodeDTO
*/
private static List populateData(Map codeTableParams) {
// 获得ApplicationContext
ApplicationContext ctx = (ApplicationContext) PafaAppCommonContexton.getInstance(); // 获得ApplicationController(AC),通过它把web层的请求调度到biz层
ApplicationController ac =
(ApplicationController) ctx.getBean(WebContextNames.PAFA_AC); // 构建ServiceRequest
ServiceRequest serviceRequest = new ServiceRequest();
serviceRequest.setRequestedServiceID(ServiceRequestID.CODE_TABLE_ACTION);
serviceRequest.setParameter("codeTableParams", codeTableParams); // 取得当前的Transaction ID
String txnId = PafaCoreContexton.getInstance().getThreadContext().getTxnID(); ServiceResponse serviceResponse = null;
try {
// 通过AC处理请求,返回ServiceResponse
serviceResponse = ac.handleRequest(serviceRequest);
} catch (ApplicationControllerException e) {
// 对于获取CodeTable时发生的错误,认为是系统错误,不是用户能够恢复的。
// 认为这个错误是用户不可恢复的(比如不属于输入错误)
// 抛出PafaRuntimeException // 错误信息用代码表示,这样为后面格式化处理错误信息提供了可能
throw new PafaRuntimeException(txnId, "populateData",
"paieas.error.codetable", e);
} catch (RemoteException e) {
throw new PafaRuntimeException(txnId, "populateData",
"paieas.error.codetable", e);
} // 从ServiceResponse中取得所需的数据模型
Map model = serviceResponse.getModel();
List tableCodes = (List) model.get(ServiceResponse.SERVICE_RESPONSE_RESULT);
return tableCodes;
} /**
* 根据指定的代码表类型获得相应的代码表。
* 无查询参数,获得的代码表缓存在ServletContext;有查询参数的则需每次重查。
*
* @param request 当前的HTTP请求
* @param codeTableParams 代码表类型等参数。
* @return 一组TableCodeDTO,可能是TableCodeDTO的子类
*/
public static TableCodeDTO[] getTableCodes(HttpServletRequest request, Map codeTableParams) {
TableCodeDTO[] talbeCodeDTOs = null; //重新生成数据
List result = populateData(codeTableParams);
talbeCodeDTOs = (TableCodeDTO[]) result.toArray(new TableCodeDTO[result.size()]);
return talbeCodeDTOs;
}
}//===================================
package com.paic.is.paieas.bailtransfer.util;import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import com.paic.is.paieas.common.web.codetable.CodeTableUtil;
import com.paic.pafa.app.dto.TableCodeDTO;public class InitPageData {
/**
* 绑定参考数据
*/
public static Map referenceData(HttpServletRequest request) {
Map model = new HashMap(); // 短期评级下拉列表
// 打包参数
Map codeTableParams = new HashMap();
// 固定参数
codeTableParams.put("sqlName", "getCompanyList");
// 获取代码列表
try {
Class.forName("com.paic.is.paieas.common.web.codetable.CodeTableUtil");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
TableCodeDTO[] companyTableCodes = CodeTableUtil.getTableCodes(
request, codeTableParams);
model.put("companyTableCodes", companyTableCodes); // 币种下拉列表
// 打包参数
codeTableParams = new HashMap();
// 固定参数
codeTableParams.put("sqlName", "getCurrencyList");
// 获取代码列表
TableCodeDTO[] currencyTableCodes = CodeTableUtil.getTableCodes(
request, codeTableParams);
model.put("currencyTableCodes", currencyTableCodes); // 资金来源下拉列表
// 打包参数
codeTableParams = new HashMap();
// 固定参数
codeTableParams.put("sqlName", "getFundSourceList");
// 获取代码列表
TableCodeDTO[] fundSourceTableCodes = CodeTableUtil.getTableCodes(
request, codeTableParams);
model.put("fundSourceTableCodes", fundSourceTableCodes); String fundSum = request.getParameter("interior_payment_fundSum");
model.put("interiot_payment_fundSum", fundSum);
String index = request.getParameter("interior_payment_index");
model.put("interior_payment_index", index); // 固定参数
codeTableParams.put("sqlName", "getBankAccountList");
// 获取代码列表
TableCodeDTO[] bankTableCodes = CodeTableUtil.getTableCodes(
request, codeTableParams);
model.put("bankTableCodes", bankTableCodes); return model;
}
}
从页面提交到B,调用C
这个地方是不是要改一下