Error : com.iplanet.jato.model.ModelControlException: Location is beyond th

Hi..All,
I have a Page displayed with few values & one of them is of HREF type.The Model gets populated & I am able to view the data. When I click on the HREF value, I get an error :com.iplanet.jato.model.ModelControlException: Location is beyond the end of the current bean array (0 > -1)I tried setting the Bean Scope to "Any", "Request" , but it still gives me this error. The sys out in the constructor shows 0 for the size when the request comes in for the second time.
Here is the JSP :
package accruals.main;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.iplanet.jato.*;
import com.iplanet.jato.command.*;
import com.iplanet.jato.model.*;
import com.iplanet.jato.view.*;
import com.iplanet.jato.view.event.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import AccrualsEJB.*;
public class TaxPackUserAccessView extends BasicTiledView {
* Default constructor
public TaxPackUserAccessView(View parent, String name) {
super(parent,name);
// setMaxDisplayTiles(5);
System.out.println("The Model Name in the init before is : " +getPrimaryModel().getName());
try {
System.out.println("The model size in the init is : " + getPrimaryModel().getSize());
} catch (Exception e) {System.out.println("Error in init " + e);}
// Non-visual component initialization
private com.iplanet.jato.model.SimpleModelReference taxPackUserAccess;
* Creates the non-visual components
* <p><em>WARNING:</em> This code was automatically generated, do not edit!
private void initComponents(){
taxPackUserAccess = new com.iplanet.jato.model.SimpleModelReference();
{ // begin local variable scope
taxPackUserAccess.setModelClassName("accruals.main.TaxPackUserAccess");
} // end local variable scope
// Instance initializer - non-visual components
initComponents();
// Instance initializer - set properties
this.setPrimaryModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelReference[] autoRetrievingModelsVar =
new com.iplanet.jato.model.ModelReference[0];
this.setAutoRetrievingModels(autoRetrievingModelsVar);
this.setMaxDisplayTiles(100);
* Registers each child in this container.
* <p><em>WARNING:</em> This code was automatically generated, do not edit!
private void registerChildren() {
registerChild(CHILD_EMP_NO, com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_NAME, com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_ADMIN, com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_SUPER_USER, com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_EMP_NO_SUMMARY, com.iplanet.jato.view.BasicCommandField.class);
// Instance initializer - register children
registerChildren();
* Creates the named child.
* <p><em>WARNING:</em> This code was automatically generated, do not edit!
protected View createChildReserved(String name) {
if (name.equals(CHILD_EMP_NO)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this, CHILD_EMP_NO);
child.setModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelFieldBinding modelFieldBindingVar =
new com.iplanet.jato.model.ModelFieldBinding();
{ // begin local variable scope
modelFieldBindingVar.setReadFieldName("empNo");
modelFieldBindingVar.setWriteFieldName("empNo");
} // end local variable scope
child.setModelFieldBinding(modelFieldBindingVar);
child.setValue( "");
return child;
else if (name.equals(CHILD_NAME)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this, CHILD_NAME);
child.setModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelFieldBinding modelFieldBindingVar =
new com.iplanet.jato.model.ModelFieldBinding();
{ // begin local variable scope
modelFieldBindingVar.setReadFieldName("name");
modelFieldBindingVar.setWriteFieldName("name");
} // end local variable scope
child.setModelFieldBinding(modelFieldBindingVar);
child.setValue( "");
return child;
else if (name.equals(CHILD_ADMIN)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this, CHILD_ADMIN);
child.setModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelFieldBinding modelFieldBindingVar =
new com.iplanet.jato.model.ModelFieldBinding();
{ // begin local variable scope
modelFieldBindingVar.setReadFieldName("admin");
modelFieldBindingVar.setWriteFieldName("admin");
} // end local variable scope
child.setModelFieldBinding(modelFieldBindingVar);
child.setValue( "1");
return child;
else if (name.equals(CHILD_SUPER_USER)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this, CHILD_SUPER_USER);
child.setModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelFieldBinding modelFieldBindingVar =
new com.iplanet.jato.model.ModelFieldBinding();
{ // begin local variable scope
modelFieldBindingVar.setReadFieldName("superUser");
modelFieldBindingVar.setWriteFieldName("superUser");
} // end local variable scope
child.setModelFieldBinding(modelFieldBindingVar);
child.setValue( "1");
return child;
else if (name.equals(CHILD_EMP_NO_SUMMARY)) {
com.iplanet.jato.view.BasicCommandField child =
new com.iplanet.jato.view.BasicCommandField(this, CHILD_EMP_NO_SUMMARY);
child.setModelReference(taxPackUserAccess);
com.iplanet.jato.model.ModelFieldBinding modelFieldBindingVar =
new com.iplanet.jato.model.ModelFieldBinding();
{ // begin local variable scope
modelFieldBindingVar.setReadFieldName("empNo");
modelFieldBindingVar.setWriteFieldName("empNo");
} // end local variable scope
child.setModelFieldBinding(modelFieldBindingVar);
return child;
return super.createChildReserved(name);
/** Returns the <code>empNo</code> child View component */
public com.iplanet.jato.view.BasicDisplayField getEmpNoChild() {
return (com.iplanet.jato.view.BasicDisplayField)getChild(CHILD_EMP_NO);
/** Returns the <code>name</code> child View component */
public com.iplanet.jato.view.BasicDisplayField getNameChild() {
return (com.iplanet.jato.view.BasicDisplayField)getChild(CHILD_NAME);
/** Returns the <code>admin</code> child View component */
public com.iplanet.jato.view.BasicDisplayField getAdminChild() {
return (com.iplanet.jato.view.BasicDisplayField)getChild(CHILD_ADMIN);
/** Returns the <code>superUser</code> child View component */
public com.iplanet.jato.view.BasicDisplayField getSuperUserChild() {
return (com.iplanet.jato.view.BasicDisplayField)getChild(CHILD_SUPER_USER);
/** Returns the <code>empNoSummary</code> child View component */
public com.iplanet.jato.view.BasicCommandField getEmpNoSummaryChild() {
return (com.iplanet.jato.view.BasicCommandField)getChild(CHILD_EMP_NO_SUMMARY);
public static final String CHILD_EMP_NO = "empNo";
public static final String CHILD_NAME = "name";
public static final String CHILD_ADMIN = "admin";
public static final String CHILD_SUPER_USER = "superUser";
public static final String CHILD_EMP_NO_SUMMARY = "empNoSummary";
public void handleEmpNoSummaryRequest(RequestInvocationEvent event) throws Exception {
System.out.println("The Model Name is : " +getPrimaryModel().getName());
setPrimaryModel((DatasetModel)getDefaultModel());
System.out.println("In Because of the link :" +((TiledViewRequestInvocationEvent)event).getTileNumber());
System.out.println("The Model Name is : + " +getPrimaryModel().getName());
System.out.println("The model size is from the request : " + getPrimaryModel().getSize());
getPrimaryModel().setLocation(((TiledViewRequestInvocationEvent)event).getTileNumber());
System.out.println("the value of the clicked field was :" + getDisplayFieldStringValue(CHILD_EMP_NO));
System.out.println("From the value:"+ getEmpNoChild().getValue());
getParentViewBean().forwardTo(getRequestContext());
public void beginComponentDisplay(DisplayEvent event) throws ModelControlException {
TaxPackUserDATA tpackDATA =null;
AccrualsSessionHome myAccrualsSessionHome;
String userID;
Object result;
try {
System.out.println("Before the create");
Context c = new InitialContext();
System.out.println("after the intial context");
result = c.lookup("ejb/AccrualsSession");
System.out.println("The class name :" +result.getClass().getName());
System.out.println("after the lookup");
myAccrualsSessionHome = (AccrualsSessionHome)PortableRemoteObject.narrow(result,AccrualsSessionHome.class);
System.out.println("after narrow down");
AccrualsSession asb = myAccrualsSessionHome.create();
System.out.println("after the create");
tpackDATA = asb.validateUser("111351");
System.out.println("The user is " + tpackDATA.getEmpNo());
System.out.println("The Name id is " + tpackDATA.getName());
System.out.println("The admin is " + tpackDATA.getAdmin());
System.out.println("The superUser is " + tpackDATA.getSuperUser());
} catch (Exception e) {
System.out.println("Error during Validate User Login in AccrualsLoginServlet" + e);
System.out.println("Inside AccrualsLoginViewBean beginComponentDisplay");
BeanAdapterModel model = (TaxPackUserAccess) getRequestContext().getModelManager().getModel(TaxPackUserAccess.class);
System.out.println("After creating the model" + getPrimaryModel().getName());
getRequestContext().getRequest().setAttribute(model.getBeanScopeAttributeName(), tpackDATA);
System.out.println("Leaving AccrualsLoginViewBean beginComponentDisplay");
System.out.println("The model size is : " + model.getSize());
// getPrimaryModel().setSize(1);
// resetTileIndex();
// super.beginComponentDisplay(event);
}

You are using BeanAdapterModel. Unless you've elected to place your BeanAdapterModel instance in the session, it is request-scoped like all JATO objects. This means that on the second request, a new model is created, and unless you set the list of beans on the model, it has no beans on which to set the incoming data.
An easy place to set the list of beans is in the constructor of the model. If, however, the beans are in one of the J2EE scopes (either already, or because you elected to put them there sometime earlier in your request handling), then you can use the model's ability to look up the beans in that scope by adjusting the Bean Scope and Bean Scope Attribute properties.

Similar Messages

  • RE: [iPlanet-JATO] models

    Belinda,
    YES & YES
    What you are asking to do is EXACTLY what one of the primary value
    propositions of the JATO design. The JATO Overview 'whitepaper'
    specifically points this out as a limitation of other MVC frameworks. The
    constructors of the Views require the designation of a Model; this is where
    you would hook your Views (DisplayFields) into various Models. Please note
    that there is no coupling of the Views and Models so there is a many to many
    relationship (of your choosing). Please note that the 'accessor' methods
    (setters and getters) [other than the Model interface prescribed getValue()
    setValue() getValues() setValues() methods] are no related to the
    DisplayField design pattern per se. The DisplayFields will manage data on
    the request and response cycles using the getValue()/setValue() methods.
    This is what lets the model view relationship plugable. The accessors in
    the Model are not required for the View pattern. The implementation of a
    specific Model's getValue()/setValue() may be to utilize the special
    accessors...but they are not used by the DisplayFields directly.
    matt
    -----Original Message-----
    From: Belinda Garcia [mailto:<a href="/group/SunONE-JATO/post?protectID=014056235009078154169082148140172241239144044214017123152006048067">belinda.garcia@s...</a>]
    Sent: Tuesday, December 04, 2001 5:29 PM
    Subject: [iPlanet-JATO] models
    1. Do all the member variables (those connected to setters and getters) of a
    model have
    to be bound to the display fields of a view that is using it? In other
    words, say I
    have a model with 10 member variables with 10 setters and getters for them
    but I have a
    view that's only using 5 of these member variables. I'm asking this because
    maybe I
    would like to have a model that represents more than one view, if this is
    possible.
    2. Can a view have more than one model for its display fields? I don't mean
    an
    executing, retrieving, etc. I mean the display fields themselves. Where the
    data for
    one field is retrieved from one model and the data for another field is
    retrieved from
    another model? Or say, I want to retrieve some static text fields from
    property files
    for localization but the other fields from a model?
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

    Belinda,
    YES & YES
    What you are asking to do is EXACTLY what one of the primary value
    propositions of the JATO design. The JATO Overview 'whitepaper'
    specifically points this out as a limitation of other MVC frameworks. The
    constructors of the Views require the designation of a Model; this is where
    you would hook your Views (DisplayFields) into various Models. Please note
    that there is no coupling of the Views and Models so there is a many to many
    relationship (of your choosing). Please note that the 'accessor' methods
    (setters and getters) [other than the Model interface prescribed getValue()
    setValue() getValues() setValues() methods] are no related to the
    DisplayField design pattern per se. The DisplayFields will manage data on
    the request and response cycles using the getValue()/setValue() methods.
    This is what lets the model view relationship plugable. The accessors in
    the Model are not required for the View pattern. The implementation of a
    specific Model's getValue()/setValue() may be to utilize the special
    accessors...but they are not used by the DisplayFields directly.
    matt
    -----Original Message-----
    From: Belinda Garcia [mailto:<a href="/group/SunONE-JATO/post?protectID=014056235009078154169082148140172241239144044214017123152006048067">belinda.garcia@s...</a>]
    Sent: Tuesday, December 04, 2001 5:29 PM
    Subject: [iPlanet-JATO] models
    1. Do all the member variables (those connected to setters and getters) of a
    model have
    to be bound to the display fields of a view that is using it? In other
    words, say I
    have a model with 10 member variables with 10 setters and getters for them
    but I have a
    view that's only using 5 of these member variables. I'm asking this because
    maybe I
    would like to have a model that represents more than one view, if this is
    possible.
    2. Can a view have more than one model for its display fields? I don't mean
    an
    executing, retrieving, etc. I mean the display fields themselves. Where the
    data for
    one field is retrieved from one model and the data for another field is
    retrieved from
    another model? Or say, I want to retrieve some static text fields from
    property files
    for localization but the other fields from a model?
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

  • Re: [iPlanet-JATO] Re: CSpMultiSQL after migration

    Alex,
    I just switched over to Netscape Messenger from OutLook and I didn't
    realize that emails were displayed in threaded hierarchies and therefore
    did not see that you had already had responses to your post. Sorry for
    the confusion in my previous response.
    matt
    njdoe123 wrote:
    Hi,
    I have tested another simple MultiSQL. The Update, Delete, Insert
    are not funcitonal. I'm using only one single database table (no
    join). It worked great in netD. The database is Oracle.
    We're using migtoolbox-1.1.1 with Jato 1.1. Do we have to modify
    the UpdataQueryModel.java file or other ? Or could i use jato 1.2
    to replace 1.1 ?
    The following is log from AppServer. Could i receive the migtool
    1.2 beta ?
    Thanks,
    Alex Lin
    <Dec 21, 2001 11:18:36 AM PST> <Error> <HTTP> <[WebAppServletContext
    (1572805,Tes
    t3AppWar,/Test3AppWar)] Root cause of ServletException
    com.iplanet.jato.model.ModelControlException
    java.sql.SQLException: ORA-00933: SQL command not properly ended
    at oracle.jdbc.dbaccess.DBError.throwSqlException
    (DBError.java:168)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7
    (TTC7Protocol.java:1405)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch
    (TTC7Protocol.java:822
    at oracle.jdbc.driver.OracleStatement.executeNonQuery
    (OracleStatement.ja
    va:1446)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther
    (OracleStatement.jav
    a:1371)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout
    (OracleStateme
    nt.java:1900)
    at oracle.jdbc.driver.OracleStatement.executeUpdate
    (OracleStatement.java
    :693)
    at com.iplanet.jato.model.sql.QueryModelBase.executeUpdate
    (QueryModelBas
    e.java:1788)
    at com.iplanet.jato.model.sql.QueryModelBase.update
    (QueryModelBase.java:
    420)
    at
    com.iplanet.jato.view.RequestHandlingViewBase.executeAutoUpdatingMode
    l(RequestHandlingViewBase.java:1070)
    at
    com.iplanet.jato.view.RequestHandlingViewBase.executeAutoUpdatingMode
    ls(RequestHandlingViewBase.java:938)
    at
    com.iplanet.jato.view.RequestHandlingViewBase.handleWebAction(Request
    HandlingViewBase.java:821)
    at Test3App.Test3.PgUpdateViewBean.handleUpdateRequest
    (PgUpdateViewBean.
    java:838)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.iplanet.jato.view.RequestHandlingViewBase.handleRequest
    (RequestHa
    ndlingViewBase.java:341)
    at
    com.iplanet.jato.view.ViewBeanBase.invokeRequestHandlerInternal(ViewB
    eanBase.java:481)
    at com.iplanet.jato.view.ViewBeanBase.invokeRequestHandler
    (ViewBeanBase.
    java:431)
    at com.iplanet.jato.ApplicationServletBase.dispatchRequest
    (ApplicationSe
    rvletBase.java:645)
    at com.iplanet.jato.ApplicationServletBase.processRequest
    (ApplicationSer
    vletBase.java:431)
    at com.iplanet.jato.ApplicationServletBase.doPost
    (ApplicationServletBase
    .java:296)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet
    (ServletStubIm
    pl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet
    (ServletStubIm
    pl.java:200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute
    (ServletRequestIm
    pl.java:2039)
    at weblogic.kernel.ExecuteThread.execute
    (ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run
    (ExecuteThread.java:120)
    --- In iPlanet-JATO@y..., "Matthew Stevens" <matthew.stevens@E...>
    wrote:
    EDITED
    -----Original Message-----
    From: Matthew Stevens [mailto:<a href="/group/SunONE-JATO/post?protectID=029166114165042198028082000056130080177026031196061130152150">matthew.stevens@e...</a>]
    Sent: Thursday, December 20, 2001 4:32 PM
    Alex,
    If your implied question is, "Looks like the iMT did not migrate
    this block
    of code. What is my next step?" Then I have an answer for you. If
    I
    misinterpreted your email then please clarify.
    The procedure for ND migration using the iMT (as outlined in the
    documentation
    under <iMT_install_dir>/docs) is that customized code originally
    provided by
    the ND developer is purposely commented out so that the file can
    compile.
    Our experience in migration efforts shows that it is preferrable to
    the
    migrator to be able to select which part of the application they
    want to
    work
    on by uncommenting specific blocks of code - allowing for
    incremental
    edit/compile/test cycles. If we left all this arbitary code un-
    commented,
    then nothing would compile after migration and you would have a huge
    roadblock for moving forward.
    Judging from the "spider" APIs which are still seen in your code
    block, you
    must not have run the Regular Expression API mapping tool which
    will take
    care of many of this code. I believe that the API mapper will
    migrate this
    block of code almost 100% and you just need to uncomment it.
    matt
    -----Original Message-----
    From: njdoe123 [mailto:<a href="/group/SunONE-JATO/post?protectID=230176091112175091130232203140129208071">first.us@a...</a>]
    Sent: Thursday, December 20, 2001 4:04 PM
    Subject: [iPlanet-JATO] Re: CSpMultiSQL after migration
    Oops !
    The following (very simple) customized code was not migrated.
    In business logic - after update, goto another page.
    My backend database is Oracle.
    Thanks.
    Alex Lin
    -------------------------+
    // The following code block was migrated from the Update_onWebEvent
    method
    // MigrationToDo : THIS CODE MUST BE MANUALLY ADJUSTED
    int command = PROCEED;
    CSpPage nextPage =(CSpPage) CSpider.getPage("PgDistrict");
    executeAllUpdatingDataObjects();
    return nextPage.load();
    --- In iPlanet-JATO@y..., "Craig V. Conover" <craig.conover@s...>
    wrote:
    Alex,
    CSpMultiSQL migrate just fine. You may have had to do something
    extraordinary for your
    particular database in your select statement.
    Can we see the entire exception stack trace, and the code that is
    executing the model?
    Also, what database are you hitting?
    c
    njdoe123 wrote:
    Hi,
    It's a bit strange while doing CSpMultiSQL (select and update).
    I have received the following error on the AppServer.
    Web event invoked: Test3App.Test3.PgWebUserViewBean.Update
    <Dec 19, 2001 2:20:05 PM PST> <Error> <HTTP>
    <[WebAppServletContext(168087,Test3
    AppWar,/Test3AppWar)] Root cause of ServletException
    com.iplanet.jato.model.ModelControlException
    java.sql.SQLException: ORA-00933: SQL command not properly ended
    'SQL command not properly ended ?' - i haven't touched the sql
    code,
    it's just simple select and update to one table.
    Could iMT do MultiSQL ? If not, what is the solution after
    migration
    Thanks,
    Alex Lin
    For more information about JATO, including download information,
    please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, including download information,
    please
    visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, including download information,
    please
    visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, including download information, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

    Thank you - Jin and Todd.
    Will try that.
    Atul
    --- In iPlanet-JATO@y..., Byung Jin Chun <bchun@n...> wrote:
    try using kregedit and modify the key for the jvm args, using the -x
    parameters for the 1.2 runtime
    Jin
    -----Original Message-----
    From: Todd Fast [mailto:<a href="/group/SunONE-JATO/post?protectID=101233080150035167169232031248066208071048">Todd.Fast@S...</a>]
    Sent: Tuesday, February 19, 2002 8:40 PM
    Subject: Re: [iPlanet-JATO] Re: OutOfMemoryError
    Atul--
    Out of curiosity - How do you modify the memory parameters for
    the container's VM ?? I know I should try to do some research but
    figured you may already have some insight and willingness to
    share.
    Please consider this as low priority.It differs by container; I don't remember details of any particular one.
    >
    Todd
    For more information about JATO, including download information, please
    visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    <http://developer.iplanet.com/tech/appserver/framework/index.jsp>
    [Non-text portions of this message have been removed]

  • Re: [iPlanet-JATO] Data model(Dataobject in Nd5)

    Sn,
    Computed columns need special attention.
    The migration tool creates a QueryFieldSchema for each Model (DataObject).
    The schema is populated with entries for each of the "data fields" needed by
    that query. For example:
    FIELD_SCHEMA.addFieldDescriptor(
    new QueryFieldDescriptor(
    FIELD_NDNWORDERS_ORDERID,
    COLUMN_NDNWORDERS_ORDERID,
    QUALIFIED_COLUMN_NDNWORDERS_ORDERID,
    Integer.class,
    false,
    false,
    QueryFieldDescriptor.APPLICATION_INSERT_VALUE_SOURCE,
    QueryFieldDescriptor.ON_EMPTY_VALUE_EXCLUDE,
    The query field descriptor describes the "metadata" for a given field:
    QueryFieldDescriptor(java.lang.String logicalName, java.lang.String
    columnName, java.lang.String qualifiedColumnName, java.lang.Class
    fieldClass, boolean isKey, boolean isComputedField, int insertValueSource,
    java.lang.String insertFormula, int onEmptyValuePolicy, java.lang.String
    emptyFormula)
    There is also a SQL Template generated for select statements:
    static final String SELECT_SQL_TEMPLATE="SELECT ALL ndnwOrders.OrderID,
    ndnwOrders.CustomerID, ndnwOrders.EmployeeID, ndnwOrders.OrderDate,
    ndnwOrders.RequiredDate, ndnwOrders.ShippedDate, ndnwOrders.ShipVia,
    ndnwOrders.Freight, ndnwOrders.ShipName, ndnwOrders.ShipAddress,
    ndnwOrders.ShipCity, ndnwOrders.ShipRegion, ndnwOrders.ShipPostalCode,
    ndnwOrders.ShipCountry FROM ndnwOrders __WHERE__ ";
    public
    So for computed columns you need to do two things:
    1. You need to adjust the SELECT_SQL_TEMPLATE to reflect your computed
    column instead of the "simplistic" column name that appears there by
    default.
    2. You have to "alias" that column and provide the value of the alias in the
    columnName position of the QueryFieldDescriptor. This is needed so that the
    model will be able to dereference the computed column in the result set.
    ----- Original Message -----
    From: "SNR R" <snr@s...>
    Sent: Thursday, July 12, 2001 8:30 AM
    Subject: [iPlanet-JATO] Data model(Dataobject in Nd5)
    Hi
    We are migrating ND5 application into iplanet.When we are excuting
    data model it is giving invalid column name error but when we check
    data
    model sql statement which is working fine at sqlplus but this data model
    has got computed column.
    could you please tell me how to resolve this problem.
    Thanks
    Sn
    ----- Original Message -----
    From: "Todd Fast" <toddwork@c...>
    Date: Monday, July 9, 2001 10:42 pm
    Subject: Re: [iPlanet-JATO] COULD YOU PLS HELP ME TO FIX REPEATED OBJECT
    ISSUE.
    This code should generally be in the TiledView (it may appear in
    both the
    ViewBean and the TiledView after migration).
    CSpRepeated repeated =(CSpRepeated) event.getSource();// Assuming the code is in the TiledView
    TiledView repeated=this;
    CSpStaticText stFieldName =(CSpStaticText)
    repeated.getDisplayField("stFieldName");StaticTextField stFieldName=
    (StaticTextField)getDisplayField("stFieldName");
    - or -
    StaticTextField stFieldName=getStFieldName();
    int index = event.getRowIndex();In what event do you want to obtain the index? For the most part,
    you can
    just call TiledView.getTileIndex(). If this is a request event
    handlingmethod, the row index is part of the event signature.
    IMPORTANT: If the original code cached references to display
    fields as page
    instance variables for use in the class's events, you should NOT
    do the same
    in JATO. This was an ND pattern that is unnecessary and
    inefficient in
    JATO. Instead, you should just use the generated accessors or the
    getDisplayField()/getChild() methods to obtain a reference to a
    displayfield as needed. Mike Frisino has elaborated this point in
    the past; please
    refer to his emails.
    Todd
    [email protected]
    [email protected]

    Sn,
    Computed columns need special attention.
    The migration tool creates a QueryFieldSchema for each Model (DataObject).
    The schema is populated with entries for each of the "data fields" needed by
    that query. For example:
    FIELD_SCHEMA.addFieldDescriptor(
    new QueryFieldDescriptor(
    FIELD_NDNWORDERS_ORDERID,
    COLUMN_NDNWORDERS_ORDERID,
    QUALIFIED_COLUMN_NDNWORDERS_ORDERID,
    Integer.class,
    false,
    false,
    QueryFieldDescriptor.APPLICATION_INSERT_VALUE_SOURCE,
    QueryFieldDescriptor.ON_EMPTY_VALUE_EXCLUDE,
    The query field descriptor describes the "metadata" for a given field:
    QueryFieldDescriptor(java.lang.String logicalName, java.lang.String
    columnName, java.lang.String qualifiedColumnName, java.lang.Class
    fieldClass, boolean isKey, boolean isComputedField, int insertValueSource,
    java.lang.String insertFormula, int onEmptyValuePolicy, java.lang.String
    emptyFormula)
    There is also a SQL Template generated for select statements:
    static final String SELECT_SQL_TEMPLATE="SELECT ALL ndnwOrders.OrderID,
    ndnwOrders.CustomerID, ndnwOrders.EmployeeID, ndnwOrders.OrderDate,
    ndnwOrders.RequiredDate, ndnwOrders.ShippedDate, ndnwOrders.ShipVia,
    ndnwOrders.Freight, ndnwOrders.ShipName, ndnwOrders.ShipAddress,
    ndnwOrders.ShipCity, ndnwOrders.ShipRegion, ndnwOrders.ShipPostalCode,
    ndnwOrders.ShipCountry FROM ndnwOrders __WHERE__ ";
    public
    So for computed columns you need to do two things:
    1. You need to adjust the SELECT_SQL_TEMPLATE to reflect your computed
    column instead of the "simplistic" column name that appears there by
    default.
    2. You have to "alias" that column and provide the value of the alias in the
    columnName position of the QueryFieldDescriptor. This is needed so that the
    model will be able to dereference the computed column in the result set.
    ----- Original Message -----
    From: "SNR R" <snr@s...>
    Sent: Thursday, July 12, 2001 8:30 AM
    Subject: [iPlanet-JATO] Data model(Dataobject in Nd5)
    Hi
    We are migrating ND5 application into iplanet.When we are excuting
    data model it is giving invalid column name error but when we check
    data
    model sql statement which is working fine at sqlplus but this data model
    has got computed column.
    could you please tell me how to resolve this problem.
    Thanks
    Sn
    ----- Original Message -----
    From: "Todd Fast" <toddwork@c...>
    Date: Monday, July 9, 2001 10:42 pm
    Subject: Re: [iPlanet-JATO] COULD YOU PLS HELP ME TO FIX REPEATED OBJECT
    ISSUE.
    This code should generally be in the TiledView (it may appear in
    both the
    ViewBean and the TiledView after migration).
    CSpRepeated repeated =(CSpRepeated) event.getSource();// Assuming the code is in the TiledView
    TiledView repeated=this;
    CSpStaticText stFieldName =(CSpStaticText)
    repeated.getDisplayField("stFieldName");StaticTextField stFieldName=
    (StaticTextField)getDisplayField("stFieldName");
    - or -
    StaticTextField stFieldName=getStFieldName();
    int index = event.getRowIndex();In what event do you want to obtain the index? For the most part,
    you can
    just call TiledView.getTileIndex(). If this is a request event
    handlingmethod, the row index is part of the event signature.
    IMPORTANT: If the original code cached references to display
    fields as page
    instance variables for use in the class's events, you should NOT
    do the same
    in JATO. This was an ND pattern that is unnecessary and
    inefficient in
    JATO. Instead, you should just use the generated accessors or the
    getDisplayField()/getChild() methods to obtain a reference to a
    displayfield as needed. Mike Frisino has elaborated this point in
    the past; please
    refer to his emails.
    Todd
    [email protected]
    [email protected]

  • RE: [iPlanet-JATO] Parse error in JSP parser in IAS6

    Hi Todd,
    removing the defaultValue="" attribute works.
    I have not got around to testing the SP3.
    BTW. The reason the default value tag was added was to stop Null pointer
    exceptions being thrown in the
    HrefTag.beginDisplay().
    buffer.append("?")
    .append(field.getQualifiedName()) // "FooHref"
    .append("=")
    .append(URLEncoder.encode(value.toString())); // "/foo"
    If you don't explicitly add a defaultValue="" to the jsp HREF tag ,
    HrefTag.getDefaultValue() returns null.
    Our hack was to add the following in HrefTag.java.
    if (value==null)
    value=getDefaultValue();
    //===========================
    //IP6 ADDED THE FOLLOWING LINE
    value = (value== null? "":value);
    //============================
    Is that pheasible work-around ? This eliminates the need to add
    defaultValue="" to all HREF tags.
    Also, I might as well point another behavior that we encountered with HREFS.
    In ND, if a HREF's display Field was bound to a column in DataObject and the
    particular record had no value, no URL would be rendered on the page.
    The HTML would look something like this( from memory ):
    <A
    HREF="../AppName/PgMsgMain.hrfSubject_onWebEvent(hrfSubject).994226335140? +
    ND URL STUFF"></A>
    In JATO by default a url get displayed with "null" as the link. ie.
    <a href="../AppName/PgMsgMain?PgMsgMain.hrfSubject= + URL STUFF">null</a>
    Our hack was modify the HrefTag.doEndTag method to not append "null" to the
    buffer.
    if (displayed)
    buffer.append(getBodyContent().getString().equals("null")? "":
    getBodyContent().getString()))
    // IP6 HACK buffer.append(getBodyContent().getString())
    .append("</a>");
    writeOutput(fireEndDisplayEvent(buffer.toString()));
    Is there a better way to do this?
    thanks
    Kostas
    -----Original Message-----
    From: Todd Fast [mailto:<a href="/group/SunONE-JATO/post?protectID=189233080150012190218067203043176090006144139218183041">toddwork@c...</a>]
    Sent: Tuesday, July 03, 2001 12:46 AM
    Subject: Re: [iPlanet-JATO] Parse error in JSP parser in IAS6
    Hey Kostas--
    I personally haven't seen this kind of error. Have you tried simplifying
    the expression inside the href tag? For example:
    <% Object foo =
    viewBean.getRptAssignmentMatch().getvwAssignmentMatchModel().getValue(
    vwAssignmentMatchModel.FIELD_ASSIGNMENT_ASSIGNMENT_ID);
    %>
    <jato:href name="hrefASSIGNMENT_ASSIGNMENT_ID" fireDisplayEvents="true">
    <%= foo %>
    </jato:href>
    Also, is there a different version you could upgrade to? iAS SP3 includes
    the Jasper compiler from Tomcat, which should behave quite differently.
    Todd
    ----- Original Message -----
    From: "Kostas Morfis" <kmorfis@i...>
    Sent: Tuesday, July 03, 2001 12:17 AM
    Subject: [iPlanet-JATO] Parse error in JSP parser in IAS6
    >
    Hi all,
    has anyone come across the following error in iPlanet?
    [02/Jul/2001 12:21:32:1] error: Exception: SERVLET-compile_failed: Failedin
    compiling template: /ras/ras/voyager4/pgAssignmentMatch.jsp, Parse errorin
    JSP parser. Missing endtag: /jato:href
    Exception Stack Trace:
    java.lang.Exception: Parse error in JSP parser. Missing endtag: /jato:href
    at com.netscape.jsp.JSP.parseBlock(Unknown Source)
    at com.netscape.jsp.JSP.parseUserTag(Unknown Source)
    at com.netscape.jsp.JSP.parseTag(Unknown Source)
    at com.netscape.jsp.JSP.parseNext(Unknown Source)
    etc etc.
    We have tested the page in Resin and it works fine.
    It seems the JSP parser has a problem with the following type of HREFtags.
    >
    <jato:href name="hrefASSIGNMENT_ASSIGNMENT_ID" fireDisplayEvents="true"
    defaultValue=""><%=
    viewBean.getRptAssignmentMatch().getvwAssignmentMatchModel().getValue(com.cb
    >
    re.ras.voyager4.model.vwAssignmentMatchModel.FIELD_ASSIGNMENT_ASSIGNMENT_ID)
    %></jato:href></font></td>
    anyone have any suggestions/thoughts/comments ?
    Kostas Morfis
    Senior Consultant
    iRise
    www.iRise.com
    [Non-text portions of this message have been removed]
    [email protected]
    [email protected]

    Hi Todd,
    removing the defaultValue="" attribute works.
    I have not got around to testing the SP3.
    BTW. The reason the default value tag was added was to stop Null pointer
    exceptions being thrown in the
    HrefTag.beginDisplay().
    buffer.append("?")
    .append(field.getQualifiedName()) // "FooHref"
    .append("=")
    .append(URLEncoder.encode(value.toString())); // "/foo"
    If you don't explicitly add a defaultValue="" to the jsp HREF tag ,
    HrefTag.getDefaultValue() returns null.
    Our hack was to add the following in HrefTag.java.
    if (value==null)
    value=getDefaultValue();
    //===========================
    //IP6 ADDED THE FOLLOWING LINE
    value = (value== null? "":value);
    //============================
    Is that pheasible work-around ? This eliminates the need to add
    defaultValue="" to all HREF tags.
    Also, I might as well point another behavior that we encountered with HREFS.
    In ND, if a HREF's display Field was bound to a column in DataObject and the
    particular record had no value, no URL would be rendered on the page.
    The HTML would look something like this( from memory ):
    <A
    HREF="../AppName/PgMsgMain.hrfSubject_onWebEvent(hrfSubject).994226335140? +
    ND URL STUFF"></A>
    In JATO by default a url get displayed with "null" as the link. ie.
    <a href="../AppName/PgMsgMain?PgMsgMain.hrfSubject= + URL STUFF">null</a>
    Our hack was modify the HrefTag.doEndTag method to not append "null" to the
    buffer.
    if (displayed)
    buffer.append(getBodyContent().getString().equals("null")? "":
    getBodyContent().getString()))
    // IP6 HACK buffer.append(getBodyContent().getString())
    .append("</a>");
    writeOutput(fireEndDisplayEvent(buffer.toString()));
    Is there a better way to do this?
    thanks
    Kostas
    -----Original Message-----
    From: Todd Fast [mailto:<a href="/group/SunONE-JATO/post?protectID=189233080150012190218067203043176090006144139218183041">toddwork@c...</a>]
    Sent: Tuesday, July 03, 2001 12:46 AM
    Subject: Re: [iPlanet-JATO] Parse error in JSP parser in IAS6
    Hey Kostas--
    I personally haven't seen this kind of error. Have you tried simplifying
    the expression inside the href tag? For example:
    <% Object foo =
    viewBean.getRptAssignmentMatch().getvwAssignmentMatchModel().getValue(
    vwAssignmentMatchModel.FIELD_ASSIGNMENT_ASSIGNMENT_ID);
    %>
    <jato:href name="hrefASSIGNMENT_ASSIGNMENT_ID" fireDisplayEvents="true">
    <%= foo %>
    </jato:href>
    Also, is there a different version you could upgrade to? iAS SP3 includes
    the Jasper compiler from Tomcat, which should behave quite differently.
    Todd
    ----- Original Message -----
    From: "Kostas Morfis" <kmorfis@i...>
    Sent: Tuesday, July 03, 2001 12:17 AM
    Subject: [iPlanet-JATO] Parse error in JSP parser in IAS6
    >
    Hi all,
    has anyone come across the following error in iPlanet?
    [02/Jul/2001 12:21:32:1] error: Exception: SERVLET-compile_failed: Failedin
    compiling template: /ras/ras/voyager4/pgAssignmentMatch.jsp, Parse errorin
    JSP parser. Missing endtag: /jato:href
    Exception Stack Trace:
    java.lang.Exception: Parse error in JSP parser. Missing endtag: /jato:href
    at com.netscape.jsp.JSP.parseBlock(Unknown Source)
    at com.netscape.jsp.JSP.parseUserTag(Unknown Source)
    at com.netscape.jsp.JSP.parseTag(Unknown Source)
    at com.netscape.jsp.JSP.parseNext(Unknown Source)
    etc etc.
    We have tested the page in Resin and it works fine.
    It seems the JSP parser has a problem with the following type of HREFtags.
    >
    <jato:href name="hrefASSIGNMENT_ASSIGNMENT_ID" fireDisplayEvents="true"
    defaultValue=""><%=
    viewBean.getRptAssignmentMatch().getvwAssignmentMatchModel().getValue(com.cb
    >
    re.ras.voyager4.model.vwAssignmentMatchModel.FIELD_ASSIGNMENT_ASSIGNMENT_ID)
    %></jato:href></font></td>
    anyone have any suggestions/thoughts/comments ?
    Kostas Morfis
    Senior Consultant
    iRise
    www.iRise.com
    [Non-text portions of this message have been removed]
    [email protected]
    [email protected]

  • Re: [iPlanet-JATO] Re: Use Of models in utility classes - Pease don't forget about the regular expression potential

    Namburi,
    When you said you used the Reg Exp tool, did you use it only as
    preconfigured by the iMT migrate application wizard?
    Because the default configuration of the regular expression tool will only
    target the files in your ND project directories. If you wish to target
    classes outside of the normal directory scope, you have to either modify the
    "Source Directory" property OR create another instance of the regular
    expression tool. See the "Tool" menu in the iMT to create additional tool
    instances which can each be configured to target different sets of files
    using different sets of rules.
    Usually, I utilize 3 different sets of rules files on a given migration:
    spider2jato.xml
    these are the generic conversion rules (but includes the optimized rules for
    ViewBean and Model based code, i.e. these rules do not utilize the
    RequestManager since it is not needed for code running inside the ViewBean
    or Model classes)
    I run these rules against all files.
    See the file download section of this forum for periodic updates to these
    rules.
    nonProjectFileRules.xml
    these include rules that add the necessary
    RequestManager.getRequestContext(). etc prefixes to many of the common
    calls.
    I run these rules against user module and any other classes that do not are
    not ModuleServlet, ContainerView, or Model classes.
    appXRules.xml
    these rules include application specific changes that I discover while
    working on the project. A common thing here is changing import statements
    (since the migration tool moves ND project code into different jato
    packaging structure, you sometime need to adjust imports in non-project
    classes that previously imported ND project specific packages)
    So you see, you are not limited to one set of rules at all. Just be careful
    to keep track of your backups (the regexp tool provides several options in
    its Expert Properties related to back up strategies).
    ----- Original Message -----
    From: <vnamboori@y...>
    Sent: Wednesday, August 08, 2001 6:08 AM
    Subject: [iPlanet-JATO] Re: Use Of models in utility classes - Pease don't
    forget about the regular expression potential
    Thanks Matt, Mike, Todd
    This is a great input for our migration. Though we used the existing
    Regular Expression Mapping tool, we did not change this to meet our
    own needs as mentioned by Mike.
    We would certainly incorporate this to ease our migration.
    Namburi
    --- In iPlanet-JATO@y..., "Todd Fast" <toddwork@c...> wrote:
    All--
    Great response. By the way, the Regular Expression Tool uses thePerl5 RE
    syntax as implemented by Apache OROMatcher. If you're doing lotsof these
    sorts of migration changes manually, you should definitely buy theO'Reilly
    book "Mastering Regular Expressions" and generate some rules toautomate the
    conversion. Although they are definitely confusing at first,regular
    expressions are fairly easy to understand with some documentation,and are
    superbly effective at tackling this kind of migration task.
    Todd
    ----- Original Message -----
    From: "Mike Frisino" <Michael.Frisino@S...>
    Sent: Tuesday, August 07, 2001 5:20 PM
    Subject: Re: [iPlanet-JATO] Use Of models in utility classes -Pease don't
    forget about the regular expression potential
    Also, (and Matt's document may mention this)
    Please bear in mind that this statement is not totally correct:
    Since the migration tool does not do much of conversion for
    these
    utilities we have to do manually.Remember, the iMT is a SUITE of tools. There is the extractiontool, and
    the translation tool, and the regular expression tool, and severalother
    smaller tools (like the jar and compilation tools). It is correctto state
    that the extraction and translation tools only significantlyconvert the
    primary ND project objects (the pages, the data objects, and theproject
    classes). The extraction and translation tools do minimumtranslation of the
    User Module objects (i.e. they repackage the user module classes inthe new
    jato module packages). It is correct that for all other utilityclasses
    which are not formally part of the ND project, the extraction and
    translation tools do not perform any migration.
    However, the regular expression tool can "migrate" any arbitrary
    file
    (utility classes etc) to the degree that the regular expressionrules
    correlate to the code present in the arbitrary file. So first andforemost,
    if you have alot of spider code in your non-project classes youshould
    consider using the regular expression tool and if warranted adding
    additional rules to reduce the amount of manual adjustments thatneed to be
    made. I can stress this enough. We can even help you write theregular
    expression rules if you simply identify the code pattern you wish to
    convert. Just because there is not already a regular expressionrule to
    match your need does not mean it can't be written. We have notnearly
    exhausted the possibilities.
    For example if you say, we need to convert
    CSpider.getDataObject("X");
    To
    RequestManager.getRequestContext().getModelManager().getModel(XModel.class);
    Maybe we or somebody else in the list can help write that regularexpression if it has not already been written. For instance in thelast
    updated spider2jato.xml file there is already aCSpider.getCommonPage("X")
    rule:
    <!--getPage to getViewBean-->
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpider[.\s]*getPage[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpider[.\s]*getPage[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[getViewBean($1ViewBean.class]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    Following this example a getDataObject to getModel would look
    like this:
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpider[.\s]*getDataObject[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpider[.\s]*getDataObject[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[getModel($1Model.class]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    In fact, one migration developer already wrote that rule andsubmitted it
    for inclusion in the basic set. I will post another upgrade to thebasic
    regular expression rule set, look for a "file uploaded" posting.Also,
    please consider contributing any additional generic rules that youhave
    written for inclusion in the basic set.
    Please not, that in some cases (Utility classes in particular)
    the rule
    application may be more effective as TWO sequention rules ratherthan one
    monolithic rule. Again using the example above, it will convert
    CSpider.getDataObject("Foo");
    To
    getModel(FooModel.class);
    Now that is the most effective conversion for that code if that
    code is in
    a page or data object class file. But if that code is in a Utilityclass you
    really want:
    >
    RequestManager.getRequestContext().getModelManager().getModel(FooModel.class
    So to go from
    getModel(FooModel.class);
    To
    RequestManager.getRequestContext().getModelManager().getModel(FooModel.class
    You would apply a second rule AND you would ONLY run this rule
    against
    your utility classes so that you would not otherwise affect yourViewBean
    and Model classes which are completely fine with the simplegetModel call.
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[getModel\(]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[getModel\(]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[RequestManager.getRequestContext().getModelManager().getModel(]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    A similer rule can be applied to getSession and other CSpider APIcalls.
    For instance here is the rule for converting getSession calls toleverage
    the RequestManager.
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[getSession\(\)\.]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[getSession\(\)\.]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[RequestManager.getSession().]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    ----- Original Message -----
    From: "Matthew Stevens" <matthew.stevens@e...>
    Sent: Tuesday, August 07, 2001 12:56 PM
    Subject: RE: [iPlanet-JATO] Use Of models in utility classes
    Namburi,
    I will post a document to the group site this evening which has
    the
    details
    on various tactics of migrating these type of utilities.
    Essentially,
    you
    either need to convert these utilities to Models themselves or
    keep the
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of customhelper
    method
    as a replacement whicch uses JDBC results instead of
    CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100208071048">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes.
    These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do themanipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion forthese
    utilities we have to do manually.
    My question is Can we access the the models in the postmigration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObjectintensive. Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    [email protected]
    [Non-text portions of this message have been removed]
    [email protected]
    [email protected]

    Namburi,
    When you said you used the Reg Exp tool, did you use it only as
    preconfigured by the iMT migrate application wizard?
    Because the default configuration of the regular expression tool will only
    target the files in your ND project directories. If you wish to target
    classes outside of the normal directory scope, you have to either modify the
    "Source Directory" property OR create another instance of the regular
    expression tool. See the "Tool" menu in the iMT to create additional tool
    instances which can each be configured to target different sets of files
    using different sets of rules.
    Usually, I utilize 3 different sets of rules files on a given migration:
    spider2jato.xml
    these are the generic conversion rules (but includes the optimized rules for
    ViewBean and Model based code, i.e. these rules do not utilize the
    RequestManager since it is not needed for code running inside the ViewBean
    or Model classes)
    I run these rules against all files.
    See the file download section of this forum for periodic updates to these
    rules.
    nonProjectFileRules.xml
    these include rules that add the necessary
    RequestManager.getRequestContext(). etc prefixes to many of the common
    calls.
    I run these rules against user module and any other classes that do not are
    not ModuleServlet, ContainerView, or Model classes.
    appXRules.xml
    these rules include application specific changes that I discover while
    working on the project. A common thing here is changing import statements
    (since the migration tool moves ND project code into different jato
    packaging structure, you sometime need to adjust imports in non-project
    classes that previously imported ND project specific packages)
    So you see, you are not limited to one set of rules at all. Just be careful
    to keep track of your backups (the regexp tool provides several options in
    its Expert Properties related to back up strategies).
    ----- Original Message -----
    From: <vnamboori@y...>
    Sent: Wednesday, August 08, 2001 6:08 AM
    Subject: [iPlanet-JATO] Re: Use Of models in utility classes - Pease don't
    forget about the regular expression potential
    Thanks Matt, Mike, Todd
    This is a great input for our migration. Though we used the existing
    Regular Expression Mapping tool, we did not change this to meet our
    own needs as mentioned by Mike.
    We would certainly incorporate this to ease our migration.
    Namburi
    --- In iPlanet-JATO@y..., "Todd Fast" <toddwork@c...> wrote:
    All--
    Great response. By the way, the Regular Expression Tool uses thePerl5 RE
    syntax as implemented by Apache OROMatcher. If you're doing lotsof these
    sorts of migration changes manually, you should definitely buy theO'Reilly
    book "Mastering Regular Expressions" and generate some rules toautomate the
    conversion. Although they are definitely confusing at first,regular
    expressions are fairly easy to understand with some documentation,and are
    superbly effective at tackling this kind of migration task.
    Todd
    ----- Original Message -----
    From: "Mike Frisino" <Michael.Frisino@S...>
    Sent: Tuesday, August 07, 2001 5:20 PM
    Subject: Re: [iPlanet-JATO] Use Of models in utility classes -Pease don't
    forget about the regular expression potential
    Also, (and Matt's document may mention this)
    Please bear in mind that this statement is not totally correct:
    Since the migration tool does not do much of conversion for
    these
    utilities we have to do manually.Remember, the iMT is a SUITE of tools. There is the extractiontool, and
    the translation tool, and the regular expression tool, and severalother
    smaller tools (like the jar and compilation tools). It is correctto state
    that the extraction and translation tools only significantlyconvert the
    primary ND project objects (the pages, the data objects, and theproject
    classes). The extraction and translation tools do minimumtranslation of the
    User Module objects (i.e. they repackage the user module classes inthe new
    jato module packages). It is correct that for all other utilityclasses
    which are not formally part of the ND project, the extraction and
    translation tools do not perform any migration.
    However, the regular expression tool can "migrate" any arbitrary
    file
    (utility classes etc) to the degree that the regular expressionrules
    correlate to the code present in the arbitrary file. So first andforemost,
    if you have alot of spider code in your non-project classes youshould
    consider using the regular expression tool and if warranted adding
    additional rules to reduce the amount of manual adjustments thatneed to be
    made. I can stress this enough. We can even help you write theregular
    expression rules if you simply identify the code pattern you wish to
    convert. Just because there is not already a regular expressionrule to
    match your need does not mean it can't be written. We have notnearly
    exhausted the possibilities.
    For example if you say, we need to convert
    CSpider.getDataObject("X");
    To
    RequestManager.getRequestContext().getModelManager().getModel(XModel.class);
    Maybe we or somebody else in the list can help write that regularexpression if it has not already been written. For instance in thelast
    updated spider2jato.xml file there is already aCSpider.getCommonPage("X")
    rule:
    <!--getPage to getViewBean-->
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpider[.\s]*getPage[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpider[.\s]*getPage[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[getViewBean($1ViewBean.class]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    Following this example a getDataObject to getModel would look
    like this:
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpider[.\s]*getDataObject[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpider[.\s]*getDataObject[\s]*\(\"([^"]*)\"]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[getModel($1Model.class]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    In fact, one migration developer already wrote that rule andsubmitted it
    for inclusion in the basic set. I will post another upgrade to thebasic
    regular expression rule set, look for a "file uploaded" posting.Also,
    please consider contributing any additional generic rules that youhave
    written for inclusion in the basic set.
    Please not, that in some cases (Utility classes in particular)
    the rule
    application may be more effective as TWO sequention rules ratherthan one
    monolithic rule. Again using the example above, it will convert
    CSpider.getDataObject("Foo");
    To
    getModel(FooModel.class);
    Now that is the most effective conversion for that code if that
    code is in
    a page or data object class file. But if that code is in a Utilityclass you
    really want:
    >
    RequestManager.getRequestContext().getModelManager().getModel(FooModel.class
    So to go from
    getModel(FooModel.class);
    To
    RequestManager.getRequestContext().getModelManager().getModel(FooModel.class
    You would apply a second rule AND you would ONLY run this rule
    against
    your utility classes so that you would not otherwise affect yourViewBean
    and Model classes which are completely fine with the simplegetModel call.
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[getModel\(]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[getModel\(]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[RequestManager.getRequestContext().getModelManager().getModel(]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    A similer rule can be applied to getSession and other CSpider APIcalls.
    For instance here is the rule for converting getSession calls toleverage
    the RequestManager.
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[getSession\(\)\.]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[getSession\(\)\.]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[RequestManager.getSession().]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    ----- Original Message -----
    From: "Matthew Stevens" <matthew.stevens@e...>
    Sent: Tuesday, August 07, 2001 12:56 PM
    Subject: RE: [iPlanet-JATO] Use Of models in utility classes
    Namburi,
    I will post a document to the group site this evening which has
    the
    details
    on various tactics of migrating these type of utilities.
    Essentially,
    you
    either need to convert these utilities to Models themselves or
    keep the
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of customhelper
    method
    as a replacement whicch uses JDBC results instead of
    CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100208071048">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes.
    These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do themanipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion forthese
    utilities we have to do manually.
    My question is Can we access the the models in the postmigration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObjectintensive. Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    [email protected]
    [Non-text portions of this message have been removed]
    [email protected]
    [email protected]

  • Re: [iPlanet-JATO] Use Of models in utility classes

    Hi Matt,
    Sounds like some of the stuff we need to migrate has a lot in common with
    Namburi's project.
    I would be very keen to get hold of a copy of the 'tactic' document you
    mention below, as well as the sample code you mention to replace CspDBResult
    stuff with JDBC results.
    Thanks in advance,
    Phil
    ----- Original Message -----
    From: Matthew Stevens <matthew.stevens@E...>
    Sent: Wednesday, August 08, 2001 7:56 AM
    Subject: RE: [iPlanet-JATO] Use Of models in utility classes
    Namburi,
    I will post a document to the group site this evening which has thedetails
    on various tactics of migrating these type of utilities. Essentially, you
    either need to convert these utilities to Models themselves or keep the
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of custom helper method
    as a replacement whicch uses JDBC results instead of CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100253094145066046167121181">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes. These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do the manipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion for these
    utilities we have to do manually.
    My question is Can we access the the models in the post migration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObject intensive. Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    [email protected]

    Hi Matt,
    Sounds like some of the stuff we need to migrate has a lot in common with
    Namburi's project.
    I would be very keen to get hold of a copy of the 'tactic' document you
    mention below, as well as the sample code you mention to replace CspDBResult
    stuff with JDBC results.
    Thanks in advance,
    Phil
    ----- Original Message -----
    From: Matthew Stevens <matthew.stevens@E...>
    Sent: Wednesday, August 08, 2001 7:56 AM
    Subject: RE: [iPlanet-JATO] Use Of models in utility classes
    Namburi,
    I will post a document to the group site this evening which has thedetails
    on various tactics of migrating these type of utilities. Essentially, you
    either need to convert these utilities to Models themselves or keep the
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of custom helper method
    as a replacement whicch uses JDBC results instead of CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100253094145066046167121181">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes. These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do the manipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion for these
    utilities we have to do manually.
    My question is Can we access the the models in the post migration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObject intensive. Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    [email protected]

  • RE: [iPlanet-JATO] Href click & tiled view display

    Srinivas,
    I hope that I am not oversimplifying your first question; repost if I do not
    answer your question. Independent of JATO, HTML Form button sumbits will
    include the scraping of data off the form input fields; the data will passed
    as part of the body of the HTTP request. Therefore, you would expect to
    receive all your inputs during the Button submit. In the case of a button,
    a HTTP POST request is invoked. Href clicks, only submit the NVPs which are
    encoded on the HREF URL. Therefore, it is impossible (under normal
    circumstances) to retrieve the inputs from the FORM during the Href click.
    In the case of a Href, a HTTP GET request is invoked. Some customers have
    used a pattern in which Javascript is used to capture the Href onClick()
    event to perform some runtime modifications to the HREF URL before the HTTP
    GET request is submitted. I recommend to always have the LogProxy2 utility
    running during development so that the HTTP requests and repsonses can be
    debugged. If you setup the LogProxy2 (downloadable from this Group's Files
    repository) then you would see the HTTP requests in the LogProxy2's console
    window.
    TiledView question: Remember, each TiledView requires a "primary
    DatasetModel" which it uses for iteration of the tiles. It can be
    confusing, but the API call of
    <ContainerView>.getDefaultModel()
    has no relation to the implementation class called DefaultModel. See the
    Javadoc (excerp below)
    /migtoolbox-1.1.1/doc/jato/api/com/iplanet/jato/view/ContainerView.html#getD
    efaultModel()
    "Returns this view's default model. The default model is typically used by
    DisplayField children for default value storage (if they are not bound to
    any other model). This method should always return a valid model instance.
    Note that the default model need not be an actual instance of DefaultModel,
    although this is usually the case."
    Both of your TiledView's (inner and outer) are ContainerViews, each having
    their own property for [get/set]DefaultModel(). Likewise, the ViewBean
    parent of the outer TiledView is a ContainerView as well. With these facts
    in mind, consider the behavior of the ModelManager. The ModelManager will
    ensure that only once instance of specifically named model will be provided
    during a request scope. Therefore, everytime that you make a call to
    <ModelManager>.getModel(SomeModel.class)
    no matter how many times you make this call during a request, the
    ModelManager will ensure that you get the same object reference back.
    Implicitly, you are asking for a Model with the exclusive name of
    <ModelManager>.getDefaultModelInstanceName(SomeModel.class)
    I believe that your problem is that you have the Primary Model of both the
    inner and outer TiledView's set to the same instance of the DefaultModel
    class. Therefore, the TiledViews are tripping over each other because they
    are using the same Primary model. What I would do is change the constructor
    of each TiledView to set an exclusive Primary model
    // add to constructor of outer TileView
    setPrimaryModel(getModelI(DefaultModel.class,"outer")
    // add to constructor of inner TileView
    setPrimaryModel(getModelI(DefaultModel.class,"inner")
    remember to set the "size" of the Primary Model appropriately in the
    beginDisplay() event of each TiledView before calling super.beginDisplay()
    matt
    -----Original Message-----
    From: Srinivas Chikkam [mailto:<a href="/group/SunONE-JATO/post?protectID=061212020185082096169232190043244089032032196034013195172049230091142254099102">srinivas.chikkam@w...</a>]
    Sent: Tuesday, July 17, 2001 7:36 AM
    Subject: [iPlanet-JATO] Href click & tiled view display
    Hi,
    I'm facing the following two problems in JATO. Your help will be
    appreciated.
    1) Clicking a HREF.
    I have a button and a href in a page. When I submit the page by
    clicking the button, I'm able to
    get all the user entered data (form elements) in handler method.
    However, when I click
    the href and I try to retrieve the data entered by the user in my
    corresponding handler method, I'm
    getting blank values.
    How would I be able to get the user entered data upon clicking of a href
    ? I'm copying the sample
    code for your reference.
    // This returns me 5 values entered in the 5 tiles by the user.
    public void handleBButtonRequest(RequestContext req)
    throws ServletException, IOException
    try
    System.out.println("button clicked..");
    pgSampleTiledView tiledView = getSampleTile();
    System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
    "+tiledView.getNumTiles());
    int n = tiledView.getNumTiles();
    for (int i=0; i<n; i++)
    tiledView.setTileIndex(i);
    System.out.println(i+".
    "+tiledView.getTbValue().getValue().toString());
    this.forwardTo(req);
    catch (Exception ex)
    ex.printStackTrace();
    // This returns me 0 tiles and doesn't get into for loop
    public void handleLinkModifyDistributionRequest(RequestContext req )
    throws ServletException, IOException
    try
    System.out.println("href clicked..");
    pgSampleTiledView tiledView = getSampleTile();
    System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
    "+tiledView.getNumTiles());
    int n = tiledView.getNumTiles();
    for (int i=0; i<n; i++)
    tiledView.setTileIndex(i);
    System.out.println(i+".
    "+tiledView.getTbValue().getValue().toString());
    this.forwardTo(req);
    catch (Exception ex)
    ex.printStackTrace();
    2) Tiled view display
    I have tiled view inside another tiled view. Based upon the data
    retrieved from the database, lets say, the outer tile needs to be
    displayed twice and the inner tile 3 times and 1 time.
    For Ex: Lets say, the desired output from these tiled views is as
    follows
    STOCK INVESTMENT
    stock name1
    stock name2
    stock name3
    OTHER INVESTMENT
    other investment1
    The outer tiled view displays the investment type headings (STOCK
    INVESTMENT or OTHER INVESTMENT) and inner tile
    displays the actual stock names or the other investment names. Both
    the tile views are bound to a default model. In the begin display
    of these tiled view I'm setting the size of the model as
    getPrimaryModel.setSize(requiredsize).
    If i display 3 records in the inner tiled view in the first iteration
    and i try to display 1 record in the second iteration, it displays 3
    records
    properly the first time but it doesn't display any records second
    time. super.nextTile() returns false right away second time.
    But If I try to display 1 record in the first iteration and 3 records in
    the second iteration as below, it works fine.
    STOCK INVESTMENT
    stock name1
    OTHER INVESTMENT
    other investment1
    other investment2
    other investment3
    Please let me know what could be the problem.
    Thanks
    ~ Srinivas
    The Information contained and transmitted by this E-MAIL is
    proprietary to
    Wipro Limited and is intended for use only by the individual or
    entity to which
    it is addressed, and may contain information that is privileged,
    confidential or
    exempt from disclosure under applicable law. If this is a
    forwarded message,
    the content of this E-MAIL may not have been sent with the
    authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information
    to the named
    recipient, you are notified that any use, distribution,
    transmission, printing,
    copying or dissemination of this information in any way or in any
    manner is
    strictly prohibited. If you have received this communication in
    error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]
    [email protected]

    should read
    // add to constructor of outer TileView
    setPrimaryModel(getModel(DefaultModel.class,"outer");
    // add to constructor of inner TileView
    setPrimaryModel(getModel(DefaultModel.class,"inner");
    matt
    -----Original Message-----
    From: Matthew Stevens [mailto:<a href="/group/SunONE-JATO/post?protectID=029166114165042198028082000056130080177026031196061123241150194211220076086020224">matthew.stevens@e...</a>]
    Sent: Tuesday, July 17, 2001 9:25 AM
    Subject: RE: [iPlanet-JATO] Href click & tiled view display
    Srinivas,
    I hope that I am not oversimplifying your first question; repost
    if I do not
    answer your question. Independent of JATO, HTML Form button sumbits will
    include the scraping of data off the form input fields; the data
    will passed
    as part of the body of the HTTP request. Therefore, you would expect to
    receive all your inputs during the Button submit. In the case of
    a button,
    a HTTP POST request is invoked. Href clicks, only submit the
    NVPs which are
    encoded on the HREF URL. Therefore, it is impossible (under normal
    circumstances) to retrieve the inputs from the FORM during the Href click.
    In the case of a Href, a HTTP GET request is invoked. Some customers have
    used a pattern in which Javascript is used to capture the Href onClick()
    event to perform some runtime modifications to the HREF URL
    before the HTTP
    GET request is submitted. I recommend to always have the
    LogProxy2 utility
    running during development so that the HTTP requests and repsonses can be
    debugged. If you setup the LogProxy2 (downloadable from this
    Group's Files
    repository) then you would see the HTTP requests in the
    LogProxy2's console
    window.
    TiledView question: Remember, each TiledView requires a "primary
    DatasetModel" which it uses for iteration of the tiles. It can be
    confusing, but the API call of
    <ContainerView>.getDefaultModel()
    has no relation to the implementation class called DefaultModel. See the
    Javadoc (excerp below)
    /migtoolbox-1.1.1/doc/jato/api/com/iplanet/jato/view/ContainerView
    .html#getD
    efaultModel()
    "Returns this view's default model. The default model is typically used by
    DisplayField children for default value storage (if they are not bound to
    any other model). This method should always return a valid model instance.
    Note that the default model need not be an actual instance of
    DefaultModel,
    although this is usually the case."
    Both of your TiledView's (inner and outer) are ContainerViews, each having
    their own property for [get/set]DefaultModel(). Likewise, the ViewBean
    parent of the outer TiledView is a ContainerView as well. With
    these facts
    in mind, consider the behavior of the ModelManager. The ModelManager will
    ensure that only once instance of specifically named model will
    be provided
    during a request scope. Therefore, everytime that you make a call to
    <ModelManager>.getModel(SomeModel.class)
    no matter how many times you make this call during a request, the
    ModelManager will ensure that you get the same object reference back.
    Implicitly, you are asking for a Model with the exclusive name of
    <ModelManager>.getDefaultModelInstanceName(SomeModel.class)
    I believe that your problem is that you have the Primary Model of both the
    inner and outer TiledView's set to the same instance of the DefaultModel
    class. Therefore, the TiledViews are tripping over each other
    because they
    are using the same Primary model. What I would do is change the
    constructor
    of each TiledView to set an exclusive Primary model
    // add to constructor of outer TileView
    setPrimaryModel(getModelI(DefaultModel.class,"outer")
    // add to constructor of inner TileView
    setPrimaryModel(getModelI(DefaultModel.class,"inner")
    remember to set the "size" of the Primary Model appropriately in the
    beginDisplay() event of each TiledView before calling super.beginDisplay()
    matt
    -----Original Message-----
    From: Srinivas Chikkam [mailto:<a href="/group/SunONE-JATO/post?protectID=061212020185082096169232190043244089032032196034013195172049230091142254099102">srinivas.chikkam@w...</a>]
    Sent: Tuesday, July 17, 2001 7:36 AM
    Subject: [iPlanet-JATO] Href click & tiled view display
    Hi,
    I'm facing the following two problems in JATO. Your help will be
    appreciated.
    1) Clicking a HREF.
    I have a button and a href in a page. When I submit the page by
    clicking the button, I'm able to
    get all the user entered data (form elements) in handler method.
    However, when I click
    the href and I try to retrieve the data entered by the user in my
    corresponding handler method, I'm
    getting blank values.
    How would I be able to get the user entered data upon clicking of a href
    ? I'm copying the sample
    code for your reference.
    // This returns me 5 values entered in the 5 tiles by the user.
    public void handleBButtonRequest(RequestContext req)
    throws ServletException, IOException
    try
    System.out.println("button clicked..");
    pgSampleTiledView tiledView = getSampleTile();
    System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
    "+tiledView.getNumTiles());
    int n = tiledView.getNumTiles();
    for (int i=0; i<n; i++)
    tiledView.setTileIndex(i);
    System.out.println(i+".
    "+tiledView.getTbValue().getValue().toString());
    this.forwardTo(req);
    catch (Exception ex)
    ex.printStackTrace();
    // This returns me 0 tiles and doesn't get into for loop
    public void handleLinkModifyDistributionRequest(RequestContext req )
    throws ServletException, IOException
    try
    System.out.println("href clicked..");
    pgSampleTiledView tiledView = getSampleTile();
    System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
    "+tiledView.getNumTiles());
    int n = tiledView.getNumTiles();
    for (int i=0; i<n; i++)
    tiledView.setTileIndex(i);
    System.out.println(i+".
    "+tiledView.getTbValue().getValue().toString());
    this.forwardTo(req);
    catch (Exception ex)
    ex.printStackTrace();
    2) Tiled view display
    I have tiled view inside another tiled view. Based upon the data
    retrieved from the database, lets say, the outer tile needs to be
    displayed twice and the inner tile 3 times and 1 time.
    For Ex: Lets say, the desired output from these tiled views is as
    follows
    STOCK INVESTMENT
    stock name1
    stock name2
    stock name3
    OTHER INVESTMENT
    other investment1
    The outer tiled view displays the investment type headings (STOCK
    INVESTMENT or OTHER INVESTMENT) and inner tile
    displays the actual stock names or the other investment names. Both
    the tile views are bound to a default model. In the begin display
    of these tiled view I'm setting the size of the model as
    getPrimaryModel.setSize(requiredsize).
    If i display 3 records in the inner tiled view in the first iteration
    and i try to display 1 record in the second iteration, it displays 3
    records
    properly the first time but it doesn't display any records second
    time. super.nextTile() returns false right away second time.
    But If I try to display 1 record in the first iteration and 3 records in
    the second iteration as below, it works fine.
    STOCK INVESTMENT
    stock name1
    OTHER INVESTMENT
    other investment1
    other investment2
    other investment3
    Please let me know what could be the problem.
    Thanks
    ~ Srinivas
    The Information contained and transmitted by this E-MAIL is
    proprietary to
    Wipro Limited and is intended for use only by the individual or
    entity to which
    it is addressed, and may contain information that is privileged,
    confidential or
    exempt from disclosure under applicable law. If this is a
    forwarded message,
    the content of this E-MAIL may not have been sent with the
    authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information
    to the named
    recipient, you are notified that any use, distribution,
    transmission, printing,
    copying or dissemination of this information in any way or in any
    manner is
    strictly prohibited. If you have received this communication in
    error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]
    [email protected]
    [email protected]

  • Re: [iPlanet-JATO] jato classes serializable

    Unless Todd, Mike, or Matt have slick answer to make it work, my only
    solution would be to switch from using the objects themselves and
    reference by name instead. I don't know exactly what your Utility class
    is doing or how the fields use the Utility class, so I can not be
    specific in what you should do.
    I fear that I may be taking on too much work by asking, but maybe you
    could send me the Utility class (send to me directly as Yahoo Groups
    doesnot allow attachments: craig.conover@s...).
    I'll take a quick glance at it. Maybe I can make some suggestions to
    minimize your migration efforts.
    craig
    Seetharam, Prashanth wrote:
    In ND, we had a utility class written whose member variables were visual
    objects. This utility object is used to display or not display its elements
    depending on user action. The utility object was being put into session.
    It could have been implemented in a different way, by storing visual object
    names instead of objects themselves. But when we migrated, we tried to keep
    re-coding to the minimum and ended up replacing ND visual objects
    withcorresponding jato visual objects and ran into this problem.
    Since all the jato visual objects extend from DisplayFieldBase which inturn
    extends from ViewBase, i started looking at ViewBase and did not understand
    why the variable was made transient. Hence the question.
    Thanks,
    Prashanth Seetharam
    -----Original Message-----
    From:     Craig V. Conover [SMTP:<a href="/group/SunONE-JATO/post?protectID=219212113009229091025149066024064239039098031198039130252055210">craig.conover@s...</a>]
    Sent:     Tuesday, December 11, 2001 2:43 PM
    Subject:     Re: [iPlanet-JATO] jato classes serializable
    What is your requirement that these be serializable?
    The views do not store any values, that is what the model is for, and
    they are created lazily as needed.
    Is there something you were doing in ND that required it. It is very
    likely that you do not need to do it anymore with JATO.
    If you are using JATO1.0, you are highly encouraged to start using JATO
    1.2. If you are using the iMT, it has an upgrade tool for 1.x to 1.2.
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    I'll leave the transient parentViewBean to Todd or Mike to justify. But,
    again, what is the need for it to be serialized?
    c
    Seetharam, Prashanth wrote:
    I am using jato1.0 and found that jato classes (especially the visual
    objects like StaticTextField) are not serializable.
    Is this change made in jato1.1? It will be good to have this feature as
    ND
    visual objects were serializable.
    Also in com.iplanet.jato.view.ViewBase.java, why has this variable been
    made
    transient?
         private transient ViewBean parentViewBean;
    Thanks,
    Prashanth Seetharam
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

    Unless Todd, Mike, or Matt have slick answer to make it work, my only
    solution would be to switch from using the objects themselves and
    reference by name instead. I don't know exactly what your Utility class
    is doing or how the fields use the Utility class, so I can not be
    specific in what you should do.
    I fear that I may be taking on too much work by asking, but maybe you
    could send me the Utility class (send to me directly as Yahoo Groups
    doesnot allow attachments: craig.conover@s...).
    I'll take a quick glance at it. Maybe I can make some suggestions to
    minimize your migration efforts.
    craig
    Seetharam, Prashanth wrote:
    In ND, we had a utility class written whose member variables were visual
    objects. This utility object is used to display or not display its elements
    depending on user action. The utility object was being put into session.
    It could have been implemented in a different way, by storing visual object
    names instead of objects themselves. But when we migrated, we tried to keep
    re-coding to the minimum and ended up replacing ND visual objects
    withcorresponding jato visual objects and ran into this problem.
    Since all the jato visual objects extend from DisplayFieldBase which inturn
    extends from ViewBase, i started looking at ViewBase and did not understand
    why the variable was made transient. Hence the question.
    Thanks,
    Prashanth Seetharam
    -----Original Message-----
    From:     Craig V. Conover [SMTP:<a href="/group/SunONE-JATO/post?protectID=219212113009229091025149066024064239039098031198039130252055210">craig.conover@s...</a>]
    Sent:     Tuesday, December 11, 2001 2:43 PM
    Subject:     Re: [iPlanet-JATO] jato classes serializable
    What is your requirement that these be serializable?
    The views do not store any values, that is what the model is for, and
    they are created lazily as needed.
    Is there something you were doing in ND that required it. It is very
    likely that you do not need to do it anymore with JATO.
    If you are using JATO1.0, you are highly encouraged to start using JATO
    1.2. If you are using the iMT, it has an upgrade tool for 1.x to 1.2.
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    I'll leave the transient parentViewBean to Todd or Mike to justify. But,
    again, what is the need for it to be serialized?
    c
    Seetharam, Prashanth wrote:
    I am using jato1.0 and found that jato classes (especially the visual
    objects like StaticTextField) are not serializable.
    Is this change made in jato1.1? It will be good to have this feature as
    ND
    visual objects were serializable.
    Also in com.iplanet.jato.view.ViewBase.java, why has this variable been
    made
    transient?
         private transient ViewBean parentViewBean;
    Thanks,
    Prashanth Seetharam
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

  • RE: [iPlanet-JATO] TileView not being displayed

    Craig.you are quite the JATO expert now!
    cb
    -----Original Message-----
    From: Craig V Conover [mailto:<a href="/group/SunONE-JATO/post?protectID=219212113009229091025149066024064239039098124198039130151196028">craig.conover@S...</a>]
    Sent: Tuesday, April 17, 2001 8:11 PM
    Subject: Re: [iPlanet-JATO] TileView not being displayed
    I had this issue a while ago and forget the exact solution Todd gave me, so
    I'll take a guess untill I can find it somewhere or untill Todd or Mike get
    back online to verify.
    Set the size of the model. I know your TiledView is not bound, but actually
    it is - to the DefaultModel.
    Try this:
    getDefaultModel().setSize(1)
    getPrimaryModel() should work as well.
    let me know if that works or not
    If I find my example, I'll repost.
    c
    ----- Original Message -----
    From: MShanmugam@c...
    Sent: Tuesday, April 17, 2001 7:38 PM
    Subject: [iPlanet-JATO] TileView not being displayed
    Hi All,
    I have a TileView which is not bound to any models.
    It should display one row however none are being displayed. Following
    is the constructor as a reference.
    public pgVoucherListrptCheckInfoTiledView(View parent, String name)
    super(parent, name);
    setMaxDisplayTiles(1);
    setPrimaryModel((DatasetModel) getDefaultModel() );
    registerChildren();
    initialize();
    The problem in the nextTile() method, the super.nextTile allways
    returns false. This seems to be because the
    TiledViewBase.getPrimaryModel().next() allways returns false.
    All the bound tiled views work fine.
    Any help will be appreciated .
    Thanks
    [email protected]
    [email protected]
    [Non-text portions of this message have been removed]

    Craig.you are quite the JATO expert now!
    cb
    -----Original Message-----
    From: Craig V Conover [mailto:<a href="/group/SunONE-JATO/post?protectID=219212113009229091025149066024064239039098124198039130151196028">craig.conover@S...</a>]
    Sent: Tuesday, April 17, 2001 8:11 PM
    Subject: Re: [iPlanet-JATO] TileView not being displayed
    I had this issue a while ago and forget the exact solution Todd gave me, so
    I'll take a guess untill I can find it somewhere or untill Todd or Mike get
    back online to verify.
    Set the size of the model. I know your TiledView is not bound, but actually
    it is - to the DefaultModel.
    Try this:
    getDefaultModel().setSize(1)
    getPrimaryModel() should work as well.
    let me know if that works or not
    If I find my example, I'll repost.
    c
    ----- Original Message -----
    From: MShanmugam@c...
    Sent: Tuesday, April 17, 2001 7:38 PM
    Subject: [iPlanet-JATO] TileView not being displayed
    Hi All,
    I have a TileView which is not bound to any models.
    It should display one row however none are being displayed. Following
    is the constructor as a reference.
    public pgVoucherListrptCheckInfoTiledView(View parent, String name)
    super(parent, name);
    setMaxDisplayTiles(1);
    setPrimaryModel((DatasetModel) getDefaultModel() );
    registerChildren();
    initialize();
    The problem in the nextTile() method, the super.nextTile allways
    returns false. This seems to be because the
    TiledViewBase.getPrimaryModel().next() allways returns false.
    All the bound tiled views work fine.
    Any help will be appreciated .
    Thanks
    [email protected]
    [email protected]
    [Non-text portions of this message have been removed]

  • Re: [iPlanet-JATO] Back Button functionality

    Hi Mike,
    Our test environment does not include proxy server.
    regards,
    syam.
    Please respond to [email protected]
    cc:
    Subject: Re: [iPlanet-JATO] Back Button functionality
    Guys,
    Please clarify something for me, the JATO code is commented as follows
    protected void addResponseHeaders(RequestContext requestContext)
    // These values should make any proxy between the client and
    // server avoid caching, and ensure that pages from one user
    // can never be seen by another user (if they're cached anyway)
    requestContext.getResponse().addHeader("Pragma","no-cache");
    requestContext.getResponse().addHeader
    ("Cache-Control","private");Yet you make no mention of whether your test environment includes a Proxy
    Server, or does your browser
    go directly to the Application Server's web server?
    Can you clarify, please?
    ----- Original Message -----
    From: <syam_reddy@p...>
    Sent: Wednesday, April 25, 2001 2:59 PM
    Subject: [iPlanet-JATO] Back Button functionality
    >
    Hi,
    We observed the following difference in behaviour between JATO pages
    and NetD served pages.
    We have the following scenario. User will login to the
    site. After login he will get a frame set. This frame set has threeframes.
    Top and bottom frames are used for navigation (to switch between various
    sections on the site.) .The middle frame(main frame) shows the actual
    content. When the the frame set gets loaded main frame shows page1. User
    will click on a link on page1. Page 2 will be loaded in main frame. Atthis
    point if the user clicks on back button , with migrated application(JATO
    pages) the following message appears in the main frame.
    In Netscape Communicator 4.61 the following message appears in the main
    frame :
    Data Missing
    This document resulted from a POST operation and has expired fromcache.If
    you wish you can repost the form data to recreate the document by
    presenting the reload button.
    In IE 4.72/5.5 the following message appears in the main frame:
    Warning : Page has Expired
    The page you requested was created using information you submitted in a
    form.This page is no longer available.As a security precaution, Internet
    Explorer does not automatically resubmit your information for you. To
    resubmit your information and view the web page click teh refresh button.
    However, in the NetD site page1 will appear in main frame.
    How do we mimic the NetD behaviour with the migrated
    applications ?
    We think the above behaviour with migrated Apps, is due to the
    headers that are get set in Application ServletBase , see the following
    code snippet :
    protected void addResponseHeaders(RequestContext requestContext)
    // These values should make any proxy between the client and
    // server avoid caching, and ensure that pages from one user
    // can never be seen by another user (if they're cached anyway)
    requestContext.getResponse().addHeader("Pragma","no-cache");
    requestContext.getResponse().addHeader
    ("Cache-Control","private");
    If we comment the above code , we were able to mimic theNetD
    behaviour. Are there any alternatives/thoughts on how to mimic the NetD
    behaviour ?
    Thanks in Advance,
    syam&ravi.
    [email protected]
    [email protected]

    OK, here's what I'm trying to do: We have, like you said, a menu
    page. The pages that it goes to and the number of links are all
    variable and read from the database. In NetD we were able to create
    URLs in the form
    pgXYZ?SPIDERSESSION=abcd
    so this is what I'm trying to replicate here. So the URL that works
    is
    pgContactUs?GXHC_GX_jst=fc7b7e61662d6164&GXHC_gx_session_id_=cc9c6dfa5
    601afa7
    which I interpreted to be the equivalent of the old Netd way. Our
    javascript also loads other frames of the page in the same manner.
    And I believe the URL-rewritten frame sources of a frameset look like
    this too.
    This all worked except for the timeout problem. In theory we could
    rewrite all URLs to go to a handler, but that would be...
    inconvenient.

  • Internal error: Unable to locate class: com/iplanet/ias/server/J2EERunner

    When trying to troubleshoot why I am getting "connection refused" for samples/jaxrpc/simple I found I am getting the following errors in server.log.
    [08/Sep/2003:16:08:41] INFO (17045): CORE3016: daemon is running as super-user
    [08/Sep/2003:16:08:41] SEVERE (17045): CORE4011: Internal error: Unable to locat
    e class: com/iplanet/ias/server/J2EERunner
    [08/Sep/2003:16:08:41] SEVERE (17045): CORE3187: Late initialization failed: Err
    or running init function(late) init-j2ee: unknown error
    I'm running on RedHat 7, kernel 2.4.20-20.7, with Java j2sdk1.4.2_01. The env $PATH includes /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/opt/oracle/product/9.2.0/bin:/root/bin:/usr/java/j2sdk1.4.2_01/bin:/opt/SUNWappserver7/bin
    I did not see anything else that I need to configure in the environment other than [Install home]/bin in $PATH. I found nothing about special $CLASSPATH settings.
    Anybody have any ideas?

    Hi Steve,
    I don't know what does internal error means, may be you could set the log level to fine to get more detail error messages.
    I remember myself getting "connection refused" exception.I resolved it by referring the troubleshooting section in the docs shipped with sample on resolving this error.
    Get back if still have any issues.
    -Amol

  • Re: [iPlanet-JATO] Experiencing problem while executing model.

    Hi Todd,
    Thanks a lot for your input!
    In the case , I found that "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is alaised as a
    column name in the resultset. So I am using this as a column in Jato
    Descriptor for Plan_Dt. Now it is working fine.
    Thanks and Regards,
    Santa.
    ----- Original Message -----
    From: Todd Fast <toddwork@c...>
    Sent: Thursday, July 26, 2001 9:50 AM
    Subject: Re: [iPlanet-JATO] Experiencing problem while executing model.
    Santa--
    I am experiencing a problem while executing a bounded model. I am usingQueryModelBase. Whenever the following query gets executed inonBeforeModel
    execute of TiledView, it throws an exception describing "PLAN_DT not found
    in ResultSet". If you execute this query on the SQL prompt then we getrows
    of data. Please could you tell us how the mapping between model and
    resultset works ? And what changes do we have to make to execute thisquery.
    >>
    SELECT PART_NM,NEWTXTDOLL
    TO_CHAR(PLAN_DT, 'MM/DD/YYYY'),
    FROM cpsselect
    WHERE CHG_DT >= TO_DATE('2001-06-17', 'YYYY-MM-DD')The mapping of result set to model is done via JDBC, using the columnnames
    you provide in your model's column descriptors. It sounds as if you are
    providing the column name "PLAN_DT" in a descriptor, and when the model
    tries to look up that column in the result set, there is no such columnand
    the operation fails.
    In order to debug this, you should try running your query with a JDBC
    connection, not SQL*Plus or your command-line SQL tool. What you need to
    find out is how the expresion "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is aliasedas
    a column name in the resut set. The easiest way to do this is to write a
    simple class that does nothing but use your JDBC driver to connect the
    database and execute this query. After execution, use theResultSetMetaData
    information to find out the column names for the result set. Then, use
    these column names in your JATO column descriptors.
    Another Problem:We are not getting the values for NEWTXTDOLL column whenwe try to display it in a Tiled View.
    I'm sorry, this isn't enough information for me to offer any suggestions.
    Using the technique above, determine which columns are coming back in the
    result set, and make sure your display fields in the TiledView are boundto
    those column names. The problem could be something as simple as a typo in
    the field's bound name, or something more complex like the column in the
    result set being named something you don't expect.
    Another approach might be to alias the columns yourself using the "AS
    <alias>" expression, and assign them names that you choose instead ofusing
    the names assigned by the database or JDBC driver.
    Todd
    [email protected]
    The Information contained and transmitted by this E-MAIL is proprietary to
    Wipro Limited and is intended for use only by the individual or entity to
    which
    it is addressed, and may contain information that is privileged, confidential
    or
    exempt from disclosure under applicable law. If this is a forwarded message,
    the content of this E-MAIL may not have been sent with the authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information to the named
    recipient, you are notified that any use, distribution, transmission,
    printing,
    copying or dissemination of this information in any way or in any manner is
    strictly prohibited. If you have received this communication in error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]

    Hi Todd,
    Thanks a lot for your input!
    In the case , I found that "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is alaised as a
    column name in the resultset. So I am using this as a column in Jato
    Descriptor for Plan_Dt. Now it is working fine.
    Thanks and Regards,
    Santa.
    ----- Original Message -----
    From: Todd Fast <toddwork@c...>
    Sent: Thursday, July 26, 2001 9:50 AM
    Subject: Re: [iPlanet-JATO] Experiencing problem while executing model.
    Santa--
    I am experiencing a problem while executing a bounded model. I am usingQueryModelBase. Whenever the following query gets executed inonBeforeModel
    execute of TiledView, it throws an exception describing "PLAN_DT not found
    in ResultSet". If you execute this query on the SQL prompt then we getrows
    of data. Please could you tell us how the mapping between model and
    resultset works ? And what changes do we have to make to execute thisquery.
    >>
    SELECT PART_NM,NEWTXTDOLL
    TO_CHAR(PLAN_DT, 'MM/DD/YYYY'),
    FROM cpsselect
    WHERE CHG_DT >= TO_DATE('2001-06-17', 'YYYY-MM-DD')The mapping of result set to model is done via JDBC, using the columnnames
    you provide in your model's column descriptors. It sounds as if you are
    providing the column name "PLAN_DT" in a descriptor, and when the model
    tries to look up that column in the result set, there is no such columnand
    the operation fails.
    In order to debug this, you should try running your query with a JDBC
    connection, not SQL*Plus or your command-line SQL tool. What you need to
    find out is how the expresion "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is aliasedas
    a column name in the resut set. The easiest way to do this is to write a
    simple class that does nothing but use your JDBC driver to connect the
    database and execute this query. After execution, use theResultSetMetaData
    information to find out the column names for the result set. Then, use
    these column names in your JATO column descriptors.
    Another Problem:We are not getting the values for NEWTXTDOLL column whenwe try to display it in a Tiled View.
    I'm sorry, this isn't enough information for me to offer any suggestions.
    Using the technique above, determine which columns are coming back in the
    result set, and make sure your display fields in the TiledView are boundto
    those column names. The problem could be something as simple as a typo in
    the field's bound name, or something more complex like the column in the
    result set being named something you don't expect.
    Another approach might be to alias the columns yourself using the "AS
    <alias>" expression, and assign them names that you choose instead ofusing
    the names assigned by the database or JDBC driver.
    Todd
    [email protected]
    The Information contained and transmitted by this E-MAIL is proprietary to
    Wipro Limited and is intended for use only by the individual or entity to
    which
    it is addressed, and may contain information that is privileged, confidential
    or
    exempt from disclosure under applicable law. If this is a forwarded message,
    the content of this E-MAIL may not have been sent with the authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information to the named
    recipient, you are notified that any use, distribution, transmission,
    printing,
    copying or dissemination of this information in any way or in any manner is
    strictly prohibited. If you have received this communication in error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]

  • RE: [iPlanet-JATO] Re: Use Of models in utility classes

    Hi all,
    if you add the following to your spider2jato.xml
    It will automatically map your CSpDataObject.executeImmediate to use
    ExecuteImmediateUtil.executeImmediateSelect with the arguments mapped as
    well.
    Kostas
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpDataObject[.\s]*executeImmediate[\s]*\(([^,]*),([^)]*)\)]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpDataObject[.\s]*executeImmediate[\s]*\(([^,]*),([^)]*)\)]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[ExecuteImmediateUtil.executeImmediateSelect($1,$2,
    getRequestContext())]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    -----Original Message-----
    From: Matthew Stevens
    Cc: vnamboori@y...
    Sent: 11/29/01 11:23 AM
    Subject: RE: [iPlanet-JATO] Re: Use Of models in utility classes
    Namburi,
    I have included an example in the file ExecuteImmediateUtil.java
    The Yahoo Group will not handle the attached file we will put it in the
    Files section shortly.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100253094145066046167121181">vnamboori@y...</a>]
    Sent: Thursday, November 29, 2001 12:29 PM
    Subject: [iPlanet-JATO] Re: Use Of models in utility classes
    Matt,
    For CSpSelect.executeImmediate() I have an example of custom helpermethod as a replacement which uses JDBC results instead of
    CSpDBResult.
    Can you send me this example.
    Thanks
    Namburi
    --- In iPlanet-JATO@y..., "Matthew Stevens" <matthew.stevens@E...>
    wrote:
    Namburi,
    I will post a document to the group site this evening which has thedetails
    on various tactics of migrating these type of utilities.Essentially, you
    either need to convert these utilities to Models themselves or keepthe
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of custom helpermethod
    as a replacement whicch uses JDBC results instead of CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100208071048">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes. These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do the
    manipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion for these
    utilities we have to do manually.
    My question is Can we access the the models in the post migration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObject intensive.Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]

    Hi all,
    if you add the following to your spider2jato.xml
    It will automatically map your CSpDataObject.executeImmediate to use
    ExecuteImmediateUtil.executeImmediateSelect with the arguments mapped as
    well.
    Kostas
    <mapping-rule>
    <mapping-rule-primarymatch>
    <![CDATA[CSpDataObject[.\s]*executeImmediate[\s]*\(([^,]*),([^)]*)\)]]>
    </mapping-rule-primarymatch>
    <mapping-rule-replacement>
    <mapping-rule-match>
    <![CDATA[CSpDataObject[.\s]*executeImmediate[\s]*\(([^,]*),([^)]*)\)]]>
    </mapping-rule-match>
    <mapping-rule-substitute>
    <![CDATA[ExecuteImmediateUtil.executeImmediateSelect($1,$2,
    getRequestContext())]]>
    </mapping-rule-substitute>
    </mapping-rule-replacement>
    </mapping-rule>
    -----Original Message-----
    From: Matthew Stevens
    Cc: vnamboori@y...
    Sent: 11/29/01 11:23 AM
    Subject: RE: [iPlanet-JATO] Re: Use Of models in utility classes
    Namburi,
    I have included an example in the file ExecuteImmediateUtil.java
    The Yahoo Group will not handle the attached file we will put it in the
    Files section shortly.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100253094145066046167121181">vnamboori@y...</a>]
    Sent: Thursday, November 29, 2001 12:29 PM
    Subject: [iPlanet-JATO] Re: Use Of models in utility classes
    Matt,
    For CSpSelect.executeImmediate() I have an example of custom helpermethod as a replacement which uses JDBC results instead of
    CSpDBResult.
    Can you send me this example.
    Thanks
    Namburi
    --- In iPlanet-JATO@y..., "Matthew Stevens" <matthew.stevens@E...>
    wrote:
    Namburi,
    I will post a document to the group site this evening which has thedetails
    on various tactics of migrating these type of utilities.Essentially, you
    either need to convert these utilities to Models themselves or keepthe
    utilities as is and simply use the
    RequestManager.getRequestContext.getModelManager().getModel()
    to statically access Models.
    For CSpSelect.executeImmediate() I have an example of custom helpermethod
    as a replacement whicch uses JDBC results instead of CSpDBResult.
    matt
    -----Original Message-----
    From: vnamboori@y... [mailto:<a href="/group/SunONE-JATO/post?protectID=081071113213093190112061186248100208071048">vnamboori@y...</a>]
    Sent: Tuesday, August 07, 2001 3:24 PM
    Subject: [iPlanet-JATO] Use Of models in utility classes
    Hi All,
    In the present ND project we have lots of utility classes. These
    classes in diffrent directory. Not part of nd pages.
    In these classes we access the dataobjects and do the
    manipulations.
    So we access dataobjects directly like
    CSpider.getDataObject("do....");
    and then execute it.
    Since the migration tool does not do much of conversion for these
    utilities we have to do manually.
    My question is Can we access the the models in the post migration
    sameway or do we need requestContext?
    We have lots of utility classes which are DataObject intensive.Can
    someone suggest a better way to migrate this kind of code.
    Thanks
    Namburi
    [email protected]
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]

  • Unable to locate class: com.iplanet.portalserver.auth.service.LoginServlet

    Trying to access the portal server via http://portalserver:port get a
    500 error response. Looking at the error logs I find this:
    [05/Dec/2001:08:46:34] warning (21789): Unable to locate class:
    com.iplanet.portalserver.auth.service.LoginServlet
    (java.lang.ClassNotFoundException:
    com.iplanet.portalserver.auth.service.LoginServlet)
    [05/Dec/2001:08:46:34] warning (21789): Internal error: Failed to get
    GenericServlet. (uri=/login,SCRIPT_NAME=/login)
    Any thoughts?
    -matt

    Found the problem...
    The iPlanet Portal server jars files where not specified in the
    webserver's jvm12.conf file.
    -matt
    Matt MacDonald wrote:
    Trying to access the portal server via http://portalserver:port get a
    500 error response. Looking at the error logs I find this:
    [05/Dec/2001:08:46:34] warning (21789): Unable to locate class:
    com.iplanet.portalserver.auth.service.LoginServlet
    (java.lang.ClassNotFoundException:
    com.iplanet.portalserver.auth.service.LoginServlet)
    [05/Dec/2001:08:46:34] warning (21789): Internal error: Failed to get
    GenericServlet. (uri=/login,SCRIPT_NAME=/login)
    Any thoughts?
    -matt

Maybe you are looking for