cancel
Showing results for 
Search instead for 
Did you mean: 

Model Reference between WDP DC's

Former Member
0 Kudos

Hi all,

while developing with Webdynpro DCs we got a very profound problem as the following scenario describes.

DC A is a faceless (no view element) Webdynpro Component which imports a simple JavaBean model. This model is mapped by the Interface Controller Context of the current component. The Model as well as the Webdynpro Component are added to the Public Part.

DC B is a simple Webdynpro Component which imports DC A as "Used DCs". From the Component Controller of DC B we try to map the context of the Interface Controller from DC A. Needless to say that the Interface of DC A is added to the Used Webdynpro Components.

Exactly in this case our whole project is blown up with a lot of errors caused by the Webdynpro wizards. In order to fix this problems we started to test some different Public Part versions and contents. Added some files or packages... but without a result!!

Has anybody an idea how the preceding scenario can be realized??

Greetings

Thomas

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Thomas,

Which Webdynpro wizards you are referring to and please let us know the problem also.

Regards, Anilkumar

Former Member
0 Kudos

Hi Anilkumar,

we did the following:

we created a faceless Webdynpro component A and used a JavaBean as model.

Then we did a 'Add to Public Part' of the newly created component.

Beside this, we manually added the model in this component to the public part as well.

The resulting DC is defined as "Used DCs" in a second Webdynpro DC B.

As soon as we are referencing the model data via the component interface of component A,

the next rebuild of component B fails.

The detailed results is a amount of disrupted internal interfaces and classes.

To trace that problem we examined the Public Part of component A and we discoverd,

that the java classes of the uses JavaBean and all helper classes were not part of the Public Part.

Thus we added these classes separately to the public part of component A as a Entity Reference.

Thus we were able to reference the model of component A via its component interace in component B.

But at runtime we now get a java.lang.LinkageError:

java.lang.LinkageError: loader constraints violated when linking net/dsb/zhsgui/model/javaBean/EntireXSession class
	at net.dsb.zhsgui.view.Hilfezielort_model_compInterface.wdDoInit(Hilfezielort_model_compInterface.java:111)
	at net.dsb.zhsgui.view.wdp.InternalHilfezielort_model_compInterface.wdDoInit(InternalHilfezielort_model_compInterface.java:215)
	at com.sap.tc.webdynpro.progmodel.generation.DelegatingCustomController.doInit(DelegatingCustomController.java:73)
	at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
	at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
	at com.sap.tc.webdynpro.progmodel.controller.Component.getCustomControllerInternal(Component.java:436)
	at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponentInternal(ComponentUsage.java:161)
	at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponent(ComponentUsage.java:110)
	at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createInstanceIfDemanded(ComponentUsage.java:699)
	at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:340)
	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.getDataNode(MappingInfo.java:79)
	at com.sap.tc.webdynpro.progmodel.context.MappedNodeInfo.getDataNode(MappedNodeInfo.java:199)
	at com.sap.tc.webdynpro.progmodel.context.MappedNodeInfo.getStructureType(MappedNodeInfo.java:108)
	at com.sap.tc.webdynpro.progmodel.context.MappedNodeInfo.getStructureType(MappedNodeInfo.java:109)
	at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initStructureType(NodeInfo.java:688)
	at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAfterCompletedMapping(NodeInfo.java:676)
	at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getDataNode(MappingInfo.java:83)
	at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initMapping(MappingInfo.java:121)
	at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:117)
	at com.sap.tc.webdynpro.progmodel.context.MappedNodeInfo.doInit(MappedNodeInfo.java:207)
	at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:654)
	at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:657)
	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.progmodel.view.ViewManager.getView(ViewManager.java:540)
	at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:422)
	at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:130)
	at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:41)
	at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
	at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.displayToplevelComponent(ClientComponent.java:135)
	at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:392)
	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:248)
	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)

Kind Regards

Thomas

Former Member
0 Kudos

Hi,

we encountered a similar problem. Does anyone have a solution for this?

Any help is appreciated.

Greetings.

Achim