cancel
Showing results for 
Search instead for 
Did you mean: 

Error using Component in another DC

Former Member
0 Kudos

Hello Everybody,

I have developed one DC in which I have created one RFC model and I have written all the methods related to it.

Now, I am using this DC in another DC and calling methods to call those RFC models.

This application was working perfectly fine. But, after the changes in structure of RFC and re-importing RFC model, I got following error in my DC in which i am using RFC DC.

com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Interface Controller does not exist for Component Instance R3Comp in Component Usage Dcr3_Comp

at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:345)

at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getControllerInternal(ComponentUsage.java:381)

at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:408)

at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getContext(MappingInfo.java:55)

at com.sap.tc.webdynpro.progmodel.context.MappingInfo.isComplete(MappingInfo.java:93)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:292)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:292)

at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.initNodeMapping(AttributeInfo.java:569)

at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.init(AttributeInfo.java:455)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAttributes(NodeInfo.java:771)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAfterCompletedMapping(NodeInfo.java:777)

at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initAfterCompletedMapping(MappingInfo.java:160)

at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initMapping(MappingInfo.java:153)

at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:143)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:746)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:761)

at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:40)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)

at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:346)

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:351)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:608)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:252)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:48)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:392)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

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:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)

I have sync my sources and also sync used dcs for RFC DC.

I have deployed this RFC dc on server. I have restarted my server also. But, still it is giving this problem.

What should be the reason behind this?

Thanks in Advance,

Bhavik

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Bhavik,

This is a common problem in Webdynpro.

have you written the code in interface controllers wDoInit method.like this?

if (wdThis.wdGetAComponentUsage().hasActiveComponent()) {

wdThis.wdGetAComponentUsage().deleteComponent();

}

wdThis.wdGetAComponentUsage().createComponent();

If you have already written,you do rebuild again.close SAPIde and open again.

Regards,

Karthick K Eswaran

Former Member
0 Kudos

Hi,

If you have 2 DC's.. say A and B.

1. Build and Deploy DC A

2. Create a public part in DC A

3. Add the created public part as UsedDC's in DC B

4. In DC B under used webdynpro components define the usage of component DC A.

Then build and deploy DC B. It should work fine.

Regards,

Karthi

Former Member
0 Kudos

Hi Bhavik,

This is a common problem in Webdynpro.

have you written the code in interface controllers wDoInit method.like this?

if (wdThis.wdGetAComponentUsage().hasActiveComponent()) {

wdThis.wdGetAComponentUsage().deleteComponent();

}

wdThis.wdGetAComponentUsage().createComponent();

If you have already written,you do rebuild again.close SAPIde and open again.

Hi Karthi,

No I haven't any code in the interface controller wdinit method.

Do I have to add this code? What it does?

And what the steps you have suggested is already done. And It was working perfectly before also.

But, now it is giving this problem.

Regards,

Bhavik

Former Member
0 Kudos

Hello,

Check if the corresponding jar file of component 1 is available in component 2 (assuming that component 2 uses component 1) in the path
<project>\_comp\gen\default\public. If not then build both the DCs.

If you are accessing the DCs fronm DTR try "Remove DC from Client" and do "Sync sources".

Also open the data modeler of the respective component and check if the Interface controller exists for the component listed in the first line of your stak trace.

Please rewars appropriate points.

Bala

Former Member
0 Kudos

Hi Bala,

I am accessing DCs from DTR.

I have dc_r3 component which has RFC model and related methods.

I have another dc named dc_myreq which uses dc_r3.

I found jar files for public part in dc_r3 component.

It also shows Interface controller in Data modeler.

What should be the other reason?

Regards,

Bhavik

yasu_ramaiah
Explorer
0 Kudos

Hello

I am not sure but did you try undeploying the previous components from the visual admin. Go to deploy-->webdynpro and than remove or undeploy dc's.

Also you told that you reimported the RFC, were any structures attributes removed. i.e If orginal stuct1 had a & b as attributes. The modified struct1 just has a.

This some times creates a problem. It happened to me once so I had delete the RFC model and start from scartch again.

Thanks,

Yasu