cancel
Showing results for 
Search instead for 
Did you mean: 

Usage of Third Party Jars as dependency gives NoClassDefFoundError

Former Member
0 Kudos

Dear Experts,

I have a problem with one of my WD Java application. We are implementing a Payment Gateway service using a WD Java application.

For this purpose, the vendors have provided us with a jar file (for example say thirdparty.jar) which will return me with Redirect URL and other transaction details. That third party JAR(project) thirdparty.jar in turn uses the below jar files as dependencies:

  1. bcjceprovider
  2. commons-codec-1.3
  3. javax-xml-soap-1.6.0
  4. log4j-1.2.17
  5. saaj-impl-1.3.4

In my WD application, I use functionalities only from thirdparty.jar. I have created external library DC with all the 6 jars and deployed the same on the portal server. Now when I run the application, it gives me the below error:


The initial exception that caused the request to fail, was:

java.lang.IllegalArgumentException: com.sun.xml.internal.messaging.saaj.soap.LocalStrings != com.sun.xml.messaging.saaj.soap.LocalStrings

    at java.util.logging.Logger.getLogger(Logger.java:377)

    at com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl.<clinit>(SAAJMetaFactoryImpl.java:52)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

    ... 68 more

java.lang.NoClassDefFoundError: com/sun/xml/messaging/saaj/soap/SAAJMetaFactoryImpl : cannot initialize class because prior initialization attempt failed
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  at java.lang.Class.newInstance0(Class.java:361)
  at java.lang.Class.newInstance(Class.java:314)
  at javax.xml.soap.FactoryFinder.newInstance(FactoryFinder.java:47)
  at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:178)
  at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:98)
  at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:59)
  at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:132)
  at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.<init>(HttpSOAPConnection.java:87)
  at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnectionFactory.createConnection(HttpSOAPConnectionFactory.java:52)
  at com.tp.pg.util.shopping.SoapWSCall.getToken(SoapWSCall.java:96)
  at com.tp.pg.util.shopping.SoapWSCall.getTransactionToken(SoapWSCall.java:56)
  at com.tp.pg.util.TransactionRequestBean.getTransactionToken(TransactionRequestBean.java:554)
  at com.arteriatech.samewindurl.SameWindComp.getToken(SameWindComp.java:243)
  at com.arteriatech.samewindurl.wdp.InternalSameWindComp.getToken(InternalSameWindComp.java:148)
  at com.arteriatech.samewindurl.SameWindCompView.onActionOpenURL(SameWindCompView.java:200)
  at com.arteriatech.samewindurl.wdp.InternalSameWindCompView.wdInvokeEventHandler(InternalSameWindCompView.java:138)
  at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:142)
  at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:75)
  at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:159)
  at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:94)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
  at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:515)
  at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:58)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1671)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1485)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingEmbedded(ApplicationSession.java:919)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessing(ApplicationSession.java:878)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:357)
  at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:326)
  at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.delegateToRequestManager(AbstractExecutionContextDispatcher.java:62)
  at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForRequestManager.service(DispatchHandlerForRequestManager.java:39)
  at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForRequestManager.service(DispatchHandlerForRequestManager.java:46)
  at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:292)
  at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.ExecutionContextDispatcher.dispatchToAppContext(ExecutionContextDispatcher.java:68)
  at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:53)
  at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:245)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy$Runner.callRequestManager(JavaApplicationProxy.java:1244)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy$Runner.callEmbeddedApplication(JavaApplicationProxy.java:1122)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy$SendDataAndProcessActionCommand.doExecute(JavaApplicationProxy.java:1605)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy$AbstractCommand.execute(JavaApplicationProxy.java:1488)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy$Runner.execute(JavaApplicationProxy.java:1028)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy.execute(JavaApplicationProxy.java:859)
  at com.sap.tc.webdynpro.clientserver.embedding.JavaApplicationProxy.sendDataAndProcessAction(JavaApplicationProxy.java:468)
  at com.sap.tc.webdynpro.portal.pb.impl.JavaApplicationProxyAdapter.sendDataAndProcessAction(JavaApplicationProxyAdapter.java:191)
  at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1698)
  at com.sap.portal.pb.PageBuilder.SendDataAndProcessAction(PageBuilder.java:369)
  at com.sap.portal.pb.PageBuilder$PhaseListenerImpl.doPhase(PageBuilder.java:2123)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:251)
  at com.sap.tc.webdynpro.clientserver.phases.PortalDispatchPhase.execute(PortalDispatchPhase.java:50)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
  at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:515)
  at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:58)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1671)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1485)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:908)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessing(ApplicationSession.java:880)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:357)
  at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:326)
  at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
  at com.sap.tc.webdynpro.serverimpl.wdc.DispatcherServlet.doContent(DispatcherServlet.java:101)
  at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doPost(AbstractDispatcherServlet.java:62)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
  at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
  at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
  at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:466)
  at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
  at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
  at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
  at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
  at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  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:78)
  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:78)
  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:78)
  at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
  at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
  at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
  at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
  at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
  at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
  at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
