Estou implementando um botão onde o objetivo é replicar uma ação que está na formação de carga, para isto, usei o snippet abaixo e tem dado um erro que eu não consegui fazer a implementação.
Basicamente o usuário vai selecionar os registros em um relatório e clicar no botão, os campos eu já estou pegando através da linha selecionada.
private void requisicaoGerarOndaSeparacao(ContextoAcao contexto, Registro linha) throws Exception {
System.out.println("Montando a requisição para gerar onda de separação");
ServiceContext serviceContext = new ServiceContext(null);
serviceContext.setAutentication(AuthenticationInfo.getCurrent());
serviceContext.makeCurrent();
Element requestBody = new Element("requestBody");
Element params = new Element("params");
XMLUtils.addAttributeElement(params, "paramsseparacaoPorOC", true);
XMLUtils.addAttributeElement(params, "agrupar", false);
XMLUtils.addAttributeElement(params, "ORDEMCARGA", String.valueOf(linha.getCampo("ORDEMCARGA")));
XMLUtils.addAttributeElement(params, "CODEMP", String.valueOf(linha.getCampo("CODEMP")));
Element clientEventList = new Element("clientEventList");
XMLUtils.addContentElement(clientEventList, "clientEvent", "br.com.sankhya.mgewms.expedicao.cortePedidos");
XMLUtils.addContentElement(clientEventList, "clientEvent", "br.com.sankhya.mgewms.expedicao.validarPedidos");
XMLUtils.addContentElement(clientEventList, "clientEvent", "br.com.sankhya.mgewms.expedicao.encerrarOC");
XMLUtils.addContentElement(clientEventList, "clientEvent", "br.com.sankhya.mgewms.expedicao.selecaoDocas");
requestBody.addContent(params).detach();
requestBody.addContent(clientEventList).detach();
serviceContext.setRequestBody(requestBody);
System.out.println("Corpo da requisição: " + XMLUtils.elementToString(requestBody));
try {
ExpedicaoMercadoriaSP expedicaoMercadoriaSP = (ExpedicaoMercadoriaSP) ServiceUtils.getStatelessFacade(ExpedicaoMercadoriaSPHome.JNDI_NAME, ExpedicaoMercadoriaSPHome.class);
expedicaoMercadoriaSP.gerarOndaSeparacao(serviceContext);
} catch (Exception erro) {
System.out.println("Dados de envio");
System.out.println(XMLUtils.elementToString(requestBody));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
StringBuffer mensagem = new StringBuffer();
erro.printStackTrace(pw);
mensagem.append("Snk Service - Erro gerarOndaSeparacao Excecao: " + erro.getMessage() + sw.toString());
MGEModelException.throwMe(new Exception(mensagem.toString()));
System.out.println("FIM ERRO");
}
}
Essa parte do Null Exception eu não consegui identificar conforme o log, colocarei o response body que utilizei para mapear o serviço.
<serviceRequest serviceName="ExpedicaoMercadoriaSP.gerarOndaSeparacao">
<requestBody>
<params separacaoPorOC="true" agrupar="false" ORDEMCARGA="8712" CODEMP="1"/>
<clientEventList>
<clientEvent>br.com.sankhya.mgewms.expedicao.cortePedidos</clientEvent>
<clientEvent>br.com.sankhya.mgewms.expedicao.validarPedidos</clientEvent>
<clientEvent>br.com.sankhya.mgewms.expedicao.encerrarOC</clientEvent>
<clientEvent>br.com.sankhya.mgewms.expedicao.selecaoDocas</clientEvent>
</clientEventList>
</requestBody>
</serviceRequest>
ERRO no Log do Servidor:
Montando a requisição para gerar onda de separação
Corpo da requisição: <requestBody><params paramsseparacaoPorOC="true" agrupar="false" ORDEMCARGA="8711" CODEMP="1" /><clientEventList><clientEvent>br.com.sankhya.mgewms.expedicao.cortePedidos</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.validarPedidos</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.encerrarOC</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.selecaoDocas</clientEvent></clientEventList></requestBody>
Dados de envio
<requestBody><params paramsseparacaoPorOC="true" agrupar="false" ORDEMCARGA="8711" CODEMP="1" /><clientEventList><clientEvent>br.com.sankhya.mgewms.expedicao.cortePedidos</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.validarPedidos</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.encerrarOC</clientEvent><clientEvent>br.com.sankhya.mgewms.expedicao.selecaoDocas</clientEvent></clientEventList></requestBody>
[HTTPServiceBroker] Erro ao executar o serviço "ActionButtonsSP.executeJava" chamado pela aplicação "DashboardGridApp".
br.com.sankhya.modelcore.MGEModelException: __PRETTY_MSG__PGI+VGlwbzo8L2I+IFJvdGluYSBqYXZhPGJyLz4gPGI+Tm9tZTogPC9iPiBici5Gb3JtYWNhb09y
ZGVtQ2FyZ2EuRmVjaGFyT3JkZW1DYXJnYUxpYkRvY2E=
____PERSONALIZATION____<b>Regra Personalizada:</b><br>Snk Service - Erro gerarOndaSeparacao Excecao: Sem mensagem de errobr.com.sankhya.modelcore.MGEModelException: Sem mensagem de erro
at br.com.sankhya.modelcore.MGEModelException.parse(MGEModelException.java:64)
at br.com.sankhya.modelcore.MGEModelException.throwMe(MGEModelException.java:33)
at br.com.sankhya.mgewms.model.services.ExpedicaoMercadoriaSPBean.throwsMGEExceptionRollingBack(ExpedicaoMercadoriaSPBean.java:1685)
at br.com.sankhya.mgewms.model.services.ExpedicaoMercadoriaSPBean.gerarOndaSeparacao(ExpedicaoMercadoriaSPBean.java:434)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.tinyejb.proxies.SessionBeanProxyBuilder$MethodCaller.call(SessionBeanProxyBuilder.java:220)
at org.tinyejb.proxies.SessionBeanProxyBuilder$TransactionWrapper.call(SessionBeanProxyBuilder.java:327)
at org.tinyejb.proxies.SessionBeanProxyBuilder$SessionEJBProxy.handleBusinessInterfaceMethods(SessionBeanProxyBuilder.java:106)
at org.tinyejb.proxies.SessionBeanProxyBuilder$SessionEJBProxy.invoke(SessionBeanProxyBuilder.java:84)
at com.sun.proxy.$Proxy1368.gerarOndaSeparacao(Unknown Source)
at br.FormacaoOrdemCarga.FecharOrdemCargaLibDoca.requisicaoGerarOndaSeparacao(FecharOrdemCargaLibDoca.java:81)
at br.FormacaoOrdemCarga.FecharOrdemCargaLibDoca.doAction(FecharOrdemCargaLibDoca.java:42)
at br.com.sankhya.modelcore.actionbutton.JavaAction.prepareAndExecute(JavaAction.java:23)
at br.com.sankhya.modelcore.actionbutton.ServerSideAction.execute(ServerSideAction.java:115)
at br.com.sankhya.modelcore.facades.ActionButtonsSPBean.executeAction(ActionButtonsSPBean.java:108)
at br.com.sankhya.modelcore.facades.ActionButtonsSPBean.access$000(ActionButtonsSPBean.java:59)
at br.com.sankhya.modelcore.facades.ActionButtonsSPBean$2.doWithTx(ActionButtonsSPBean.java:308)
at br.com.sankhya.jape.core.JapeSession$SessionHandle.execWithTX(JapeSession.java:1785)
at br.com.sankhya.modelcore.facades.ActionButtonsSPBean.executeJavaTXAutomatica(ActionButtonsSPBean.java:296)
at br.com.sankhya.modelcore.facades.ActionButtonsSPBean.executeJava(ActionButtonsSPBean.java:240)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.tinyejb.proxies.SessionBeanProxyBuilder$MethodCaller.call(SessionBeanProxyBuilder.java:220)
at org.tinyejb.proxies.SessionBeanProxyBuilder$TransactionWrapper.call(SessionBeanProxyBuilder.java:327)
at org.tinyejb.proxies.SessionBeanProxyBuilder$SessionEJBProxy.handleBusinessInterfaceMethods(SessionBeanProxyBuilder.java:106)
at org.tinyejb.proxies.SessionBeanProxyBuilder$SessionEJBProxy.invoke(SessionBeanProxyBuilder.java:84)
at com.sun.proxy.$Proxy1295.executeJava(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1263.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at br.com.sankhya.ws.HttpServiceBroker$ServiceProviderProxy.execute(HttpServiceBroker.java:1208)
at br.com.sankhya.ws.HttpServiceBroker$3.doCall(HttpServiceBroker.java:611)
at br.com.sankhya.ws.ServiceCallSerialization.serializeAndCall(ServiceCallSerialization.java:82)
at br.com.sankhya.ws.ServiceCallSerialization.call(ServiceCallSerialization.java:25)
at br.com.sankhya.ws.HttpServiceBroker.callService(HttpServiceBroker.java:419)
at br.com.sankhya.ws.HttpServiceBroker.doPost(HttpServiceBroker.java:324)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:670)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:753)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at br.com.sankhya.dwf.controller.servlet.HttpServiceBrokerFilter.doFilter(HttpServiceBrokerFilter.java:35)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at br.com.sankhya.ws.GZIPFilter.doFilter(GZIPFilter.java:50)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at br.com.sankhya.dwf.controller.servlet.AnyURLFilter.doFilter(AnyURLFilter.java:170)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at br.com.sankhya.dwf.controller.servlet.CacheControlFilter.doFilter(CacheControlFilter.java:56)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:336)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException