cancel
Showing results for 
Search instead for 
Did you mean: 

java classes from Library Dc can not be resolved at Runtime

Former Member
0 Kudos

java classes from Library Dc can not be resolved at Runtime

Hi ,

M working on Netweaver 7.1 WebDynpro DC. I have added jar to library DC. That jar file has been declared as public archive. I have added that library Dc as used DC for WebDynpro DC. In WebDynpro classes from tht jar are resolved at build time as well as deploy time. But at runtime i am getting following error

java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFWorkbook -


Loader Info -


ClassLoader name: [asianpaints.com/erecdyn] Living status: alive Direct parent loaders: [system:Frame] [service:servlet_jsp] [service:ejb] [asianpaints.com/excldump] [library:tcblsecuritylib] [asianpaints.com/resdyn] [asianpaints.com/mastrdyn] [asianpaints.com/erecapp] [service:tcjesecurityapi] [library:tcblsecuritydestinationsapi] [asianpaints.com/erecnapp] Resources: /usr/sap/J2D/J00/j2ee/cluster/apps/asianpaints.com/erecdyn/servlet_jsp/webdynpro/resources/asianpaints.com/erecdyn/root/WEB-INF/lib/app.jar -


java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook

at com.apl.erec.dynapp.dyncomp.exceltemphandler.ExcelDownloader.populateBasicCandidateDetails(ExcelDownloader.java:236)

at com.apl.erec.dynapp.dyncomp.exceltemphandler.wdp.InternalExcelDownloader.populateBasicCandidateDetails(InternalExcelDownloader.java:589)

at com.apl.erec.dynapp.dyncomp.exceltemphandler.ExcelTemplateHandler.DownloadExcel(ExcelTemplateHandler.java:246)

at com.apl.erec.dynapp.dyncomp.exceltemphandler.wdp.InternalExcelTemplateHandler.wdInvokeMethod(InternalExcelTemplateHandler.java:195)

at com.sap.tc.webdynpro.progmodel.generation.ExternalControllerPI$ExternalInterface.invoke(ExternalControllerPI.java:291)

at $Proxy452.DownloadExcel(Unknown Source)

at com.apl.erec.dynapp.dyncomp.apptabledisplay.AgencyInProcessAppDisplayView.onActionGenerateExcel(AgencyInProcessAppDisplayView.java:620)

at com.apl.erec.dynapp.dyncomp.apptabledisplay.wdp.InternalAgencyInProcessAppDisplayView.wdInvokeEventHandler(InternalAgencyInProcessAppDisplayView.java:609)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:131)

at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:72)

at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:156)

at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:91)

at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:161)

at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:109)

at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:96)

at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:469)

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

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1431)

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1251)

at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.delegateToApplicationDoProcessing(AbstractExecutionContextDispatcher.java:158)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForAppProcessing.doService(DispatchHandlerForAppProcessing.java:35)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.AbstractDispatchHandler.service(AbstractDispatchHandler.java:116)

at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:93)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.ExecutionContextDispatcher.dispatchToApplicationDoProcessing(ExecutionContextDispatcher.java:114)

at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:81)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.dispatch(ApplicationSession.java:507)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.dispatch(ApplicationSession.java:527)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:458)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:249)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:699)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:231)

at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:231)

at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.delegateToRequestManager(AbstractExecutionContextDispatcher.java:205)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForRequestManager.doService(DispatchHandlerForRequestManager.java:38)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.AbstractDispatchHandler.service(AbstractDispatchHandler.java:116)

at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:93)

at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.ExecutionContextDispatcher.dispatchToRequestManager(ExecutionContextDispatcher.java:140)

at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:93)

at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:105)

at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)

at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doPost(AbstractDispatcherServlet.java:61)

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

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

at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)

at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32)

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

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

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

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

at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:309)

at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)

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

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

Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFWorkbook

-


Loader Info -


ClassLoader name: [asianpaints.com/erecdyn]

Living status: alive

Direct parent loaders:

[system:Frame]

