on 02-04-2004 7:17 PM
Hallo,
I have worked with EP5.0 and got used to the .par structure and debugging errors with it.
Now I and am now trying to figure out how the new .par structure of EP6.0 is working and how to debug it.
Here's the current error I am struggling with - it says "Error in init method" followed by the given headline: "Caused by: Could not instantiate implementation - Linkage error while loading implementation class".
I am using a bean and a jsp with the project main class. The portalapp.xml looks as follows:
<?xml version="1.0" encoding="UTF-8"?>
<application alias="Test">
<application-config/>
<components>
<component name="DropDownListBoxExample">
<component-config>
<property name="ClassName" value="tsi.basis.dropdown.DropDownListBoxExample"/>
<property name="SecurityZone" value="tsi.basis.dropdown/low_safety"/>
</component-config>
<component-profile/>
</component>
</components>
<services/>
</application>
I am not sure what exaclty causes this error. Hoping that someone has already been successful in solving this problem, I appreciate input and hints on this.
Regards,
Helga
Below, the stack trace.
com.sapportals.portal.prt.component.PortalComponentException: Error in init method
Component : null
Component class : null
at com.sapportals.portal.prt.component.PortalComponentContext.init(PortalComponentContext.java:246)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.refresh(PortalComponentContextItem.java:229)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.getContext(PortalComponentContextItem.java:278)
at com.sapportals.portal.prt.component.PortalComponentRequest.getComponentContext(PortalComponentRequest.java:389)
at com.sapportals.portal.prt.connection.PortalRequest.getRootContext(PortalRequest.java:428)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:520)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:209)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:166)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1156)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl0.ParserRunner.run(ParserRunner.java:35)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
Caused by: com.sapportals.portal.prt.core.broker.PortalComponentInstantiationException: Could not instantiate implementation class tsi.basis.dropdown.DropDownListBoxExample of Portal Component DropDownTest.DropDownListBoxExample because: Linkage error while loading implementation class
at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.getInstanceInternal(PortalComponentItemFacade.java:231)
at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.getComponentInstance(PortalComponentItemFacade.java:158)
at com.sapportals.portal.prt.core.broker.PortalComponentItem.getComponentInstance(PortalComponentItem.java:665)
at com.sapportals.portal.prt.component.PortalComponentContext.getComponent(PortalComponentContext.java:98)
at com.sapportals.portal.prt.component.PortalComponentContext.init(PortalComponentContext.java:237)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.refresh(PortalComponentContextItem.java:229)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.getContext(PortalComponentContextItem.java:278)
at com.sapportals.portal.prt.component.PortalComponentRequest.getComponentContext(PortalComponentRequest.java:389)
at com.sapportals.portal.prt.connection.PortalRequest.getRootContext(PortalRequest.java:428)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:520)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:209)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:166)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1156)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl0.ParserRunner.run(ParserRunner.java:35)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
Caused by: java.lang.NoClassDefFoundError: com/sapportals/portal/htmlb/page/PageProcessorComponent
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
at com.sapportals.portal.prt.util.AutoClassLoader.access$301(AutoClassLoader.java:92)
at com.sapportals.portal.prt.util.AutoClassLoader$1.run(AutoClassLoader.java:778)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.util.AutoClassLoader.findClass(AutoClassLoader.java:770)
at com.sapportals.portal.prt.util.AutoClassLoader.loadClassLocally(AutoClassLoader.java:1248)
at com.sapportals.portal.prt.util.AutoClassLoader.loadClass(AutoClassLoader.java:1394)
at com.sapportals.portal.prt.util.AutoClassLoader.loadClass(AutoClassLoader.java:1388)
at com.sapportals.portal.prt.util.AutoClassLoader.loadClass(AutoClassLoader.java:1434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.getInstanceInternal(PortalComponentItemFacade.java:225)
at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.getComponentInstance(PortalComponentItemFacade.java:158)
at com.sapportals.portal.prt.core.broker.PortalComponentItem.getComponentInstance(PortalComponentItem.java:665)
at com.sapportals.portal.prt.component.PortalComponentContext.getComponent(PortalComponentContext.java:98)
at com.sapportals.portal.prt.component.PortalComponentContext.init(PortalComponentContext.java:237)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.refresh(PortalComponentContextItem.java:229)
at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.getContext(PortalComponentContextItem.java:278)
at com.sapportals.portal.prt.component.PortalComponentRequest.getComponentContext(PortalComponentRequest.java:389)
at com.sapportals.portal.prt.connection.PortalRequest.getRootContext(PortalRequest.java:428)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:520)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:209)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:166)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1156)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl0.ParserRunner.run(ParserRunner.java:35)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
Hi Helga,
the problem you are facing is that your class is beeing loaded, but it references other classes (e.g. HTMLB) that are not declared in your portalapp.xml. Thus the ClassLoader cannot find these classes.
Simply declare a PrivateSharingReference attribute in your portalapp.xml declaring the referenced libraries of your portal component.
Simply replace tag: <application-config/>
with the following tag:
<application-config>
<property name="PrivateSharingReference" value="com.sap.portal.htmlb"/>
</application-config>
As value you can specify a comma seperated list of the referenced libraries.
Regards,
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Found the error myself. I was missing two lines in the portalapp.xml
<application-config>
<property name="SharingReference" value="htmlb"/>
</application-config>
and I had to modify my property "SecurityZone" which was generated by the wizard (it put the package path of my class in front of the "<myprojectpath>/low_safety" and that did not work) to:
<property name="SecurityZone" value="com.sap.portal.pdk/low_safety"/>
Hope this helps anyone facing the same problem.
Regards,
Helga
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
78 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.