cancel
Showing results for 
Search instead for 
Did you mean: 

java.lang.NoSuchMethodError: java.math.BigDecimal.

Former Member
0 Kudos

Hello every one ,

Now i am lerning ,how develop WebApplication with WebDynpro for java.

In Web Dynpro Sample Applications and Tutorials , the example "Working with Tables in Web Dynpro (11)"

a error appear.

java.lang.NoSuchMethodError: java.math.BigDecimal.<init>(I)V

at com.sap.tut.wd.tutwd_table.tablecomp.TableCompBasketView.getTotalPriceAMOUNT(TableCompBasketView.java:162)

at com.sap.tut.wd.tutwd_table.tablecomp.wdp.InternalTableCompBasketView.getTotalPriceAMOUNT(InternalTableCompBasketView.java:176)

at com.sap.tut.wd.tutwd_table.tablecomp.wdp.IPrivateTableCompBasketView$ITotalPriceElement.wdGetObject(IPrivateTableCompBasketView.java:539)

at com.sap.tc.webdynpro.progmodel.context.AttributePointer.getObject(AttributePointer.java:141)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1082)

... 74 more

Kindly advise me on this..

Thanks in advance..

Yaning

Message was edited by:

Yaning Liu

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Are you using the correct JDK version?

Armin

Former Member
0 Kudos

Hi Armin

Server:

Web Dynpro Runtime Vendor: SAP, Build ID: 6.4017.00.0000.20060503180106.0000 (release=630_VAL_REL, buildtime=2006-05-15:20:31:30[UTC], changelist=401354, host=PWDFM026)

J2EE Engine 6.40 patchlevel 104329.313

Java VM Java HotSpot(TM) Server VM, version:1.4.2_08-b03, vendor: Sun Microsystems Inc.

Operating system Windows 2000, version: 5.0, architecture: x86

In NWDS: JDK 5.0

Thx

Yaning

Former Member
0 Kudos

HI Armin,

when i it deployed, no error appeared. but then run it . "500 Internal Server Error" come .

in this example und other (34)Excel Export Using the Web Dynpro Binary Cache there are same error message.

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

java.lang.NoSuchMethodError: java.math.BigDecimal.<init>(I)V

Detailed Exception Chain

java.lang.NoSuchMethodError: java.math.BigDecimal.<init>(I)V

at com.sap.tut.wd.tutwd_table.tablecomp.TableComp.getProductsTOTAL_PER_ARTICLE(TableComp.java:199)

at com.sap.tut.wd.tutwd_table.tablecomp.wdp.InternalTableComp.getProductsTOTAL_PER_ARTICLE(InternalTableComp.java:165)

at com.sap.tut.wd.tutwd_table.tablecomp.wdp.IPublicTableComp$IProductsElement.wdGetObject(IPublicTableComp.java:437)

at com.sap.tc.webdynpro.progmodel.context.MappedNodeElement.wdGetObject(MappedNodeElement.java:351)

at com.sap.tc.webdynpro.progmodel.context.AttributePointer.getObject(AttributePointer.java:141)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1082)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1054)

at com.sap.tc.webdynpro.clientserver.uielib.standard.impl.TextView.getText(TextView.java:812)

at com.sap.tc.webdynpro.clientimpl.html.uielib.standard.uradapter.TextViewAdapter.getText(TextViewAdapter.java:270)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.TextViewRenderer.render(TextViewRenderer.java:40)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableCellRenderer.renderSapTableGenericCellFragment(SapTableCellRenderer.java:1201)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableCellRenderer.renderSapTableCellFragment(SapTableCellRenderer.java:226)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableCellRenderer.render(SapTableCellRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableRowRenderer.renderSapTableRowFragment(SapTableRowRenderer.java:90)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableRowRenderer.render(SapTableRowRenderer.java:41)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableDefaultBodyRenderer.renderSapTableDefaultBodyFragment(SapTableDefaultBodyRenderer.java:168)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableDefaultBodyRenderer.render(SapTableDefaultBodyRenderer.java:36)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableRenderer.renderSapTableFragment(SapTableRenderer.java:570)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SapTableRenderer.render(SapTableRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:280)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:165)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.FlowLayoutRenderer.render(FlowLayoutRenderer.java:41)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SingleColumnLayoutRenderer.renderSingleColumnLayoutCellFragment(SingleColumnLayoutRenderer.java:582)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SingleColumnLayoutRenderer.renderSingleColumnLayoutFragment(SingleColumnLayoutRenderer.java:227)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.SingleColumnLayoutRenderer.render(SingleColumnLayoutRenderer.java:66)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:507)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ViewContainerRenderer.renderViewContainerFragment(ViewContainerRenderer.java:118)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ViewContainerRenderer.render(ViewContainerRenderer.java:41)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:712)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:372)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:290)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.GridLayoutRenderer.render(GridLayoutRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:581)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.nn7.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.UiWindowRenderer.render(UiWindowRenderer.java:50)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendHtml(HtmlClient.java:559)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:350)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:256)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.retrieveData(HtmlClient.java:160)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:430)

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

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

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

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

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

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

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

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

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

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

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

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

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

