我的问题是相对较developerWorks上论坛发布的一个(论坛仅仅是由于迁移读取)至极是一样的:工作灯5.0.6:Ajax请求例外:表过大,而大数据发送到数据适配器
我有一个与外部Web服务接口的http适配器。有效载荷的部分 是音频和图像。我们遇到了表单大小限制。 请在此帖子末尾查看附加的例外情况。我已阅读 以前的帖子,码头配置需要调整到 容纳更大的有效载荷。我们希望在 控制这个大小限制的服务器端应用程序层,并认为建立一个 码头-web.xml中定义的最高形式的大小:
在工作灯,这是正确的做法解决这个问题?
如果这是正确的方法,您可以提供详细信息, jetty-web.xml应放在server/conf下,还是需要 在应用程序大战的WEB-INF下?
如果需要将文件放在WEB-INF下,可以解释如何在WL项目 构建过程中将 放置在WEB-INF下。
由于E:Ajax请求例外:表单太large802600> 200000 2013年2月6日11时39分48秒FWLSE0117E:错误代码:1,错误描述: INTERNAL_ERROR,错误消息:FWLSE0069E:发生内部错误 (:USAEMP4, 的LoginModule:GersServiceAdapterLoginModule名) wl_remoteDisableRealm =小工具请求表格太large802600> 200000,用户身份 {wl_authenticityRealm = NULL,GersServiceAdapterRealm =期间(名称:NullLoginModule, 的LoginModule:NullLoginModule),SampleAppRealm = NULL, wl_antiXSRFRealm =(名称:antiXSRF,loginModule:WLAntiXSRFLoginModule), wl_deviceAutoProvisioningRealm = null,WorklightConso勒= NULL, wl_deviceNoProvisioningRealm =(名称:设备, 的LoginModule:WLDeviceNoProvisioningLoginModule) MYSERVER =(名称:3e857b6a-d2f6-40d1-8c9c-10ca1b96c8df, 的LoginModule:WeakDummy) wl_anonymousUserRealm =(名称:3e857b6a-d2f6- 40d1-8c9c-10ca1b96c8df, loginModule:WeakDummy)}。
我有完全一样的问题: 我大量的数据发送到一个工作灯适配器和我的应用程序失败,出现以下错误信息到日志:
2013-08-21 09:48:17] FWLSE0020E: Ajax request exception: Form too large202534>200000
[2013-08-21 09:48:18] FWLSE0117E: Error code: 1, error description: INTERNAL_ERROR, error message: FWLSE0069E: An internal error occurred during gadget request Form too large202534>200000, User Identity {wl_authenticityRealm=null, wl_remoteDisableRealm=(name:null, loginModule:NullLoginModule), SampleAppRealm=null, wl_antiXSRFRealm=(name:b2isf3704k2fl8hovpa6lv9mig, loginModule:WLAntiXSRFLoginModule), wl_deviceAutoProvisioningRealm=null, WorklightConsole=null, wl_deviceNoProvisioningRealm=(name:40a24da9-0a32-464a-8dec-2ab402c683ae, loginModule:WLDeviceNoProvisioningLoginModule), myserver=(name:2b1a7864-37c4-47f0-9f5c-49621b6915b5, loginModule:WeakDummy), wl_anonymousUserRealm=(name:2b1a7864-37c4-47f0-9f5c-49621b6915b5, loginModule:WeakDummy)}.
这发生在调用一个通过调用WL.Client.invokeProcedure(...)和调用过程的第一行之前的适配器过程...如果我尝试记录被调用过程的开始,我没有写在我的调试日志中...
我可以给你我的源代码:
这一个是由DHTML用户事件称为(的onclick):
// Construct the param to pass to the WL adapter insert procedure
var paramObject = {
QCDART: machine, // machine is a javascript variable as long int
QTITRE: title, // title is a javascript variable as string(255)
QDESC: desc, // desc is a javascript variable as string(255)
QHODAT: todayDateDb2IntFormat, // todayDateDb2IntFormat is a javascript variable as long int
QACTIF: active, // active is a javascript variable as int
SSRCFIC: currentPdfFileDataBase64, // currentPdfFileDataBase64 is a javascript variable as base64 encoded string from a binary file > 150 ko approx.
SMIMFIC: 'application/pdf',
SSIZFIC: currentPdfFileSize // currentPdfFileSize is a javascript variable as long int
};
// Construct adapter invocation data
var invocationData = {
adapter : 'IseriesDB2Backend', // adapter name
procedure : 'addModeleReleves', // procedure name
parameters : [paramObject] // parameters if any
};
WL.Client.invokeProcedure(invocationData, {
timeout: 60000,
onSuccess: function() {
// Notify success
alert('OK');
}, // invokeProcedure success callback
onFailure: function(invocationResult) {
alert('ERROR');
} // invokeProcedure failure callback
});
这一个是我的适配器代码:
var addModeleReleveStatement = WL.Server.createSQLStatement("select QCDDOC from FINAL TABLE (insert into ERIHACFICH.DOCENTQ (QCDART, QTITRE, QDESC, QHODAT, QACTIF) values (?, ?, ?, ?, ?))");
function addModeleReleves(params) {
WL.Logger.debug('Starting adapter procedure...');
var modeleReleveResult = WL.Server.invokeSQLStatement({
preparedStatement : addModeleReleveStatement,
parameters : [params.QCDART, params.QTITRE, params.QDESC, params.QHODAT, params.QACTIF]
});
if(modeleReleveResult.isSuccessful) {
WL.Logger.debug('Success !');
}
WL.Logger.debug('Adapter procedure ended !');
// Return result (with the last id inside)
return modeleReleveResult;
}
如果名为currentPdfFileDataBase64的JavaScript可调参数很小,一切正常,但如果它超过大约200000个字符长度,它将失败...
最后,我可以说问题出现在开发环境(WL Studio 5.0.6 + WL Server 5.0.6)中,我没有在基于SLES + Websphere应用服务器7 + worklight的生产环境中进行测试。
感谢您的帮助
您是否尝试过适配器? – rooftop
是的,我使用WLStudio向导生成的SQL适配器 – erica