Caused by: java.lang.ExceptionInInitializerError
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  at java.lang.Class.newInstance0(Class.java:361)
  at java.lang.Class.newInstance(Class.java:314)
  at javax.xml.soap.FactoryFinder.newInstance(FactoryFinder.java:47)
  at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:178)
  at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:98)
  at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:59)
  at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:132)
  at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.<init>(HttpSOAPConnection.java:87)
  at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnectionFactory.createConnection(HttpSOAPConnectionFactory.java:52)
  at com.tp.pg.util.shopping.SoapWSCall.getToken(SoapWSCall.java:96)
  at com.tp.pg.util.shopping.SoapWSCall.getTransactionToken(SoapWSCall.java:56)
  at com.tp.pg.util.TransactionRequestBean.getTransactionToken(TransactionRequestBean.java:554)
  at arteriatech.com.sampay.wd.comp.samppaycomp.SampPayComp.wdDoInit(SampPayComp.java:192)
  at arteriatech.com.sampay.wd.comp.samppaycomp.wdp.InternalSampPayComp.wdDoInit(InternalSampPayComp.java:105)
  at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:161)
  at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:227)
  at com.sap.tc.webdynpro.progmodel.components.Component.initController(Component.java:258)
  at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:206)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:590)
  at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doPreprocessing(ClientApplication.java:1457)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doPreprocessing(ApplicationSession.java:660)
  at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:349)
  at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:326)
  at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
  at com.sap.tc.webdynpro.serverimpl.wdc.DispatcherServlet.doContent(DispatcherServlet.java:101)
  at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doGet(AbstractDispatcherServlet.java:55)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
  ... 40 more
Caused by: java.lang.IllegalArgumentException: com.sun.xml.internal.messaging.saaj.soap.LocalStrings != com.sun.xml.messaging.saaj.soap.LocalStrings
  at java.util.logging.Logger.getLogger(Logger.java:377)
  at com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl.<clinit>(SAAJMetaFactoryImpl.java:52)
  ... 71 more

I also see that some of the classes that are part of the dependency jars are available with rt.jar which comes along with the default JVM. What can be done to overcome with this problem? We are using EP version 7.4

Accepted Solutions (1)

Accepted Solutions (1)

former_member197472
Active Participant
0 Kudos

Seems dependencies are not yet on Server, still they are maintained locally.

Or could you check whether run time, build time dependencies are maintained properly between

WD DC, Library Dc and Library EAR

Please refer -http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/006a6229-b1ed-2e10-0c8c-cc5673cf2...

--

Regards,

Amey

Former Member
0 Kudos

Hi Amey,

Thanks for the reply.

I have followed only that document to create External library DC.

I am getting this error, only when I call some method in the thirdparty.jar which uses some of the methods of other dependencies (saaj-impl-1.3.4). When I call some method in the thirdparty.jar which doesn't use resources from other dependencies, my application does not give any errors - which means my dependencies are available on server


I think some of the classes that are part of saaj-impl-1.3.4 are already available with rt.jar of the JVM. I need to know how to overcome this problem.

former_member197472
Active Participant
0 Kudos

Then while calling methods of that other dependencies, use package of third party jar.

Also check whether package of rt.jar is been imported in code. if yes then remove those import lines and correct errors for expected package, so that we confirm that methods called are from third party package not from standard rt.jar

--

Regards,

Amey

Former Member
0 Kudos

I am not using those jars directly under my application. Instead the thirdparty.jar uses them. I don't have control over that

vdurgarao09
Contributor
0 Kudos

Hi Sujai,


saaj-impl-1.3.4 try to change this jar.lower /higher version.

Download saaj-impl.jar : saaj&amp;nbsp;&amp;laquo;&amp;nbsp;s&amp;nbsp;&amp;laquo;&amp;nbsp;Jar Fil...

Former Member
0 Kudos

Thanks Durga Rao. I tried with 1.3.2 version before. Anyways will try the jar in this link

Former Member
0 Kudos

Thanks Durga Rao. This thing worked as expected. I used the jar version saaj-impl-1.3.19

Can you explain me the exact reason why I was facing this error with saaj-impl-1.3.4?

vdurgarao09
Contributor
0 Kudos

Hi Sujai,

Good..

Some dependence jar are missing in saaj-impl-1.3.4 jar while creating the jar. in this case we will unable to get Constructs -ClassLoader time we will get this error - NoClassDefFoundError.

Answers (0)