soap tool problem

Confluence User - 28 Mar, 2016

I'm using SOAP Tool to retrieve data from external system. And I test in SoapUI successfully. But failed in joget with log saying need 2 argument. Any expert here knows why?

 

code from SoapUI:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="urn:com.domain.report/Test_Webservice_ByJohnny">
   <soapenv:Header/>
   <soapenv:Body>
      <test:Execute_Report>
         <!--Optional:-->
         <test:Report_Parameters/>
         <!--Optional:-->
         <test:Authentication>
            <!--Optional:-->
            <test:Proxy_User_Name>?</test:Proxy_User_Name>
         </test:Authentication>
      </test:Execute_Report>
   </soapenv:Body>
</soapenv:Envelope>

soap

8


28 Mar, 2016
confluenceUser
confluenceUser

may be u can enable the debug mode of the soap tool and paste the output here?

28 Mar, 2016
confluenceUser
confluenceUser

Hi ERROR 28 Mar 2016 11:01:07 SoapTool - java.lang.RuntimeException: Need 2 arguments!!! java.lang.RuntimeException: Need 2 arguments!!! at org.joget.plugin.enterprise.SoapTool.dynamicInvoke_aroundBody26(SoapTool.java:434) at org.joget.plugin.enterprise.SoapTool.dynamicInvoke_aroundBody27$advice(SoapTool.java:94) at org.joget.plugin.enterprise.SoapTool.dynamicInvoke(SoapTool.java:1) at org.joget.plugin.enterprise.SoapTool.call_aroundBody24(SoapTool.java:317) at org.joget.plugin.enterprise.SoapTool.call_aroundBody25$advice(SoapTool.java:94) at org.joget.plugin.enterprise.SoapTool.call(SoapTool.java:1) at org.joget.plugin.enterprise.SoapTool.execute_aroundBody12(SoapTool.java:131) at org.joget.plugin.enterprise.SoapTool.execute_aroundBody13$advice(SoapTool.java:94) at org.joget.plugin.enterprise.SoapTool.execute(SoapTool.java:1) at org.joget.apps.app.service.AppWorkflowHelper.executeTool(AppWorkflowHelper.java:102) at org.joget.workflow.shark.WorkflowToolActivityHandler.executeActivity(WorkflowToolActivityHandler.java:64) at org.enhydra.shark.WfActivityImpl.runTool(WfActivityImpl.java:1487) at org.enhydra.shark.WfActivityImpl.startActivity(WfActivityImpl.java:1419) at org.enhydra.shark.WfActivityImpl.activate(WfActivityImpl.java:261) at org.enhydra.shark.WfProcessImpl.startActivity(WfProcessImpl.java:918) at org.enhydra.shark.WfProcessImpl.run(WfProcessImpl.java:742) at org.enhydra.shark.WfProcessImpl.start(WfProcessImpl.java:422) at org.enhydra.shark.WfProcessWrapper.start(WfProcessWrapper.java:289) at org.joget.workflow.model.service.WorkflowManagerImpl.processStart(WorkflowManagerImpl.java:3133) at sun.reflect.GeneratedMethodAccessor388.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.joget.apps.app.service.AuditTrailInterceptor.invoke(AuditTrailInterceptor.java:17) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.joget.apps.app.service.SqlFilterAspect.invoke(SqlFilterAspect.java:36) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy24.processStart(Unknown Source) at org.joget.apps.app.controller.AppWebController.clientProcessStart(AppWebController.java:196) at sun.reflect.GeneratedMethodAccessor386.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:177) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434) at org.joget.commons.spring.web.ParameterizedAnnotationMethodHandlerAdapter.handle(ParameterizedAnnotationMethodHandlerAdapter.java:32) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) at javax.servlet.http.HttpServlet.service(HttpServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) at org.joget.apps.workflow.security.WorkflowHttpAuthProcessingFilter.doFilter(WorkflowHttpAuthProcessingFilter.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) at org.joget.commons.spring.web.CustomDelegatingFilterProxy.doFilter(CustomDelegatingFilterProxy.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)

28 Mar, 2016
confluenceUser
confluenceUser
attach the properties of soapUI request.
28 Mar, 2016
confluenceUser
confluenceUser

emm.. look like the plugin can't handle optional parameter. maybe u can try using "SOAP Body (XML)" option to construct the request body instead using "Parameters"?

28 Mar, 2016
confluenceUser
confluenceUser

Thanks for your advice. Tried and failed with below message. INFO 28 Mar 2016 15:08:16 org.joget.plugin.enterprise.SoapTool - {"Fault":{"SOAP-ENV":"http://schemas.xmlsoap.org/soap/envelope/","faultcode":"SOAP-ENV:Client.validationError","faultstring":"Invalid request","wd":"urn:com.workday/bsvc"}} SOAP body: <test:Execute_Report> <!--Optional:--> <test:Report_Parameters/> <!--Optional:--> <test:Authentication> <!--Optional:--> <test:Proxy_User_Name>?</test:Proxy_User_Name> </test:Authentication> </test:Execute_Report>

28 Mar, 2016
confluenceUser
confluenceUser

Here‘s the SOAP request from SoapUI.

Could it be because Soap Tool doesn't support WSSE security?

Thanks.

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="urn:com.domain.report/Test_Webservice_ByJohnny">
   <soapenv:Header>
 <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <wsse:UsernameToken wsu:Id="UsernameToken-5AB13C692A71BD503714591550146072">
   <wsse:Username>xxxx</wsse:Username>
   <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxxxx</wsse:Password>
   <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">CFG2ufO+44DASgm+hldqDw==</wsse:Nonce>
   <wsu:Created>2016-03-28T08:50:14.607Z</wsu:Created>
  </wsse:UsernameToken>
 </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <test:Execute_Report>
         <!--Optional:-->
         <test:Report_Parameters/>
         <!--Optional:-->
         <test:Authentication>
            <!--Optional:-->
            <test:Proxy_User_Name>?</test:Proxy_User_Name>
         </test:Authentication>
      </test:Execute_Report>
   </soapenv:Body>
</soapenv:Envelope>

29 Mar, 2016
confluenceUser
confluenceUser

Hi,

Yes, you are right that the SOAP Tool currently does not support WSSE security. 

The username and password in configuration is used for basic http authentication. 

The plugin also does not support optional parameter in Parameters option and it does not support custom namespace in "SOAP Body (XML)".

We will take note on this in our future product road map. 

If there's an urgent requirement for this then you can develop a custom plugin to handle it Extending Functionality - Developing Plugins.

Best regards.

11 Dec, 2019
confluenceUser
confluenceUser

Any update on this...im facing the same issue unable to fetch required field from external and showcase that in a form field.


Is this even possible


RELATED QUESTIONS

Your answer


To answer a question you'll need an account.

Print