Hi Experts,
Im trying to use a web service in my JSPDynpage. When I try to pass parameters to the method, it fails on the line below:
myService.opDSJob_ValidAcctCode(params);
The method is :
public void communicate(){
OpDSJob_ValidAcctCode params = new OpDSJob_ValidAcctCode();
System.err.println("printing object params " + params);
params.setCompcode("9500");
params.setGlacct("0000400170");
try{
IPortalRuntimeResources runtimeResources = PortalRuntime.getRuntimeResources();
IPortal_Service myService = (IPortal_Service)runtimeResources.getService(IPortal_Service.KEY);
System.err.println("b4 passing object to service");
myService.opDSJob_ValidAcctCode(params);
System.err.println("called method from service");
}catch (Exception e) {
e.printStackTrace();
System.err.println("We are in Exception and got the message770: " + e.getMessage());
}//end try catch
}
The method in the portal service is below which is generated from the WSDL file by the Portal Service Creation wizard.
public com.abc.ws.OpDSJob_ValidAcctCodeResponse opDSJob_ValidAcctCode (
com.abc.ws.OpDSJob_ValidAcctCode parameters ) {
try {
HashMap httpheaders = new HashMap();
httpheaders.put("soapaction","\"\"");
XMLAttributeHandler params = new XMLAttributeHandler();
params.addAttribute("parameters", new SOAPParameter(null,com.abc.ws.OpDSJob_ValidAcctCode.class,parameters));
String aUrl = "http://10.92.8.146:9080/wisd/CodeMatch/ValidateCodes";
if(mm_urlEndpoint!=null)
{
aUrl = mm_urlEndpoint;
}
IUserContext aUser = null;
String systemAlias = null;
if(mm_isClone)
{
aUser = mm_userCxt;
systemAlias = mm_serviceContext.getServiceProfile().getProperty(ISOAPParamConstants.SYSTEM_ALIAS);
}
IPRTSOAPCall mm_soapcall = mm_soapService.getSOAPCallInstance(httpheaders,aUrl,IPortal_Service.KEY, mm_namespaceURI);
mm_cookiesFromResponse =null;
if (mm_cookies.size()>0){
Enumeration enumeration = mm_cookies.elements();
while (enumeration.hasMoreElements())
{
Object element = (Object) enumeration.nextElement();
if (checkTypeObject(element))
mm_soapcall.addCookie(element);
}
}
com.abc.ws.OpDSJob_ValidAcctCodeResponse result = (com.abc.ws.OpDSJob_ValidAcctCodeResponse)mm_soapcall.invokeMethod("opDSJob_ValidAcctCode", params,"http://ValidateCodes.CodeMatch.isd.icm.com/soapoverhttp/", aUser, systemAlias);
mm_cookiesFromResponse = mm_soapcall.getCookiesContainInResponse();
mm_soapcall = null;
return result;
} catch (Exception soapex) {
if ( soapex instanceof PRTFault) {
Object excp = ((PRTFault)soapex).throwException();
throw (PRTFault)soapex;
}else
throw new PRTFaultInternalError(this,soapex);
}
finally{
mm_cookies.clear();
}
}
This is the error log.
java.lang.IllegalArgumentException: The SOAP Action "" include in the soap request not corresponding to the Portal service method. at com.sapportals.portal.prt.service.soap.element.PRTSOAPBodyElement.processParams(PRTSOAPBodyElement.java:253) at com.sapportals.portal.prt.service.soap.element.PRTSOAPBodyElement.init(PRTSOAPBodyElement.java:190) at com.sapportals.portal.prt.service.soap.element.PRTSOAPBodyElement.<init>(PRTSOAPBodyElement.java:56) at com.sapportals.portal.prt.service.soap.element.PRTSOAPBody.init(PRTSOAPBody.java:94) at com.sapportals.portal.prt.service.soap.element.PRTSOAPBody.<init>(PRTSOAPBody.java:36) at com.sapportals.portal.prt.service.soap.element.PRTSOAPEnvelope.init(PRTSOAPEnvelope.java:113) at com.sapportals.portal.prt.service.soap.element.PRTSOAPEnvelope.<init>(PRTSOAPEnvelope.java:54) at com.sapportals.portal.prt.service.soap.element.PRTSOAPMessage.processSOAPMessage(PRTSOAPMessage.java:58) at com.sapportals.portal.prt.service.soap.element.PRTSOAPMessage.<init>(PRTSOAPMessage.java:40) at com.sapportals.portal.prt.service.soap.SOAPService.call(SOAPService.java:180) at com.sapportals.portal.prt.service.soap.PRTSOAPCall.invokeMethod(PRTSOAPCall.java:209) at com.aig.ws.Portal_Service.opDSJob_ValidAcctCode(Portal_Service.java:166) at com.aig.DemoJSPDynpage_WS$DemoJSPDynpage_WSDynPage.communicate(DemoJSPDynpage_WS.java:83) at com.aig.DemoJSPDynpage_WS$DemoJSPDynpage_WSDynPage.doInitialization(DemoJSPDynpage_WS.java:46) at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:105) at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134) at com.sapportals.portal.prt.component.AbstractPortalComponent.doPreview(AbstractPortalComponent.java:240) at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:168) at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114) at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189) at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215) at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645) at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189) at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753) at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240) at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:524) at java.security.AccessController.doPrivileged(Native Method) at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:407) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172) java.lang.IllegalArgumentException: The SOAP Action "" include in the soap request not corresponding to the Portal service method.#
Any ideas on what is going wrong?
Regards,
S.B