0

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 
+0

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 –

+0

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. –

Répondre

0

Windows Phone ne prend pas en charge l'affichage de la méthode alert. Au lieu de cela, vous devez trouver une manière différente d'afficher les invites à l'utilisateur final dans votre application.

Par exemple, utilisez ceci: Prompt in Windows Phone

navigator.notification.alert(
    'You are the winner!', // message 
    alertDismissed,   // callback 
    'Game Over',   // title 
    'Done'     // buttonName 
); 

function alertDismissed() { 
    // do something 
} 
+0

Hai Idan, merci quand même pour votre réponse, mais je pense que le problème ne concerne pas la méthode d'alerte. Parce que, si j'active à nouveau mon service back-end, le WP8 peut afficher un «succès» d'alerte. J'essaye de changer la méthode d'alerte avec l'événement de changement de page jquery mobile, et WP8 ne peut toujours pas le lire. Son aspect comme WP8 ne reçoit aucune réponse de WL.Client.invokeProcedure. –