thx

yaning

Former Member
0 Kudos

Yaning,

Use JDK 1.4.x with NWDS as well. Otherwise after compilation you get calls inside byte-code to methods that exists only in JDK 1.5 and hence not available at run-time (in JDK 1.4 of server).

Valery Silaev

SaM Solutions

http://www.sam-solutions.net

Former Member
0 Kudos

You cannot run code that used JDK5 features on a JDK 1.4 server, so goto Window -> Preferences -> Java -> Installed JREs and select JDK 1.4 as default.

It seems there is some JDK5-only code in the tutorial (BigDecimal.ZERO, BigDecimal(0)). This is wrong, simply change it to work with the JDK of the Web Dynpro release.

Armin

Message was edited by:

Armin Reichert

Answers (3)

Answers (3)

Former Member
0 Kudos

hi

First intialize the BigDecimal as

BigDecimal var = new BigDecimal("0");

You can pass string to the BigDecimal and can change string into BigDecimal

Regards

Nidhideep

Former Member
0 Kudos

Hello Yaning.

I had this exact same problem. I opted for using BigDecimal's other constructor the one that receives a String instead of an int:

BigDecimal total = new BigDecimal("0");

This worked out perfectly for me. However it would be nice if somebody could tell us why the constructor that receives an int doesnt work as expected.

Hope this helps

Francisco

lajitha_menon
Contributor
0 Kudos

Hi there,

Can you post the line of code in line 162 of TableCompBasketView? Because thats where the error is.

Regards,

LM

Former Member
0 Kudos

Hi LM,

Thx

public java.math.BigDecimal getTotalPriceAMOUNT(IPrivateTableCompBasketView.ITotalPriceElement element)

{

//begin getTotalPriceAMOUNT(IPrivateTableCompBasketView.ITotalPriceElement)

//line 162

BigDecimal total = new BigDecimal(BigInteger.ZERO);

int n = wdContext.nodeProducts().size();

for (int i = 0; i < n; ++i) {

IProductsElement item = wdContext.nodeProducts().getProductsElementAt(i);

int quantity = item.getQUANTITY();

BigDecimal price = item.getPRICE();

total = total.add(new BigDecimal(BigInteger.valueOf(quantity)).multiply(price));

}

return total;

}

yaning

Message was edited by:

Yaning Liu

Former Member
0 Kudos

Hi,

chaage this and try

BigDecimal total = new BigDecimal(BigInteger.ZERO);

// u try use this code.

BigDecimal total = new BigDecimal(0);

int n = wdContext.nodeProducts().size();

for (int i = 0; i < n; ++i) {

total =

total.add(

new BigDecimal(wdContext.nodeProducts().getProductsElementAt(i).getQUANTITY()).multiply(

wdContext.nodeProducts().getProductsElementAt(i).getPRICE()));

}

return total;

//@@end

}

Thanks,

Lohi.

Message was edited by:

Lohitha M

Former Member
0 Kudos

hi Lohi,

sorry, don't work.

thx

yaning

Former Member
0 Kudos

Hi,

Otherwise do one thing re-download once and try to deploy.

then it might helps you.

Thanks,

Lohi.

Former Member
0 Kudos

Hi,

In a big decimal u can try passing a string and multiply.

try this:

public java.math.BigDecimal getTotalPriceAMOUNT(IPrivateTableCompBasketView.ITotalPriceElement element)

{

//begin getTotalPriceAMOUNT(IPrivateTableCompBasketView.ITotalPriceElement)

BigDecimal total = new BigDecimal("0");

int n = wdContext.nodeProducts().size();

for (int i = 0; i < n; ++i) {

IProductsElement item = wdContext.nodeProducts().getProductsElementAt(i);

int q = item.getQUANTITY();

String qty = null;

BigDecimal quantity = new BigDecimal(qty.valueOf(q));

BigDecimal price = item.getPRICE();

total = total.add(quantity.multiply(price));

}

return total;

}