Ce problème concerne uniquement le WP8 (Android, iOS et BB10 conviennent).WP8 n'affiche pas d'erreur lorsque l'onfailure appelle l'adaptateur hybride hybride Mobilefirst 7.1
Exemple de code lorsque l'adaptateur d'appel:
var invocationData = {
adapter : appAdapterName,
procedure : 'checkSignature',
parameters : [arg0, arg1]
};
WL.Client.invokeProcedure(invocationData, {
onSuccess : checkSignatureSuccess,
onFailure : checkSignatureFailure
});
succès Poignée:
function checkSignatureSuccess(result){
alert("success");
}
Gérer l'erreur:
function checkSignatureFailure(result){
alert(result.errorCode);
}
Quand j'éteins mon service back-end, sur Android, iOS et BB10 peuvent afficher l'alerte "PROCEDURE_ERROR". Mais sur WP8, ne montrant aucune alerte.
Ceci est un journal de message.log lorsque mon service dorsal est en panne.
response:
Not Found
Server=Apache-Coyote/1.1
Content-Type=text/html;charset=utf-8
Content-Length=1144
Date=Thu, 22 Sep 2016 11:22:05 GMT
<html><head><title>xxxxxxxx</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>xxxxxx: HTTP Status 404 - xxxxxxxxxxxxxxxxxxxxxxxxxxxx</h1><HR size="1" noshade="noshade"><p><b>xxxxxx: type</b> xxxxxx: Status report</p><p><b>xxxxx: message</b> <u>xxxxxxxxxxxxxxxxxxxxxxxxx</u></p><p><b>xxxxxx: description</b> <u>xxxxxxxx: The requested resource is not available.</u></p><HR size="1" noshade="noshade"><h3>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</h3></body></html> [project xxxxx]
[9/22/16 18:20:00:102 ICT] 00000127 om.worklight.integration.services.impl.DataAccessServiceImpl E FWLSE0099E: An error occurred while invoking procedure [project xxxxx]ApplicationHTTPAdapter/checkSignature: parameters: [project xxxxx]
TypeError: Cannot read property "Body" from undefined (2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js#121)
FWLSE0101E: Caused by: [project xxxxx]nullorg.mozilla.javascript.EcmaError: TypeError: Cannot read property "Body" from undefined (2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js#121)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
at org.mozilla.javascript.ScriptRuntime.undefReadError(ScriptRuntime.java:3725)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1483)
at org.mozilla.javascript.gen._2016_09_22T17_04_18_759Z_6733847e906e1c3f58643f980a1375aa2209260b_ApplicationHTTPAdapter_impl_js_3._c_sendRequest_5(2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js:121)
at org.mozilla.javascript.gen._2016_09_22T17_04_18_759Z_6733847e906e1c3f58643f980a1375aa2209260b_ApplicationHTTPAdapter_impl_js_3._c_checkSignature_76(2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js:1785)
at org.mozilla.javascript.gen._2016_09_22T17_04_18_759Z_6733847e906e1c3f58643f980a1375aa2209260b_ApplicationHTTPAdapter_impl_js_3.call(2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.mozilla.javascript.gen._2016_09_22T17_04_18_759Z_6733847e906e1c3f58643f980a1375aa2209260b_ApplicationHTTPAdapter_impl_js_3.call(2016-09-22T17:04:18.759Z/6733847e906e1c3f58643f980a1375aa2209260b/ApplicationHTTPAdapter-impl.js)
at com.worklight.integration.js.JavaScriptManager.callFunction(JavaScriptManager.java:267)
at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:241)
at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:211)
at com.worklight.integration.services.impl.AdapterManagerImpl.invokeFunction(AdapterManagerImpl.java:113)
at com.worklight.integration.js.JavaScriptProcedureInvoker.invoke(JavaScriptProcedureInvoker.java:42)
at com.worklight.integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:54)
at com.worklight.integration.model.Procedure.invoke(Procedure.java:166)
at com.worklight.integration.services.impl.DataAccessServiceImpl.callProcedureInternal(DataAccessServiceImpl.java:775)
at com.worklight.integration.services.impl.DataAccessServiceImpl.callProcedure(DataAccessServiceImpl.java:721)
at com.worklight.integration.services.impl.DataAccessServiceImpl.access$200(DataAccessServiceImpl.java:74)
at com.worklight.integration.services.impl.DataAccessServiceImpl$3.execute(DataAccessServiceImpl.java:603)
at com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:82)
at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedureInternal(DataAccessServiceImpl.java:600)
at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedure(DataAccessServiceImpl.java:160)
at com.worklight.gadgets.serving.handler.BackendQueryHandler.getContent(BackendQueryHandler.java:95)
at com.worklight.gadgets.serving.handler.BackendQueryHandler.doPost(BackendQueryHandler.java:56)
at com.worklight.gadgets.serving.GadgetAPIServlet.doGetOrPost(GadgetAPIServlet.java:178)
at com.worklight.gadgets.serving.GadgetAPIServlet.doPost(GadgetAPIServlet.java:135)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at com.worklight.gadgets.serving.GadgetAPIServlet.service(GadgetAPIServlet.java:118)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1240)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:760)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:127)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:88)
at com.worklight.core.auth.impl.AuthenticationFilter$1.execute(AuthenticationFilter.java:224)
at com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:82)
at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:229)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:85)
at com.worklight.analytics.AnalyticsFilter.doFilter(AnalyticsFilter.java:124)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:85)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:949)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1029)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:78)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:885)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:252)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:584)
at com.ibm.ws.threading.internal.Worker.executeWork(Worker.java:439)
at com.ibm.ws.threading.internal.Worker.run(Worker.java:421)
at java.lang.Thread.run(Thread.java:745)
com.worklight.common.log.filters.ErrorFilter
Pouvez-vous essayer ////// fonction checkSignatureFailure (résultat) { alerte (JSON.stringify (résultat)); } ////// juste pour voir si une réponse atteint le client. En outre, si vous attendez 30 secondes, voyez-vous l'appel de rappel d'erreur? Juste essayer de voir si elle attend le délai d'expiration par défaut de 30 secondes –
Hai Vivin, merci quand même pour votre réponse. J'essayais d'utiliser JSON.stringify (résultat) et je n'ai toujours pas reçu de réponse. J'attends également 30 secondes et ne reçois pas le code d'erreur "REQUEST_TIMEOUT". Pendant un certain temps, j'utilise la fonction javascript setTimeout pour cette condition et seulement pour la plate-forme WP8, jusqu'à ce que je trouve la solution pour ce cas. Hehe. S'il vous plaît dites-moi si vous avez d'autres suggestions. Merci quand même Vivin. –