cancel
Showing results for 
Search instead for 
Did you mean: 

Table error in MAM 3.0 SP4

Former Member
0 Kudos

Hello all,

I got an error when using the table ui element. De error is:

Error in file: /techobj/edit/ZEquipMeasureDocs.jsp<br/> <br/>Stack trace: <br/>java.lang.NullPointerException<br/>at com.sap.mbs.ca.ur.taglib.table.SapTableHeaderTag.doStartTag(Unknown Source)<br/>at techobj.edit._0002ftechobj_0002fedit_0002fZEquipMeasureDocs_0002ejspZEquipMeasureDocs_jsp_36._jspService(_0002ftechobj_0002fedit_0002fZEquipMeasureDocs_0002ejspZEquipMeasureDocs_jsp_36.java:533)<br/>at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)<br/>at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)<br/>at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)<br/>at org.apache.tomcat.core.Handler.service(Handler.java:287)<br/>at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)<br/>at org.apache.tomcat.facade.RequestDispatcherImpl.doInclude(RequestDispatcherImpl.java:400)<br/>at org.apache.tomcat.facade.RequestDispatcherImpl.include(RequestDispatcherImpl.java:270)<br/>at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:414)<br/>at com.sap.mbs.ca.ur.taglib.include.IncludeTag.doStartTag(Unknown Source)<br/>at techobj.content.EquipDetail._0002ftechobj_0002fcontent_0002fEquipDetail_0002fZEquipMeasureDocs_0002ejspZEquipMeasureDocs_jsp_43._jspService(_0002ftechobj_0002fcontent_0002fEquipDetail_0002fZEquipMeasureDocs_0002ejspZEquipMeasureDocs_jsp_43.java:680)<br/>at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)<br/>at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)<br/>at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)<br/>at org.apache.tomcat.core.Handler.service(Handler.java:287)<br/>at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)<br/>at org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispatcherImpl.java:222)<br/>at org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:162)<br/>at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.dispatchRequest(AbstractMEHttpServlet.java:907)<br/>at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:348)<br/>at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:689)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)<br/>at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:313)<br/>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br/>at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:402)<br/>at org.apache.tomcat.core.Handler.service(Handler.java:287)<br/>at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)<br/>at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)<br/>at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)<br/>at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)<br/>at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)<br/>at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)<br/>at java.lang.Thread.run(Thread.java:534)<br/><br/>

This is the code in the jsp:

<%@ include file="/include/common_jsp.inc" %>

<inc:include>

<%

// Get all the measurepoint

BOList meetPunten = (BOList)ct.getValue("AllMeasurePoints");

Mam041 meetPunt = (Mam041)meetPunten.get(0);

//System.out.println("Aantal meetpunten: " + meetPunten.size());

// Get the measurepoint attributes

// HashMap hmAttributes = (HashMap)TagUtil.resolveObjectExpression( pageContext, "$CT.AllMeasPointAttributes");

%>

<ui:inputfield id="EditPanel" value="true" labelText="" tooltip="" hidden="true"></ui:inputfield>

<ui:group id="group_ZEquipMeasureDocs" tooltip="" design="SAPCOLOR" hasContentPadding="true">

<ui:groupheader title="Equipment meetpunten"></ui:groupheader>

<ui:groupbody>

<!Main edit area - gridlayout>

<ui:gridlayout id="grid_ZEquipMeasureDocs" width="100%" shifting="true">

<ui:gridlayoutrow>

<ui:gridlayoutcell id="gridlayoutcell_ZEquipMeasureDocs_1_1" VAlign="top" rowSpan="1" colSpan="1" paddingLeft="2px" paddingRight="2px" paddingTop="3px" paddingBottom="3px">

<table:table id="MeasureDocCreate" hasHeaderRow="false" width="100%" title="Creeeren meetdocumenten">

<table:header id="Header_1" headerText="Meetpunt"/>

<table:cellBody id="Body_1" hasContentPadding="true" isSelected="false" cellDesign="ALTERNATING">

<ui:textview id="View_1" text="<%=meetPunt.getMeaspoint()%>" textForTooltip="" />

</table:cellBody>

</table:table>

</ui:gridlayoutcell>

</ui:gridlayoutrow>

</ui:gridlayout>

</ui:groupbody>

</ui:group>

</inc:include>

Can someone explain me what I'm doing wrong?

For your information: We use MI 2.5 SP19 P 8 as framework.

T.I.A.

Patrick Willems

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

are you sure that you get any values in in meetPuntin?!

Yes I'm sure.

It is never safe to execute list.get() without checking that list is not null!

Secondly, do you absolutely need to create zjsp page? In most of the cases for MAM Laptop you can create new pages by generating them from xml files? It will save you a lot of development time.

Yes, I realy need a zjsp page. This is only a part of the page.

What else could it be.

T.I.A.

P. Willems

Former Member
0 Kudos

Hi Patrick,

well, this is pretty much the problem here - there is a value NULL - so it is not filled with data.

I can not really see what value it is - so have you debugged it? What variable is really empty here?

Regards,

Oliver

former_member304703
Contributor
0 Kudos

Hi Patrick,

jsp errors are very difficult to locate that is why I was asking if you really need a z one manually created.

And it's not easy to make them good looking and consistent with the rest of the application in terms of "look and feel".

From what I understand you nee a page to display/edit multiple measurment points. One of the ways to fake it is to create e page in zDetalDef.xml with a predefined number of place holders (f.e. code 25 of them), then in UIHelper dynamically make visible as many as are meas. docs in the list (f.e. 12).

In terms of developement time this is the fastest way.

As for the problem you have:

teh only places I see that can throw nullPointer exception are

Mam041 meetPunt = (Mam041)meetPunten.get(0);

and

="<%=meetPunt.getMeaspoint()%>"

Try to replace it with hardcoded text to see if it works.

If this does not help, try to remove pieces from this jsp (rows, columns, etc) to see which piece breaks it.

As I said, jsps are not easy to debug.

Regards,

Larissa

Former Member
0 Kudos

Hi,

Hmm - is a JSP error difficult to trace?

While compiling the WAR file, check the Box to keed the compile JSP classes. These you can find in the $JSP folder. In there set a break point and then trace into the file. Soon you will find the point where the NULL pointer happens. Then you should have an idea why this happens and you can change it.

Hope this helps!

Regards,

Oliver

former_member304703
Contributor
0 Kudos

Hi Patrick,

are you sure that you get any values in in meetPuntin?!

It is never safe to execute list.get() without checking that list is not null!

Secondly, do you absolutely need to create zjsp page? In most of the cases for MAM Laptop you can create new pages by generating them from xml files? It will save you a lot of development time.

Regards,

Larissa Limarova