cancel
Showing results for 
Search instead for 
Did you mean: 

Issue while invoke WebService from Webdynpro

Former Member
0 Kudos

Hi

I am trying to invoke a websevice from the webdynpro code, but its throwing the following error:

"WebService operation invoker could not be retrieved"

The code was working fine earlier, recently some changes were made on the service. After that i had re-imported the service. But it started giving the above mentioned error.

I have also tried to create new DC and do it freshly.

Steps followed to invoke.

- Created a model using the webservice.

- Used the model in the Component

- Apply Template --> Service controller. Created methods/Context.

- Created view, mapped context object. Created form with button.

- On Click, trigger execute method which was generated.

But here also i am facing the same issue.

Is there any problem with the service? or code issue?

Stack Trace:

Error:
com.sap.tc.webdynpro.model.webservice.model.WSGenericModelClassExecutable.retrieveWsrInterfaceInvoker(WSGenericModelClassExecutable.java:249)
com.sap.tc.webdynpro.model.webservice.model.WSGenericModelClassExecutable.execute(WSGenericModelClassExecutable.java:62)
com.sap.tc.webdynpro.model.webservice.gci.WSTypedModelClassExecutable.execute(WSTypedModelClassExecutable.java:49)
com.sysco.global.vendor_dqxi_test.wd.comp.dqxicomp.DQXIComp.executeService_Realtime_DQ_SAP_Address_Cleanse(DQXIComp.java:219)
com.sysco.global.vendor_dqxi_test.wd.comp.dqxicomp.wdp.InternalDQXIComp.executeService_Realtime_DQ_SAP_Address_Cleanse(InternalDQXIComp.java:236)
com.sysco.global.vendor_dqxi_test.wd.comp.dqxicomp.DQXICompView.onActionTriggerExecute(DQXICompView.java:187)
com.sysco.global.vendor_dqxi_test.wd.comp.dqxicomp.wdp.InternalDQXICompView.wdInvokeEventHandler(InternalDQXICompView.java:226)
com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:142)
com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:75)
com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:159)
com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:94)
com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:514)
com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:55)
com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1689)
com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1503)
com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:907)
com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessing(ApplicationSession.java:879)
com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:358)
com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:331)
com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
com.sap.tc.webdynpro.serverimpl.wdc.DispatcherServlet.doContent(DispatcherServlet.java:89)
com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doPost(AbstractDispatcherServlet.java:62)
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:404)
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:204)
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:440)
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:429)
com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:82)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)

Regards

Jabbs

Accepted Solutions (1)

Accepted Solutions (1)

amol_gaddamwar
Explorer
0 Kudos

Hi,

If you have multiple ports in in your web service then to resolve this you have to change the sequence of port id's in the file so that first port should be the port which has the operation/method you are calling. I exectly don't remember the file which needs to be updated with the sequence.

Open the service group that will show the port name and id. Note the port id of port which has you method to be called. Now open the files with name .models and search this port id. when u find this port id, change the sequence to make the noted port id as the first in the sequence and deploy the WD application.

In this way u can resolve this issue.

Regards,

Amol

Former Member
0 Kudos

Hi Amol

Ya i have noticed that in earlier wsdl the port that i was using was the first and in the after change wsdl the port is in second place.

The issue is resolved now.

Answers (4)

Answers (4)

Former Member
0 Kudos

Can you provide full error stack trace for analysis? You need to provide more info to answer on your question. What changes were made on the service? What actions were made after service was changed?

amol_gaddamwar
Explorer
0 Kudos

Hi,

The Web Service you are calling in Web Dynpro is it a Web Service exposed from BO/BODS or any external system which has multiple ports or multiple endpoints in the web service?

Regards,

Amol

junwu
Active Contributor
0 Kudos

have u done the soa configuration?

ErvinSzolke
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Jabbs,

do you also have in the defaultTrace a similar entry like:

Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.WebserviceClientException: No port is available in client ...

If yes, then most likely this is related to the fact that the WSDL of the web service contains multiple porttypes (you can check the WSDL to see whether you have multiple instances of

"<wsdl:port name=..."

If yes, this is a limitation of the Java AS, and a workaround would be to split the multiple porttypes in separate WSDLs and use them for creating the WebDynpro models.

I hope this helps.

Best Regards,

Ervin

Former Member
0 Kudos

Hi Ervin

There are 4 different ports in the wsdl, but earlier also it was the same case.

It was still working earlier, but now its not.

@Jun: All SOA configs are done, I know the basics.