Menu

problem with interceptor

Help
jgate
2005-02-17
2013-06-03
  • jgate

    jgate - 2005-02-17

    i am using dbForms version dbforms_2.5-SNAPSHOT_20041204

    *** my interceptor

    /*
    * CheckForecastValues.java
    *
    * Created on 15. Februar 2005, 14:03
    */

    package interceptors;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.log4j.Category;
    import org.dbforms.config.DbFormsConfig;
    import org.dbforms.config.FieldValue;
    import org.dbforms.config.FieldValues;
    import org.dbforms.config.Table;
    import org.dbforms.config.ValidationException;
    import org.dbforms.event.DbEventInterceptorSupport;

    /**
    *
    * @author sro
    */
    public class CheckForecastValues extends DbEventInterceptorSupport {
        private Category logCat = Category.getInstance( this.getClass().getName());
       
        public int preUpdate( HttpServletRequest request, Table table, FieldValues fieldValues, DbFormsConfig config, Connection con) throws ValidationException {
           
            Statement stmt;
            ResultSet rs          = null;
           
            FieldValue pNumber = fieldValues.get( "projectNumber");
            double totalHours = 0.0, totalPHours = 0.0;
            double totalInvoice = 0.0, totalPInvoice = 0.0;
           
            if ( pNumber == null) {
                try {
                    stmt = con.createStatement();
                   
                    String strSql = "select sum( fhours) as totalHours, sum( invoice) as totalInvoice from emc.tforecast where projectNumber=" + pNumber.getFieldValue();
                    rs = stmt.executeQuery(strSql);
                    rs.next();
                    totalHours = rs.getDouble( "totalHours");
                    totalInvoice = rs.getDouble( "totalInvoice");
                   
                    strSql = "select distinct ( sum(BudgetedHours) - sum(ActRevHrsFinal)) as totalHours, sum(FundingAmountFinalUSD) as totalInvoice from emc.tproject where projectNumber=" + pNumber.getFieldValue();
                    rs = stmt.executeQuery(strSql);
                    rs.next();
                    totalPHours = rs.getDouble( "totalHours");
                    totalPInvoice = rs.getDouble( "totalInvoice");

                    stmt.close();
                } catch( SQLException ex) {
                    ex.printStackTrace();
                }
               
                if( totalHours < totalPHours) throw new ValidationException( "The total of Hours Still to deliver is larger than Budgeted Hours Final...");
                if( totalInvoice < totalPInvoice) throw new ValidationException( "The total Amount still to invoice is larger than Funding Amount Final (USD)...");
            }
           
            return this.GRANT_OPERATION;
        }
       
    }

    *** my interceptor

    it is located in the WEB-INF\classes\interceptors directory

    *** ERROR
    WARN-[15.02.2005 16:56:49]-[http-8084-Processor21]-[org.dbforms.servlets.ConfigServlet.initLocaleKey(ConfigServlet.java:242)]- Locale Key not setted, use "org_dbforms_LOCALE" as key to access the Locale in session scope.
    ERROR-[15.02.2005 16:57:10]-[http-8084-Processor25]-[org.dbforms.taglib.DbFormTag.doStartTag(DbFormTag.java:1296)]-pos6
    ERROR-[15.02.2005 16:57:10]-[http-8084-Processor25]-[org.dbforms.taglib.DbFormTag.doStartTag(DbFormTag.java:1297)]-
    java.lang.NullPointerException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at org.dbforms.config.Table.processInterceptors(Table.java:1970)
        at org.dbforms.taglib.DbFormTag.doStartTag(DbFormTag.java:1293)
        at org.apache.jsp.efmmnt.frmProjShow_jsp._jspService(frmProjShow_jsp.java:811)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:534)

    *** ERROR

    *** config
        <query name="UPDATE_FORECAST" distinct="false" from="emc.tforecast">
            <field name="oid" fieldType="integer" size="11" isKey="true" autoInc="true"/>
            <field name="projectNumber" fieldType="long" size="11" isKey="true" />
            <field name="fyear" fieldType="integer" size="11"/>
            <field name="fmonth" fieldType="integer" size="11"/>
            <field name="fhours" fieldType="integer" size="11"/>
            <field name="invoice" fieldType="double" size="12"/>
            <field name="descr" fieldType="varchar" size="255"/>
                    <field name="runDate" fieldType="varchar" size="50"/>
            <field name="modDate" fieldType="timestamp" size="19" defaultValue="0000-00-00 00:00:00"/>
            <field name="user" fieldType="varchar" size="32" defaultValue="root"/>

                    <interceptor classname = "interceptors.CheckForecastValues" />

        </query>

    *** config

    whats wrong, can anybody help me

    regard rolf steiner

     
    • Henner Kollmann

      Henner Kollmann - 2005-02-18

      classname must be className!

      Henner

       
    • jgate

      jgate - 2005-02-18

      hi Henner

      thanks very mutch now it works...

      regards rolf

       

Log in to post a comment.

MongoDB Logo MongoDB