[service:servlet_jsp]

[service:ejb]

[asianpaints.com/excldump]

[library:tcblsecurity~lib]

[asianpaints.com/resdyn]

[asianpaints.com/mastrdyn]

[asianpaints.com/erecapp]

[service:tcjesecurity~api]

[library:tcblsecuritydestinationsapi]

[asianpaints.com/erecnapp]

Resources:

/usr/sap/J2D/J00/j2ee/cluster/apps/asianpaints.com/erecdyn/servlet_jsp/webdynpro/resources/asianpaints.com/erecdyn/root/WEB-INF/lib/app.jar

-


at com.sap.engine.boot.loader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:259)

at com.sap.engine.boot.loader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:228)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:353)

how to resolve this problem????

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

You need to add a library reference for this library. Right click on your WD project>Properties>Webdynpro References-->Library References

Put your library reference over here.

Regards,

Murtuza

Former Member
0 Kudos

Thnx for quick reply. i have checkd path metioned by u (project>Properties>Webdynpro References-->Library References) . Those jar files are already there under library-required DC tab.

Former Member
0 Kudos

Hi,

Could you please tell me what is the value that you can see under library references. Also, I assume that you have exposed your library public part as both api as well as sda.

Regards,

Murtuza

Former Member
0 Kudos

in Netweaver 7.1c, we can publish jar as archive or as file. i hv published jar as both.inside project properties it is showing name of jar followedc by path of public part of jar file inside library Dc on my local pc is name_of_jar.jar-F:\NWDS\workspace.jdi\0\DCs\asianpaints.com\extjars\_comp

\gen\default\public\ExtJars(name of public part)\lib\java

Former Member
0 Kudos

OK,

Open your navigator view, there would be a folder called lib under your project structure. Just copy the jar file inside this folder. rebuild and deploy.

Regards,

Murtuza

Former Member
0 Kudos

Hi Kavita,

Go through the link given below:

Check whether the JAR file is present under Visual Administrator-> Libraries-> "Library project you have created".

JAR file should present under above mention path.

Thanks

Sandy

BeGanz
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hallo Sandeep,

the WebLog from Valery you refer to does not fully apply to NW CE 7.1.

To use external JAR files in Web Dynpro development components in NetWeaver CE 7.1 some deteils have changed compared to NW 7.0:

> Same as in NW 7.0:

  1. Store JAR file in the libraries folder of an External Library development component.

  2. Expose the same JAR file in two separate public parts, one with purpose assembly and another one with purpose compilation.

  3. Use the public part with purpose compilation in the Web Dynpro "client" development component where you need the JAR file to implement your Java code, for example, inside a Web Dynpro component controller class.

> From here on the solution in NetWeaver CE 7.1 differs from the 7.0 solution >>>>>>>>>>

  1. Add a development component of type Java EE/Enterprise Application, and use the second public part (of type assembly) of the External Library development component there.

  2. Define a DC Run Time usage (not public part usage) of the J2EE Server Component/Library development component in the DC metadata of the Web Dynpro client development component, where classes and interfaces of the external JAR file are invoked.

  3. Deploy the development component of type Java EE/Enterprise Application "wrapping" the External Library development component to the SAP NetWeaver AS Java.

Regards, Bertram

Former Member
0 Kudos

My issue got resolved , while declaring public part i declared compilation as well as assembly. This resolved my issue. Thnx a lot.

Answers (1)

Answers (1)

namrata_d
Active Participant
0 Kudos

Hi Kavita,

From NWDS 7.0 SP 13 a new method has been introduced for adding the JAR fiels in DC Components.

1. Create a new DC of type "J2EE Server Component Library"

2. Add a build-time dependency to the "def" public part of the new facet DC tc/bi/fct/extlib

3. Create a local "libs" folder below the root folder and put the jar file(s) into that folder

4. Define that libs folder as source folder in the DC Metadata

5. Build the DC

You can use this method for adding your HSSF API Jar Files.

Hope this might help you.

Thanks

Namrata