PortalObjectsFactory.CreateSession Fails 5.0.2

I coded a portlet using the 5.0.1 com.plumtree.server class to find out experts assigned to a folder. After installing 5.0.2, the portlet broke. It seems that it fails on the line... IPTSession ptSess = PortalObjectsFactory.CreateSession();with the exception...java.lang.NoClassDefFoundError at com.plumtree.server.PortalObjectsFactory.CreateSession(PortalObjectsFactory.java:130)which implies the class can not be found but I have the plumtreeserver.jar file in the same location (WEB-INF\lib) Any ideas -What am I missing?

Phil,
Basically, that's reasonable, except for the following considerations:
- You need to insure all the COM DLL's are properly registered on the machine. If it's the same machine as the portal, then it's fine; if it's another machine you'll need to install the portal even if you don't use it.
- The PT_HOME, PORTAL_HOME, and PATH environment variables must all be precisely configured to point to a valid ptportal\5.0\* tree. Once again, if you're on the portal box, fine; if not, run the installer.
- This also means you need to be talking to the exact same database instance with the proper security. Once again, on a non-portal machine use the installer, which then configures the registry keys and ODBC system instances.
An example of a JAR that ties everything together would be pthome.jar, which reads environemtn variables to create hardcoded paths to JARs and DLL's for classloading and library loading.
David Phipps
Plumtree Software

Similar Messages

  • 'PortalObjectsFactory' could not be found"

    am trying to read the Members of a group given the Group ID. I am putting the GroupID in a web.config file. I found an example in the forums of how to display the members in a group but it didn't say what .dll's to include.
    I'm assuming I need to use the Server API so I've included the Plumtree.dll into my .Net project. I've installed the portal on my desktop as well.
    usingPLUMTREE; //Server API
    IPTSession pSession = PortalObjectsFactory.CreateSession();
    When I compile I get the following error: "The type or namespace name 'PortalObjectsFactory' could not be found"
    Where is the PortalObjectsFactory() contained? I can't find it in Plumtree.dll. I thought it was part of the Server API. What reference do I need to use this factory?
    Thanks!

    Hi mate, I have the same problem, I can't find com.plumtree.server.PortalObjectsFactory, I checked plumtreeserver.jar but it was not on the place it should be :(
    If you have found some solution , please tell me!

  • CreateSession:Init Error

    Note: this is a repost. But I couldn't figure out how to move it to the right topic area.
    I've just started a .NET application that needs to see to which projects a user has access. I've grabbed some code found here online, but I can't seem to get it to work. The error I get is:
    java.rmi.RemoteException: Interface not Implemented: com.plumtree.openfoundation.util.XPException Error in PortalObjectsFactory.CreateSession: Init has not been called. You must successfully call Init before calling CreateSession
    The error occurs at the line:
    projList = projMgr.QueryProjects(projMgr.CreateProjectFilter())
    Here's the code:
    Imports System
    Imports System.Collections
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Web
    Imports System.Web.SessionState
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.HtmlControls
    Imports Plumtree.Remote.PRC
    Imports Plumtree.Remote.PRC.Collaboration
    Imports Plumtree.Remote.PRC.Collaboration.Project
    Imports Plumtree.Remote.Portlet
    Partial Class StatusSurvey
    Inherits System.Web.UI.Page
    'get the project manager
    Public Function GetProjectManager(ByVal req As HttpRequest, ByVal res As HttpResponse) As IProjectManager
    Dim projectManager As IProjectManager = Nothing
    Dim portletContext As IPortletContext = PortletContextFactory.CreatePortletContext(req, res)
    Dim portletRequest As IPortletRequest = portletContext.GetRequest()
    Dim loginToken As String = portletRequest.GetLoginToken()
    If loginToken Is Nothing Then
    res.Write("Unable to retrieve the login token. Confirm that the login token has been checked in the Advanced Settings page of the Web Service.")
    Else
    'get the remote session
    Dim portalSession As Plumtree.Remote.PRC.IRemoteSession = portletContext.GetRemotePortalSession()
    'get a collab factory and a project manager
    Dim collabFactory As ICollaborationFactory = portalSession.GetCollaborationFactory()
    projectManager = collabFactory.GetProjectManager()
    End If
    Return projectManager
    End Function
    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    Dim projList() As IProject
    Dim projMgr As IProjectManager = GetProjectManager(Request, Response)
    Dim projFilter As IProjectFilter
    projFilter = projMgr.CreateProjectFilter
    Dim count As Int16
    projList = projMgr.QueryProjects(projMgr.CreateProjectFilter())
    For count = 0 To projList.Length
    ddlProjects.Items.Add(projList(count).Name)
    Next
    End Sub
    End Class

    Hi Amracel,
    I've only seen this error when writing native code, never with the PRC.
    Have you tried setting your Login Token Expiration to some absurdly large value, like 999 minutes?
    You might have a difference in clock time (> 5 minutes) between your portal server and portlet server, which could cause the portlet server to think that it's receiving an expired login token.
    Once you synchronize the clocks, you can set the expiration date back to a more resonable value.
    HTH,
    Chris Bucchere | bdg | [email protected] | www.bdg-online.com

  • Collab API / RemoteSession exception

    Hi,
    I ran into the following issue.
    I'm trying to query for a list of projects. However, I get the following exception:
    CollaborationException: Call into WS Portal to authorize login token 12344|1265824413|z3uRfZrKCRGAyC6LEtIs4EYsagY= failed. Details: com.plumtree.remote.prc.PortalException:null; nested exception is: java.rmi.RemoteException: Error in PortalObjectsFactory.CreateSession: Init has not been called. You must successfully call Init before calling CreateSession
    at Plumtree.Remote.PRC.Collaboration.Project.ProjectManagerWrapper.QueryProjects(IProjectFilter projectFilter) at ...
    This happens even though i made sure to call the following prior to the query:
    string serverConfigDir = ConfigPathResolver.GetOpenConfigPath();
    IOKContext configContext = OKConfigFactory.createInstance(serverConfigDir, "portal");
    PortalObjectsFactory.Init(configContext);
    IRemoteSession remoteSession = RemoteSessionFactory.GetExplicitLoginContext(uri, username, password, 24 * 60);
    IPTSession ptsession = PortalObjectsFactory.CreateSession();
    ptsession.Connect(username, password, null);
    I'm currently wroking in a command-line application in C#, on a Collab 4.2

    Hi,
    I ran into the following issue.
    I'm trying to query for a list of projects. However, I get the following exception:
    CollaborationException: Call into WS Portal to authorize login token 12344|1265824413|z3uRfZrKCRGAyC6LEtIs4EYsagY= failed. Details: com.plumtree.remote.prc.PortalException:null; nested exception is: java.rmi.RemoteException: Error in PortalObjectsFactory.CreateSession: Init has not been called. You must successfully call Init before calling CreateSession
    at Plumtree.Remote.PRC.Collaboration.Project.ProjectManagerWrapper.QueryProjects(IProjectFilter projectFilter) at ...
    This happens even though i made sure to call the following prior to the query:
    string serverConfigDir = ConfigPathResolver.GetOpenConfigPath();
    IOKContext configContext = OKConfigFactory.createInstance(serverConfigDir, "portal");
    PortalObjectsFactory.Init(configContext);
    IRemoteSession remoteSession = RemoteSessionFactory.GetExplicitLoginContext(uri, username, password, 24 * 60);
    IPTSession ptsession = PortalObjectsFactory.CreateSession();
    ptsession.Connect(username, password, null);
    I'm currently wroking in a command-line application in C#, on a Collab 4.2

  • Pls Help - ClassNotFoundException error - custom activity space and control

    I am encoutnering the following error when I deploy and run my custom
    Login Activity Space and Control to the Java 5.0.2 Portal. I have created a custom Java project and built successfully(I think) using Ant and have modified the customactivityspaces.xml file appropriately. I have checked that the custom jar file is in the portal.war and PORTAL_HOME\lib\java\ folder. Any help with this would be extremely appreciated.
    Please let me know if I can provide more info.
    Thanks.
    46323     07-20     14:16:24     Fatal     UI Infrastructure     6000     5880 (main)     com.plumtree.uiinfrastructure.activityspace.ASManager.InternalLoadClasses(ASManager.java:497)     Fatal Exception loading lib file: stapleskiosklogin_java.lang.ClassNotFoundException: com.my.kiosk.login.KioskLoginControl_     at java.net.URLClassLoader.findClass(URLClassLoader.java:241)_     at java.lang.ClassLoader.loadClass(ClassLoader.java:516)_     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:460)_     at java.lang.ClassLoader.loadClass(ClassLoader.java:448)_     at java.lang.Class.forName1(Native Method)_     at java.lang.Class.forName(Class.java:142)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetClass(XPDynamicDiscovery.java:344)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetClassesForWar(XPDynamicDiscovery.java:266)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetInstancesFromLib(XPDynamicDiscovery.java:121)_     at com.plumtree.uiinfrastructure.activityspace.ASManager.InternalLoadClasses(ASManager.java:490)_     at com.plumtree.uiinfrastructure.activityspace.ASManager.LoadCustomClasses(ASManager.java:437)_     at com.plumtree.uiinfrastructure.application.AppWarmUp.Init(AppWarmUp.java:442)_     at com.plumtree.portal50.application.AppWarmUpServlet.init(AppWarmUpServlet.java:109)_     at javax.servlet.GenericServlet.init(GenericServlet.java:256)_     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)_     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)_     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3421)_     at org.apache.catalina.core.StandardContext.start(StandardContext.java:3609)_     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)_     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)_     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)_     at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)_     at java.lang.reflect.Method.invoke(Native Method)_     at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)_     at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)_     at org.apache.commons.digester.Rule.end(Rule.java:276)_     at org.apache.commons.digester.Digester.endElement(Digester.java:1058)_     at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)_     at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1550)_     at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1809)_     at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:949)_     at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)_     at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)_     at org.apache.commons.digester.Digester.parse(Digester.java:1567)_     at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)_     at org.apache.catalina.core.StandardHost.install(StandardHost.java:803)_     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)_     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)_     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)_     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)_     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)_     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)_     at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)_     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)_     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)_     at org.apache.catalina.core.StandardService.start(StandardService.java:497)_     at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)_     at org.apache.catalina.startup.Catalina.start(Catalina.java:512)_     at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)_     at org.apache.catalina.startup.Catalina.process(Catalina.java:180)_     at java.lang.reflect.Method.invoke(Native Method)_     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

    Thanks a lot for your help Julie! That worked.
    I have a followup question. Now, I get the Login view even though I didn't include a login view in my custom activity space.
    I am trying to develop the custom login activity space and don't want to display the default loginview and want to auto login. So I have created a custom activity space and a custom control. I am not sure if I have everything coded correctly yet. How do I make sure I don't display the login view if I go to my custom space directly?
    What's the best way to do this? I am still trying to go through the PT code and understand it. Any pointers would be very helpful.
    Additionally, for the custom activity space: do I need to extend PlumtreeAS or AActivitySpace ?
    I have my code listed below:
    package com.my.kiosk.login;
    import com.plumtree.portalpages.common.uiparts.*;
    import com.plumtree.uiinfrastructure.activityspace.*;
    import com.plumtree.xpshared.htmlelements.*;
    * Activity Space for Kiosk login.
    public class KioskLoginSpace extends AActivitySpace // AActivitySpace or PlumtreeAS ??
         public static final String STR_MVC_CLASS_NAME = "KioskLogin";
         * @see com.plumtree.uiinfrastructure.activityspace.IManagedObject#Create()
         public Object Create()
              return new KioskLoginSpace();
         * @return
         public String GetName()
              return STR_MVC_CLASS_NAME;
         * @see com.plumtree.xpshared.activityspace.AActivitySpace#Init()
         public void Init()
              super.Init();
              //RegisterPage(new LoginDP());
              //RegisterModel(LoginModel.STR_MVC_CLASS_NAME);
              //IModel myModel = GetModel(LoginModel.STR_MVC_CLASS_NAME);
              //RegisterView(LoginView.STR_MVC_CLASS_NAME, myModel);
              // Register the control in this space
              RegisterControl(KioskLoginControl.STR_MVC_CLASS_NAME, null);
         * Determine whether or not the current user has the security
         * privileges necessary to view the requested page.
         * @see com.plumtree.uiinfrastructure.activityspace.AActivitySpace#CheckBasicAccess(String, String, boolean)
         public boolean CheckBasicAccess(String strPage, String strControl,
                                                 boolean _bSameSpace)
              // All users are allowed to access this space
              return true;
         /* (non-Javadoc)
         * @see com.plumtree.uiinfrastructure.activityspace.AActivitySpace#GetStyleSheetLinks()
         public HTMLElementCollection GetStyleSheetLinks() {
              // TODO Auto-generated method stub
              return null;
    package com.my.kiosk.login;
    import com.plumtree.debug.*;
    import com.plumtree.openfoundation.util.*;
    import com.plumtree.openfoundation.web.*;
    import com.plumtree.portalpages.browsing.myportal.*;
    import com.plumtree.portalpages.browsing.myportal.mypages.*;
    import com.plumtree.portalpages.common.login.*;
    import com.plumtree.portaluiinfrastructure.login.*;
    import com.plumtree.server.*;
    import com.plumtree.uiinfrastructure.activityspace.*;
    import com.plumtree.uiinfrastructure.application.varpacks.*;
    import com.plumtree.uiinfrastructure.login.*;
    //import com.plumtree.portalpages.browsing.login.*;
    * This class handles the control logic for Store Kiosk login.
    public class KioskLoginControl implements ILoginControl, IHTTPControl
         /** object name */
         public static final String STR_MVC_CLASS_NAME = "KioskLogin";
         /** Query String parameters */
    //     public static final String PARAM_CREATE_ACCT = "createacct";
         /** MVC Objects */
         private AActivitySpace m_asOwner;
    //     private LoginModel m_asModel;
         /** these need to be nulled out after execution. */
         private IWebData m_WebData = null;
         private IXPRequest m_xpRequest = null;
         private IPTSession m_userSession = null;
         * @see IHTTPControl
         * @param r
         * @param pageData
         public void SetHTTPItems(IXPRequest r, IWebData pageData)
    //          In a given request, this method is called first.
              m_xpRequest = r;
              m_WebData = pageData;
         * @see com.plumtree.xpshared.activityspace.ILoginControl#SetRedirectForUseAfterLogin(Redirect)
         public void SetRedirectForUseAfterLogin(Redirect r)
              // In a given request, this method is called second.
              return;
         * @see com.plumtree.xpshared.activityspace.IControl#execute()
         public Redirect CheckActionSecurityAndExecute(XPHashtable arguments)
              // In a given request, this method is called third.
              if (PTDebug.IsDebugTracingEnabled(Component.Portal_Browsing))
                   PTDebug.Trace(Component.Portal_Browsing, TraceType.Error,
                        "KioskLoginControl CheckActionSecurityAndExecute() creating redirect to the Kiosk subportal");
              // In a given request, this method is called third.
              if (PTDebug.IsInfoTracingEnabled(Component.Portal_UI_Infrastructure))
                   PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Error,
                                  "GuestSubportalLoginControl Execute() creating redirect to MarkAsGuestControl.");
              // Redirect to the MarkAsGuestControl to mark this session as a guest user.
              // redirect to myPage
              Redirect myRedirect = new Redirect();
              myRedirect.SetLinkCreateNewSpace(MyPageAS.STR_MVC_CLASS_NAME,
                   m_asOwner);
              myRedirect.SetControl(SetPageControl.STR_MVC_CLASS_NAME);
              //int iId = mySession.GetSessionInfo().GetCurrentUserID();
              IPTSession mySession = (IPTSession)(m_asOwner.GetUserSession());
              int iId = mySession.GetSessionInfo().GetCurrentUserID();
              iId = -1 * iId;
              String sId = XPConvert.ToString(iId);
              myRedirect.AddControlArgument(SetPageControl.STR_PAGE_ID, sId);
              // Make this use a true 302 redirect
              myRedirect.SetIsHTTPRedirect(true);
              return myRedirect;
              //return null;
         * This method is used to determine if the guest user should
         * be redirected to their default page or to the login page
         * if a space is not specified.
         * @param RequestData
         * @return boolean true implies the guest should redirect to
         * login if no space is specified. Login is default.
    /*     private boolean IsRedirectOnLogoutEnabled()
              ConfigVarPack vpConfig = (ConfigVarPack) m_asOwner.GetApplication().GetVarPackManager().GetVariablePackage
                   (ConfigVarPack.VARPACK_ID);
              String strGuestRedirect = vpConfig.GetConfigValueAsString(
                   ConfigConstants.AUTHENTICATION_SECTION, "RedirectOnLogout",
                   ConfigConstants.VALUE_ATTRIBUTE);
              // default value
              boolean bResult = true;
              if ((strGuestRedirect != null) && (!"".equals(strGuestRedirect)))
                   if (XPConvert.ToInteger(strGuestRedirect) == 0)
                        bResult = false;
              return bResult;
         // IMVCObject
         * @see com.plumtree.uiinfrastructure.activityspace.IManagedObject#Create()
         public Object Create()
              return new KioskLoginControl();
         // Methods from ILoginControl
         * @see com.plumtree.xpshared.activityspace.ILoginControl#DoGetSession()
         public boolean DoGetSession()
              // The interpreter should ask us for the session.
              // In a given request, this method is called fourth.
              // Attempt to login as the custom guest user here, rather than in GetSession()
              // so that if we are unable to connect, we can abort the login attempt.
              // Otherwise, we have no way of knowing in the PEI whether or not login
              // has previously failed, and we can get in an infinite loop.
              try
                   //Add code to derive Kisok user name after Store lookup
                   String strKioskUserName = "kiosk0000";
                   String strKioskUserPassword = "";
                   // Look at the request URL to determine what URL this user
                   // is trying to access.
                   // Switch strCustomGuestName to your first custom guest here
    /*               if (XPStringUtility.IndexOf(m_asOwner.GetCurrentRequestURL(),
                                                           "firstsubportal") != -1)
                   // Switch strCustomGuestName to your second custom guest here
                   else if (XPStringUtility.IndexOf(m_asOwner.GetCurrentRequestURL(),
                                                                "secondsubportal") != -1)
                   // Connect as the custom guest user
                   m_userSession = PortalObjectsFactory.CreateSession();
                   m_userSession.Connect(strKioskUserName, strKioskUserPassword,
                                            null);
              catch (Exception e)
                   if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                        PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                       TraceType.Error,
                                       "Unable to connect to Kiosk user.", e);
                   m_userSession = null;
                   // Since we are unable to connect to our custom guest user, we do not
                   // want to login right now.
                   return false;
              return true;
         * @see com.plumtree.xpshared.activityspace.IControl#GetName()
         public String GetName()
              return STR_MVC_CLASS_NAME;
         * @see com.plumtree.xpshared.activityspace.ILoginControl#GetSession()
         public Object GetSession()
              // In a given request, this method is called fifth.
              if (null != m_userSession)
                   LoginResult rReturn = null;
                   try
                        // Login the custom guest user. This calls the login PEIs.
                        rReturn = LoginHelper.INSTANCE.AttemptLogin(m_userSession,
                                                                               m_asOwner,
                                                                               m_xpRequest,
                                                                               m_WebData);
                   catch (Exception e)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error, "AttemptLogin() failed.", e);
                   if (!rReturn.m_bSuccess)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error,
                                            "KioskLoginControl AttemptLogin() failed: " +
                                            rReturn.m_strError);
                   if (null != rReturn.m_Redirect)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error,
                                            "KioskLoginControl AttemptLogin() return redirect ignored.");
              IPTSession userSession = m_userSession;
              // Null out the IHTTPControl data so we don't retain the memory after the
              // request is done (i.e. leak the memory)
              m_xpRequest = null;
              m_WebData = null;
              m_userSession = null;
              return userSession;
         * @see com.plumtree.xpshared.activityspace.IControl#Init(IModelRW)
         public void Init(IModel model, AActivitySpace space)
    //          m_asModel = (LoginModel) model;
              m_asOwner = space;

  • Multiple Guest Accounts / Behind-the-scenes Login

    How would we go about logging a visitor in as a specific user behind-the-scenes (without them even seeing the Login Screen)? This question is driven from a requirement where we need to display a replica of the subportal branding at the guest view level. (Needs to go on the wish list for sure: Redirecting to a subportal and/or subportal guest accounts.) For example, if I created a [subportalname] Guest user for a subportal and wanted to automatically log a visitor in as that user, how would I trigger that process? Login PEI doesn't help me - none of those events seem to fire until the user is presented with the Login screen and manually clicks Log In - Looking at the Interpreter class right now, where we see the Guest login functionality (DoGuestLogin, etc.). How might we pass around a username and password and trigger an automatic login attempt with that data? We're basically looking for a work-around for multiple guest accounts - 1 per subportal - so that branding can appear right up front before a user actually logs in. We will have a parameter somewhere to branch out which subportal guest user to log the visitor in as. We've gone down a couple of different routes with no luck.
    Again, due to a tight timeframe, we need details - like, "Create a custom activity space replacing the Interpreter class, edit [blah] function and use [blah] function to pass in your hardcoded username and password. Rebuild [blah] and deploy [blah] dlls to [blah] directories."
    Regards,
    Sarah WheelerCox Enterprises, Inc.

    It turns out this is pretty complicated due to the internals of how user sessions get initialized. I've managed to get a test working where it logs you in as a guest in a different sub-portal. I can give you some rough information now.
    You will need a Login PEI, and a custom Space and IloginControl/IHTTPControl. Obviously, you will need to edit the Login PEI xml file and the CustomActivitySpaces.xml file to get your customizations deployed.
    The OnAfterLogin() method of the ILoginActions PEI should look something like this:
    publicRedirect OnAfterLogin(Object _oUserSession, ApplicationData arg1)
    IPTSession ptSession = (IPTSession) _oUserSession;
    if(ptSession.GetSessionInfo().GetCurrentUserID() == PT_INTRINSICS.PT_USER_GUEST)
    if(PTDebug.IsInfoTracingEnabled(Component.Portal_Browsing))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Info,
    "Guest user login redirecting to guestloginspace to go to non-standard guest user.");
    Redirect guestRedirect = newRedirect();
    guestRedirect.SetLinkCreateNewSpace(GuestLoginSpace.STR_MVC_CLASS_NAME, null);
    guestRedirect.SetControl(GuestLoginSpace.STR_MVC_CLASS_NAME);
    returnguestRedirect;
    returnnull;
    and the LoginControl that I mentioned earlier is a bit more complicated than I implied. It also needs to be an IHTTPControl for login purposes. The custom space is very simple, so I will skip it. Here's the full class code for the custom guest login control:
    publicclassGuestLoginControl implementsILoginControl, IHTTPControl
    publicstaticfinalString STR_MVC_CLASS_NAME = "GuestLogin";
    privateAActivitySpace m_asOwner;
    privateIPTSession m_UserSession;
    /**theseneedtobenulledoutafterexecution.*/
    privateIWebData m_WebData = null;
    privateIXPRequest m_xpRequest = null;
    *@seecom.plumtree.uiinfrastructure.activityspace.ILoginControl#DoGetSession()
    publicbooleanDoGetSession()
    returntrue;
    *@seecom.plumtree.uiinfrastructure.activityspace.ILoginControl#GetSession()
    publicObject GetSession()
    // We need to set this manually before the Interpreter does because
    // DoTasksAfterLogout depends on it.
    // m_asOwner.SetUserSession(subportalGuestUser);
    LoginResult rReturn = null;
    try
    rReturn = LoginHelper.INSTANCE.AttemptLogin(m_UserSession, m_asOwner,
    m_xpRequest, m_WebData);
    catch(Exception e)
    if(PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Error,
    "AttemptLogin() failed.", e);
    if(!rReturn.m_bSuccess)
    if(PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Error,
    "GuestSubportalLoginControl AttemptLogin() failed: "+
    rReturn.m_strError);
    if(null!= rReturn.m_Redirect)
    if(PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Error,
    "GuestSubportalLoginControl AttemptLogin() return redirect ignored.");
    m_xpRequest = null;
    m_WebData = null;
    returnm_UserSession;
    *@seecom.plumtree.uiinfrastructure.activityspace.IControl#CheckActionSecurityAndExecute(XPHashtable)
    publicRedirect CheckActionSecurityAndExecute(XPHashtable arg0)
    if(PTDebug.IsInfoTracingEnabled(Component.Portal_UI_Infrastructure))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Info,
    "GuestSubportalLoginControl Execute() creating redirect to login space for dljr.");
    m_UserSession = PortalObjectsFactory.CreateSession();
    m_UserSession.Connect("non-standard guest", "", null);
    ILink rReturn = LoginHelper.INSTANCE.GetDefaultPageRedirect(newRedirect(), m_UserSession, m_asOwner);
    if(PTDebug.IsInfoTracingEnabled(Component.Portal_UI_Infrastructure))
    PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Info,
    "GuestSubportalLoginControl Execute() finished.");
    return(Redirect) rReturn;
    *@seeIHTTPControl
    *@paramr
    *@parampageData
    publicvoidSetHTTPItems(IXPRequest r, IWebData pageData)
    m_xpRequest = r;
    m_WebData = pageData;
    *@seecom.plumtree.uiinfrastructure.activityspace.IControl#Init(IModel,AActivitySpace)
    publicvoidInit(IModel arg0, AActivitySpace _asOwner)
    m_asOwner = _asOwner;
    *@seecom.plumtree.uiinfrastructure.activityspace.ILoginControl#SetRedirectForUseAfterLogin(Redirect)
    publicvoidSetRedirectForUseAfterLogin(Redirect arg0)
    *@seecom.plumtree.uiinfrastructure.activityspace.IMVCObject#GetName()
    publicString GetName()
    returnSTR_MVC_CLASS_NAME;
    *@seecom.plumtree.uiinfrastructure.activityspace.IManagedObject#Create()
    publicObject Create()
    returnnewGuestLoginControl();

  • Problem starting up portal after my computer was upgraded to Windows XP SP2 and security lockdown

    Recently our computers in the office was upgraded to Windows XP SP2, and the portal in my local machine stopped working. It was working prior to the upgrade. When I start up the portal I get this error in PTSpy. Please help, I need this portal instance to work on UI Customization. Thank you in advance.
    ***Saving log at 10:15:28 on September 08. TRACE DATE TIME TYPE COMPONENT PROCESS THREAD LOCATION MESSAGE ===== ==== ==== ==== ========= ======= ====== ======== ======= 825 09-08 10:13:22 Fatal Portal UI - Infrastructure 2276 6012 com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks() Error creating directory var pack.
    System.Runtime.InteropServices.COMException
    at com.plumtree.server.InProcSession..ctor()
    at com.plumtree.server.PortalObjectsFactory.CreateSession()
    at com.plumtree.portaluiinfrastructure.application.varpacks.PTDirPrefsVarPack.Load()
    at com.plumtree.uiinfrastructure.web.BaseVarPack.LoadVarPack(String strConfigPath)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(VarPackManager vpmVarPackManager, String strSettingsConfigFolder, String strPlatform) 826 09-08 10:13:22 Fatal UI Infrastructure 2276 6012 com.plumtree.uiinfrastructure.application.AppWarmUp.Init() Failed to load var packs from custom app warm up helper.
    com.plumtree.openfoundation.util.XPException
    at com.plumtree.server.InProcSession..ctor()
    at com.plumtree.server.PortalObjectsFactory.CreateSession()
    at com.plumtree.portaluiinfrastructure.application.varpacks.PTDirPrefsVarPack.Load()
    at com.plumtree.uiinfrastructure.web.BaseVarPack.LoadVarPack(String strConfigPath)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(VarPackManager vpmVarPackManager, String strSettingsConfigFolder, String strPlatform) at System.Environment.GetStackTrace(Exception e)
    at System.Environment.GetStackTrace(Exception e)
    at System.Environment.get_StackTrace()
    at com.plumtree.openfoundation.util.XPException.GetInstance(Exception e)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(VarPackManager vpmVarPackManager, String strSettingsConfigFolder, String strPlatform)
    at com.plumtree.uiinfrastructure.application.AppWarmUp.Init(String strVarPackXMLFile, String strApplicationName, String _strPlatform)
    at com.plumtree.portaluiinfrastructure.application.ApplicationStartup.init()
    at portal50.Global.Application_Start(Object sender, EventArgs e)
    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess)
    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)
    at System.Web.HttpApplicationFactory.FireApplicationOnStart(HttpContext context)
    at System.Web.HttpApplicationFactory.Init(HttpContext context)
    at System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context)
    at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
    at System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr)
    at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) 827 09-08 10:13:22 Fatal UI Infrastructure 2276 6012 com.plumtree.uiinfrastructure.application.AppWarmUp.Init() FAILED TO INITIALIZE SYSTEM. YOU CANNOT PROGRESS BEYOND THIS POINT.
    com.plumtree.openfoundation.util.XPException
    at com.plumtree.server.InProcSession..ctor()
    at com.plumtree.server.PortalObjectsFactory.CreateSession()
    at com.plumtree.portaluiinfrastructure.application.varpacks.PTDirPrefsVarPack.Load()
    at com.plumtree.uiinfrastructure.web.BaseVarPack.LoadVarPack(String strConfigPath)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(VarPackManager vpmVarPackManager, String strSettingsConfigFolder, String strPlatform) at System.Environment.GetStackTrace(Exception e)
    at System.Environment.GetStackTrace(Exception e)
    at System.Environment.get_StackTrace()
    at com.plumtree.openfoundation.util.XPException.GetInstance(Exception e)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(VarPackManager vpmVarPackManager, String strSettingsConfigFolder, String strPlatform)
    at com.plumtree.uiinfrastructure.application.AppWarmUp.Init(String strVarPackXMLFile, String strApplicationName, String _strPlatform)
    at com.plumtree.portaluiinfrastructure.application.ApplicationStartup.init()
    at portal50.Global.Application_Start(Object sender, EventArgs e)
    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess)
    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)
    at System.Web.HttpApplicationFactory.FireApplicationOnStart(HttpContext context)
    at System.Web.HttpApplicationFactory.Init(HttpContext context)
    at System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context)
    at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
    at System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr)
    at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)

    I'm having a very similar issue with the G6 customization install (XP SP2, .NET version of G6).
    failureFATAL: LoadCustomVarPacks: Varpack loading problem. recommendationRECOMMENDATION: Verify your reference path is correct. Check that the relevant .NET assemblies in the customvarpacks.xml file are present in both PORTAL_HOME/bin/assemblies as well as PORTAL_HOME/webapp/portal/web/bin. Check secondary details below. exceptionXPFileNotFoundExceptionHelperLoadVarPacks: Unable to load VarPack. messageHelperLoadVarPacks: Unable to load VarPack. secondary exceptionat com.plumtree.uiinfrastructure.application.AppWarmUp.HelperLoadVarPacks(String strVarPackFile, String strLibHomePath, String strConfigPath, IApplication application, Boolean bOverWrite) in e:\buildroot\Release\uiinfrastructure\6.0.x\dotnet\prod\src\com\plumtree\uiinfrastructure\application\AppWarmUp.cs:line 432
    I checked the directories and both sets of DLLs are in place and show they match. I also appended (right or wrong) the ptportal_path, portal_home, and source_home paths to my environment. Current path looks like
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SystemRoot%\system32\nls;%SystemRoot%\system32\nls\ENGLISH;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;%ANT_HOME%\bin;%JAVA_HOME%\bin;%PORTALLIB_PATH%;%PTHREADS_PATH%;%OUTSIDEIN_PATH%;%INXIGHT_PATH%;%ICU_PATH%;%ptportal_path%;%portal_home%;%SOURCE_HOME%;
    Any help / direction / suggestions most appreciated.
    Thanks,
    Eric

  • Mx4j 2.0 (jmx 1.2) class resolution problem

    I'm having a problem where the resolution of the MX4J javax.management.ObjectName
    getInstance() method is failing. I'm using MX4J 2.0 (jmx 1.2), and the method
    that can't be found makes it look like WL is referencing jmx 1.1 or 1.0 class
    files (this method does't exist prior to jmx 1.2). I've set <prefer-web-inf-classes>true</prefer-web-inf-classes>
    in weblogic.xml, and put the correct MX4J jars in the war file.
    Has anyone run MX4J 2.0 succesfully? Any hints?
    The dump is below, any help appreciated. - jim
    ===
    ./startWebLogic.sh
    Using java memory arguments: -Xms256m -Xmx256m -XX:CompileThreshold=8000 -XX:PermSize=32m
    -XX:MaxPermSize=128m
    WLS Production Mode=
    CLASSPATH=/opt/bea/weblogic81/server/lib/weblogic_knex_patch.jar:/opt/bea/weblogic81/common/lib/log4j.jar:/opt/bea/weblogic81/server/lib/debugging.jar:/opt/bea/weblogic81/server/lib/knex.jar:/opt/bea/weblogic81/javelin/lib/javelin.jar:/opt/bea/weblogic81/server/lib/wlw-lang.jar:/opt/bea/jdk141_05/lib/tools.jar:/opt/bea/weblogic81/server/lib/weblogic_sp.jar:/opt/bea/weblogic81/server/lib/weblogic.jar:/opt/bea/weblogic81/server/lib/ojdbc14.jar:/opt/bea/weblogic81/server/lib/ant/ant.jar:/opt/bea/jdk141_05/jre/lib/rt.jar:::/opt/bea/weblogic81/common/eval/pointbase/lib/pbserver44.jar:/opt/bea/weblogic81/common/eval/pointbase/lib/pbclient44.jar:/opt/bea/weblogic81/server/lib/webserviceclient.jar:/opt/bea/weblogic81/server/lib/webserviceclient+ssl.jar:/opt/bea/weblogic81/server/lib/xbean.jar:/opt/bea/weblogic81/server/lib/wlxbean.jar:/opt/bea/weblogic81/server/lib/xqrl.jar:/opt/bea/weblogic81/server/lib/netui/netui-compiler.jar:/opt/bea/weblogic81/server/lib/wli.jar:/opt/bea/weblogic81/server/lib/fop.jar:/opt/bea/weblogic81/integration/adapters/sample/lib/sample-eis.jar:/opt/bea/weblogic81/portal/lib/wps_system.jar
    PATH=/opt/bea/weblogic81/server/bin:/opt/bea/weblogic81/server/bin:/opt/bea/jdk141_05/jre/bin:/opt/bea/jdk141_05/bin:/usr/j2sdk1.4.1_03/bin:.:/sw/p4-2003.1:/usr/bin:/bin:/usr/sbin:/sbin:/usr/sbin:/usr/local/bin:/sw/bin:/usr/ccs/bin:/sw/ant-1.6.1/bin:/sw/eclipse-2.1.1/eclipse:/opt/oracle/9.2.0/bin:/opt/oracle/bin:/sw/bin:/home/qautolab1/shared/devtools/bin:/sw/ant-1.6.1/bin:/usr/local/eclipse:/opt/oracle/bin:/home/qalab01/tomcat/bin:/opt/WebSphere/AppServer/bin:/opt/bea/weblogic81/server/bin:/home/qalab01/ellington/SunOS/ptsearchlib/5.0X/lib:/home/qalab01/ellington/SunOS/ptportal/5.0/lib/native:/home/stanleyl/devtools/scripts/simple:/home/stanleyl/devtools/scripts/batch
    * To start WebLogic Server, use a username and *
    * password assigned to an admin-level user. For *
    * server administration, use the WebLogic Server *
    * console at http://hostname:port/console *
    starting weblogic with Java version:
    === Debugging ===
    This window is necessary for debugging code using WebLogic Workshop
    java version "1.4.1_05"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_05-b01)
    Java HotSpot(TM) Client VM (build 1.4.1_05-b01, mixed mode)
    Starting WLS with line:
    /opt/bea/jdk141_05/bin/java -client -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n
    -Djava.compiler=NONE -Xms256m -Xmx256m -XX:CompileThreshold=8000 -XX:PermSize=32m
    -XX:MaxPermSize=128m -Xverify:none -ea -da:com.bea... -da:javelin... -da:weblogic...
    -Dplatform.home=/opt/bea/weblogic81 -Dwls.home=/opt/bea/weblogic81/server -Dwli.home=/opt/bea/weblogic81/integration
    -Dlog4j.configuration=file:/opt/bea/weblogic81/common/lib/workshopLogCfg.xml
    -Dweblogic.management.discover=true -Dejbruntime.database=pointbase44 -Dweblogic.security.SSL.ignoreHostnameVerify=false
    -Dwlw.iterativeDev=true -Dwlw.testConsole=true -Dwlw.logErrorsToConsole=true -Dweblogic.Name=pt_server
    -Dweblogic.ProductionModeEnabled= -Djava.security.policy=/opt/bea/weblogic81/server/lib/weblogic.policy
    weblogic.Server
    <May 5, 2004 3:01:07 AM PDT> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic
    Server with Java HotSpot(TM) Client VM Version 1.4.1_05-b01 from Sun Microsystems
    Inc.>
    <May 5, 2004 3:01:07 AM PDT> <Info> <Configuration Management> <BEA-150016> <This
    server is being started as the administration server.>
    <May 5, 2004 3:01:07 AM PDT> <Info> <Management> <BEA-141107> <Version: WebLogic
    Server 8.1 SP2 Fri Dec 5 15:01:51 PST 2003 316284
    WebLogic XMLX Module 8.1 SP2 Fri Dec 5 15:01:51 PST 2003 316284
    WebLogic Server 8.1 SP2 Fri Dec 5 15:01:51 PST 2003 316284
    WebLogic Server 8.1 SP2 Fri Dec 5 15:01:51 PST 2003 316284
    WebLogic Integration 8.1 SP2 Thu Dec 11 22:07:14 PST 2003 148883
    WebLogic Portal 8.1 SP2 Thu Dec 11 22:03:57 PST 2003 148883>
    <May 5, 2004 3:01:08 AM PDT> <Notice> <Management> <BEA-140005> <Loading domain
    configuration from configuration repository at /opt/configlab/bea/pt_domain/./config.xml.>
    <May 5, 2004 3:01:13 AM PDT> <Notice> <Log Management> <BEA-170019> <The server
    log file /opt/configlab/bea/pt_domain/pt_server/pt_server.log is opened. All server
    side log events will be written to this file.>
    <May 5, 2004 3:01:16 AM PDT> <Notice> <Security> <BEA-090082> <Security initializing
    using security realm myrealm.>
    <May 5, 2004 3:01:16 AM PDT> <Notice> <WebLogicServer> <BEA-000327> <Starting
    WebLogic Admin Server "pt_server" for domain "pt_domain">
    <May 5, 2004 3:02:07 AM PDT> <Warning> <EJB> <BEA-014006> <The message driven
    bean (MDB) named "ProcessTrackingEventErrorListener" has a dispatch policy "wli.internal.ProcessTracking"
    that refers to an unknown execute queue thread pool. The default execute thread
    pool will be used instead.>
    <May 5, 2004 3:02:07 AM PDT> <Warning> <EJB> <BEA-014006> <The message driven
    bean (MDB) named "InstanceInfoEventListener" has a dispatch policy "wli.internal.ProcessInstanceInfo"
    that refers to an unknown execute queue thread pool. The default execute thread
    pool will be used instead.>
    <May 5, 2004 3:02:07 AM PDT> <Warning> <EJB> <BEA-014006> <The message driven
    bean (MDB) named "ProcessTrackingEventListener" has a dispatch policy "wli.internal.ProcessTracking"
    that refers to an unknown execute queue thread pool. The default execute thread
    pool will be used instead.>
    Initializing filter BinaryGatewayFilter... DONE.
    33 05-05 03:02:50 portal_ui_infrastructure FATAL 1 (main)
    PTAppWarmUpHelper Error creating directory var pack.java.lang.NoSuchMethodError:
    javax.management.ObjectName.getInstance(Ljava/lang/String;)Ljavax/management/ObjectName;
    at com.plumtree.openkernel.impl.sysmgmt.jmx.JMXService.RegisterMBean(JMXService.java:288)
    at com.plumtree.openkernel.impl.sysmgmt.jmx.JMXService.RegisterObservableObject(JMXService.java:252)
    at com.plumtree.openkernel.impl.sysmgmt.SysMgr.RegisterObservableObject(SysMgr.java:269)
    at com.plumtree.openkernel.impl.sysmgmt.SysMgr.RegisterObservableObject(SysMgr.java:279)
    at com.plumtree.openkernel.impl.sysmgmt.counters.Counter.RegisterCounterInstanceMBean(Counter.java:720)
    at com.plumtree.openkernel.impl.sysmgmt.counters.Counter.AddInstance(Counter.java:548)
    at com.plumtree.openkernel.impl.sysmgmt.counters.CounterCategory.AddCategoryCounterInstance(CounterCategory.java:168)
    at com.plumtree.openkernel.impl.sysmgmt.counters.CounterCategory.AddCategoryCounterInstances(CounterCategory.java:203)
    at com.plumtree.openkernel.impl.sysmgmt.counters.CounterMgr.RefreshCPPMetadata(CounterMgr.java:1757)
    at com.plumtree.openkernel.impl.sysmgmt.counters.CounterMgr.RefreshCPPMetadata(CounterMgr.java:1721)
    at com.plumtree.openkernel.impl.sysmgmt.SysMgr.Startup(SysMgr.java:161)
    at com.plumtree.openkernel.OpenKernel.StartService(OpenKernel.java:757)
    at com.plumtree.openkernel.OpenKernel.Startup(OpenKernel.java:343)
    at com.plumtree.openkernel.OpenKernel.Init(OpenKernel.java:278)
    at com.plumtree.openkernel.OpenKernel.Init(OpenKernel.java:96)
    at com.plumtree.server.PortalObjectsFactory.Init(PortalObjectsFactory.java:52)
    at com.plumtree.server.PortalObjectsFactory.CreateSession(PortalObjectsFactory.java:137)
    at com.plumtree.portaluiinfrastructure.application.varpacks.PTDirPrefsVarPack.Load(PTDirPrefsVarPack.java:228)
    at com.plumtree.uiinfrastructure.web.BaseVarPack.LoadVarPack(BaseVarPack.java:164)
    at com.plumtree.portaluiinfrastructure.application.PTAppWarmUpHelper.LoadCustomVarPacks(PTAppWarmUpHelper.java:100)
    at com.plumtree.uiinfrastructure.application.AppWarmUp.Init(AppWarmUp.java:556)
    at com.plumtree.portal50.application.AppWarmUpServlet.init(AppWarmUpServlet.java:174)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
    at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
    at weblogic.servlet.internal.HttpServer.preloadResources(HttpServer.java:688)
    at weblogic.servlet.internal.WebService.preloadResources(WebService.java:483)
    at weblogic.servlet.internal.ServletInitService.resume(ServletInitService.java:30)
    at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
    at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
    at weblogic.Server.main(Server.java:32)

    From Metalink Note 236914.1:
    Solution
    To fix this check that you have your oui HOME in the location
    C:\program files\oracle
    If not. Copy the whole oracle folder from where your OUI HOME are now and place it under c:\program files
    Change your inst_loc variable in the registry to c:\program files\oracle\inventory
    The location of this variable in the registry is HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
    Now apply the patch with opatch
    After the patch has been applied you can of course move your oui HOME back again but remember to update your inst_loc variable in the registry.
    RELATED DOCUMENTS
    Note:229626.1 How to apply interim patches and the functionality of opatch on Windows
    Business Intelligence Beans Product Management Team
    Oracle Corporation

  • How do I map custom property from portal api ptsearchresponse?

    I want to map the search results to my datatable.
    I can execute the search fine. But how do I map the property value? My property id is 101.
    In other words which ptSearchResponse method do I use?
                    IPTSession ptSession;
                    IPTSearchRequest ptSearchRequest;
                    IPTSearchResponse ptSearchResponse;
                    IPTSearchQuery ptSearchQuery;
                    string serverConfigDir = ConfigPathResolver.GetOpenConfigPath();
                    IOKContext configContext = OKConfigFactory.createInstance(serverConfigDir, "portal");
                    PortalObjectsFactory.Init(configContext);
                    ptSession = PortalObjectsFactory.CreateSession();
                    ptSession.Connect(1, "", null);
                    // Create a SearchRequest object
                    ptSearchRequest = ptSession.GetSearchRequest();
                    // Set search settings (constraints)
                    // Set maximum results desired (100)
                    ptSearchRequest.SetSettings(
                    PT_SEARCH_SETTING.PT_SEARCHSETTING_MAXRESULTS, 100);
                    // Set the folder in which to search (array to support multiple folders)
                    ptSearchRequest.SetSettings(
                        PT_SEARCH_SETTING.PT_SEARCHSETTING_DDFOLDERS,
                        new int[] { Convert.ToInt32(ConfigurationManager.AppSettings["DocumentFolderId"]) });
                    // Include subfolders of the folder
                    ptSearchRequest.SetSettings(
                        PT_SEARCH_SETTING.PT_SEARCHSETTING_INCLUDE_SUBFOLDERS, true);
                    // Restrict search to just portal documents
                    // (not ALI Collaboration or ALI Publisher)
                    ptSearchRequest.SetSettings(
                        PT_SEARCH_SETTING.PT_SEARCHSETTING_APPS, PT_SEARCH_APPS.PT_SEARCH_APPS_PORTAL);
                    // get documents only
                    ptSearchRequest.SetSettings(
                        PT_SEARCH_SETTING.PT_SEARCHSETTING_OBJTYPES, new int[] { PT_CLASSIDS.PT_CATALOGCARD_ID });
                    // Request the intrinsic PT_PROPERTY_PROVIDERCLSID and custom property 101
                    ptSearchRequest.SetSettings(
                        PT_SEARCH_SETTING.PT_SEARCHSETTING_RET_PROPS,
                        new int[] { PT_INTRINSICS.PT_PROPERTY_PROVIDERCLSID, 101 });
                    //Use IPTFilter to create search filter with clause with two statements
                    IPTFilter ptFilter;
                    IPTPropertyFilterClauses ptFilterClause;
                    IPTPropertyFilterStatement ptFilterStmt1;
                    IPTPropertyFilterStatement ptFilterStmt2;
                    // Create the filter itself
                    ptFilter = PortalObjectsFactory.CreateSearchFilter();
                    // Create the filter clause
                    ptFilterClause = (IPTPropertyFilterClauses)ptFilter.GetNewFilterItem(PT_FILTER_ITEM_TYPES.PT_FILTER_ITEM_CLAUSES);
                    ptFilterClause.SetOperator(PT_BOOLOPS.PT_BOOLOP_OR);
                    // Attach it to the filter itself
                    ptFilter.SetPropertyFilter(ptFilterClause);
                    // Put two statements into the clause
                    ptFilterStmt1 = (IPTPropertyFilterStatement)
                        ptFilter.GetNewFilterItem(PT_FILTER_ITEM_TYPES.PT_FILTER_ITEM_STATEMENT);
                    ptFilterStmt1.SetOperand(101);
                    ptFilterStmt1.SetOperator(PT_FILTEROPS.PT_FILTEROP_CONTAINS);
                    ptFilterStmt1.SetValue(tbSearch.Text.Trim());
                    ptFilterClause.AddItem(ptFilterStmt1, ptFilterClause.GetCount());
                    ptFilterStmt2 = (IPTPropertyFilterStatement)
                        ptFilter.GetNewFilterItem(PT_FILTER_ITEM_TYPES.PT_FILTER_ITEM_STATEMENT);
                    ptFilterStmt2.SetOperand(1);
                    ptFilterStmt2.SetOperator(PT_FILTEROPS.PT_FILTEROP_CONTAINS);
                    ptFilterStmt2.SetValue(tbSearch.Text.Trim());
                    ptFilterClause.AddItem(ptFilterStmt2, ptFilterClause.GetCount());
                    // Make the filter into an actual search query
                    ptSearchQuery = ptSearchRequest.CreateAdvancedQuery(ptFilter);
                    // Run the search and return results
                    ptSearchResponse = ptSearchRequest.Search(ptSearchQuery);               
                    // How many things matched the search?
                    int totalMatches = ptSearchResponse.GetTotalMatches();
                    // How many items were returned? (Not necessarily all)
                    int returnedMatches = ptSearchResponse.GetResultsReturned();
                    // create DataTable and map results to
                    // datatable fields
                    DataTable dtSearchResults = new DataTable("Documents");
                    dtSearchResults.Columns.Add("Name");
                    dtSearchResults.Columns.Add("Excerpt");
                    dtSearchResults.Columns.Add("DocSubject");
                    dtSearchResults.Columns.Add("DocTopic");
                    dtSearchResults.Columns.Add("DocType");
                    dtSearchResults.Columns.Add("DocKeywords");
                    dtSearchResults.Columns.Add("Url");
                    dtSearchResults.Columns.Add("ImageURL");
                    DataRow dr;                                                                                                          
                    // Print the name of each result
                    for (int i = 0; i < returnedMatches; i++)
                        dr = dtSearchResults.NewRow();
                        String strName = ptSearchResponse.GetFieldsAsString(i, PT_INTRINSICS.PT_PROPERTY_OBJECTNAME);                  
                        String strText = ptSearchResponse.GetFieldsAsString(i, PT_INTRINSICS.PT_PROPERTY_OBJECTSUMMARY);
                        String strURL = ptSearchResponse.GetFieldsAsString(i, PT_INTRINSICS.PT_PROPERTY_DOCUMENTURL);
                        String strImageURL = ptSearchResponse.GetFieldsAsString(i, PT_INTRINSICS.PT_PROPERTY_OBJECTIMAGEUUID);
                        dr["Name"] = strName;
                        dr["Excerpt"] = strText;
                        dr["Url"] = strURL;
                        dr["ImageURL"] = "pt://images/plumtree/portal/public/img/sml" + strImageURL + ".gif";
                        dtSearchResults.Rows.Add(dr);
    Edited by [email protected] at 04/11/2008 7:26 PM
    Edited by [email protected] at 04/11/2008 7:27 PM

    Problem solved. I should use JsonObject instead of JSONObject :D 

  • Error while trying to create IPTSession object in ALUI Portlet

    All,
    I'm creating a IPTSession object using the following code in a ALUI portlet. (I'm using server side API for some reasons)
    #1 PortalObjectsFactory.Init(OKConfigFactory.createInstance(ConfigPathResolver.GetOpenConfigPath(), "portal"));
    #2 IPTSession ptSession = PortalObjectsFactory.CreateSession();
    When the #2 is getting executed, i'm getting stange error,
    com.plumtree.openfoundation.util.XPException
    Attempt to initialize a SearchService that has already been initialized.
    any idea why is this happening? i was not getting this error before. suddenly it started happening. any help would be useful

    Here is the complete stack trace... I couldn't understand why this error is happening....
    Attempt to initialize a SearchService that has already been initialized.
    com.plumtree.openfoundation.util.XPException: Attempt to initialize a SearchService that has already been initialized.
         at com.plumtree.openkernel.impl.search.SearchService.Init(SearchService.java:72)
         at com.plumtree.server.impl.core.InternalSession.Init(InternalSession.java:158)
         at com.plumtree.server.PortalObjectsFactory.Init(PortalObjectsFactory.java:53)

  • Querying user settings

    Hi,
    After quite a bit of experience developing ASP gadgets for version 4.5, we've recently moved to Plumtree version 5 and .Net.
    One thing we would like to be able to do is provide a web service for use by other applications (outside the portal) which could request the retrieval of a specific User setting for a given user.
    I've seen some examples of similar challenges, but still a bit bewildered how to go about this (on the Plumtree side of things, the actual process of building our own web service is fine).
    The web service will be built with .Net & WSE, on a server with the Plumtree EDK installed. I've checked and our Plumtree installation also has the PTAPI QueryInterfaceAPI web service available.
    Should I use a PRC session, and impersonate the user I need to get the settings for, or will setting up a session as an admin user be sufficient to query the User settings object for another user?
    Any help offered would be gratefully received.
    Thanks,
    Charles

    Sorry - I'm a doofus. I didn't read your post completely.
    You're right - if you want to attach to this service w/o going through Plumtree/BEA first to obtain a login ID you'd need to impersonate a user (I'd suggest a secured admin account where the credentials are encrypted).
    Try this... (server API)
    In your web.config
    <appSettings> <add key="UserID" value="administrator" /> <add key="UserPassword" value="" /></appSettings>
    Encrypt these or do something to protect them.
    Read: How to use the ASP.NET utility to encrypt credentials and session state connection strings
    http://support.microsoft.com/default.aspx?scid=kb;en-us;329290
    Code Sample for Password Reset (Similar thing)
    '//create an admin connection Dim ptAdminSession As IPTSession = New Session 'PortalObjectsFactory.CreateSession ptAdminSession.Connect("administrator", "", Nothing) '//reference web.config values instead
    Dim sNewPassword As String = ""
    '//start user impersonation Dim ptUserSessionTemp As IPTSession = ptAdminSession.ImpersonateUser(iUserID)
    '//get the user's email address Dim sEmail As String = "" sEmail = ptUserSessionTemp.GetUserInfo.GetEmail
    If sEmail.Length > 0 Then '//open the user for editing Dim oUser As IPTUser = ptAdminSession.GetUsers().Open(iUserID, True)
    '//reset the password oUser.SetPassword(sNewPassword)
    '//mungle with server context - don't ask why we do this after we have a handle on the object - I don't know '//there's likely a very good reason for it, I'm sure Dim mySC As IPTServerContext = oUser.GetInterfaces("IPTServerContext") mySC.Store() mySC.UnlockObject()
    '//send email
    Else '//throw an exception here - return "no email address"
    End If

  • Development Environment for Server APIs in Webcenter Interaction 10.3

    Hi, I installed “Oracle Web Center Interaction 10.3" on standard environment mentioned by oracle (Window 2003 server, IIS6.0, SQL Server 2005). Everything works fine concerning the portal and services.
    I also have visual studio 2005 on the same machine and trying to setup a development environment where I can user server APIs (I start with creating IPTSession).
    I am using follwong code to start with:
    /String serverConfigDir = ConfigPathResolver.GetOpenConfigPath();
    IOKContext configContext = OKConfigFactory.createInstance(serverConfigDir, "portal");
    PortalObjectsFactory.Init(configContext);
    IPTSession ptSession = PortalObjectsFactory.CreateSession();
    Problem: code compiles if I add few dlls, but it do not run, it throws following error
    com.plumtree.openkernel.exceptions.OKFactoryException: Error in AOKFactory.createAndInitializeInstance, unable to create object with name 'com.plumtree.openkernel.impl.config.Config' in assembly or JAR file 'openconfig'.
    I think either server APIs are not more supported in 10.3 or I do not know how to setup the development environment for server APIs.
    Can anyone help??

    i have already tried putting hardcoded path but it didn't help, morover the previous line gives me correct path.
    I issue i mentioned seems to be related with some setting or missing native dlls
    com.plumtree.openkernel.exceptions.OKFactoryException: Error in AOKFactory.createAndInitializeInstance, unable to create object with name 'com.plumtree.openkernel.impl.config.Config' in assembly or JAR file 'openconfig'.
    i got follwing extract from the wsserver-wrapper.log file
    INFO | jvm 1 | 2009/02/20 12:26:17 | 2-20-2009     12:26:17.606     Info     OpenKernel.Config     Disabled-1235112977434     WrapperStartStopAppMain     com.plumtree.openkernel.impl.config.providers.ConfigXMLFileProvider     Loading config data from C:\bea\alui\ptws\10.3.0\bin\..\..\..\common/../settings
    INFO | jvm 1 | 2009/02/20 12:26:18 | 2-20-2009     12:26:18.325     Info     OpenKernel.Config     Disabled-1235112977434     WrapperStartStopAppMain     com.plumtree.openkernel.impl.config.providers.ConfigXMLFileProvider     Setting subscription data.
    INFO | jvm 1 | 2009/02/20 12:26:18 | container config context:EAS:wsserver
    i didn't modified anything in any config file, just configured everything on one machine with oracle configuration manager

  • How to get PTInternalSession interface in Aqualogic 5.x?

    I am trying to use CreateCursor() method on Aqualogic 5.0.5 using Server Portal API for which I need the handle to Internal Session interface.
    I have the handle of IPTSession interface which exposes a method Get__InternalSession(object Token) which returns IPTInternalSession instance. Unfortunately I am not able to get this method to work.
    The code is like:
    IPTSession _ptsession = PortalObjectsFactory.CreateSession();
    _ptsession.Connect("Administrator","",null);
    IPTInternalSession ptInternalSession = (IPTInternalSession)_ptsession.Get__InternalSession(_ptsession.GetToken(300));
    ptInternalSession.CreateCursor(...);
    I am getting an exception "Value does not fall within the expected range" when the third line above is executed.
    Similar code for Aqualogic 6 however works fine though the interface has some changes. GetInternalSession function does not require any token and the implementation has been moved to InternalSession class.
    Any help on this or an alternate method for running CreateCursor on AL 5x will be highly appreciated.

    Here's a list of "Rules" you can use in GlimmerBlocker to block those annoying in video adverts on "Vevo" and "Daily Motion"...
    Just follow the same steps as I described earlier and in the "Host" option enter the following to set up new ad blocking rules...
    To Block In Video Ads On Daily Motion...
    1. Add a "Filter"and call it for example "Daily Motion Ad Blocker"...
    2. Add a "Rule" and enter "fwmrm.net" (without the quotes) into the "Host:" field. Then Click on Save in the "Rule" window...
    3. Add a "Rule" and enter "ad.auditude.com" (without the quotes) into the "Host:" field. Then Click on Save in the "Rule" window...
    To Block In Video Ads On Vevo...
    1. Add a "Filter"and call it for example "Vevo Ad Blocker"...
    2. Add a "Rule" and enter "Video2AdRenderer.swf" (without the quotes) into the "Host:" field. Then Click on Save in the "Rule" window...
    3. Add a "Rule" and enter "9cf9.v.fwmrm.net" (without the quotes) into the "Host:" field. Then Click on Save in the "Rule" window...
    The above filter should block all those annoying in video ads on both Vevo and Daily Motion

  • Error in IPTSession.Reconnect

    We have a web service that uses the server API, there are code:
    pSession = PortalObjectsFactory.CreateSession();
    pSession.Reconnect(m_PortletRequest.GetLoginToken());
    When I have this web app running locally on my machine and create plumtree web service (and the portlet) in my local portal page, it works fine. (So my machine is both the remote portlet server and portal server)
    But when I try to use this production web service (which is hosted on another remote portlet server) to create the portlet on my local portal page, I'm getting error in the portlet from the Reconnect, I think somehow the login tokin is not sent properly but don't know why?
    In both cases, I've configured the web service to send the login token to portlets.
    Anybody can help?
    TIA!

    Is the remote portal server installed in the same box the prod portal is installed in?
    if so, then it's probably a token issue that you're experiencing that Chris mentioned.
    If not, then yes, it completely lacks the config to execute the Server API calls you're tyring to make.
    The edk code, edk.jar/.dll is the only thing that you can use to run code remotely.
    The server api code, plumtreeserver.jar/dll etc are completely different .jar/dlls you need to use in order to run server api code. As Chris mentioned, it's runing native api calls. If you look up the api libraries for EDk and Server API you will see alot more classes and a lot more functionality that the server api code gives you that the EDK code lacks.
    Your local instance is running the server api code that affects your local portal. It doesn't require any additional steps b/c your local box already includes all the config setup for the portal it needs to accomplish the server api calls/code you made in your portlet code. Essentially, the server api code you run on your box only affects your portal. It will not work if you try to run it on any other Portal server like dev/staging/prod.
    Portal 5.03 - if your remote server that is connected to the production portal are on separate boxes, you will need to run the 5.03 portal installer and install the WS server on the remote server box. You will need to know the configuration/db settings of hte production box and set up the WS server to connect to that. That is what you lack in making the server api work remotely for the production box.
    Your only other choice is to host all the server api code on the prod box.

  • Automatically Creating Communities with G6

    This should be pretty straightforward but its not. We have upgraded our development server to G6 and are working on a system to create communities automatically. Our code called the POrtalObjectsFactory.CreateSession() to create a session but then it complains that Init must be called first. To call Init, you need an IOKContext which is part of com.plumtree.openkernel.config. The G6 API has a broken link on the page that has the PortalObjectsFactory.Init method to IOKContext.
    We have seen that in Version 5, you didn't need to do this but in G6 you have to. We need to understand how to Init the PortalOBjectsFactory so we can create a community. Thanks
    Below is our code:
    public int CreateCommunity(string name, int templateID, int folderID){int communityID = -1;IPTSession mIPTSession = PortalObjectsFactory.CreateSession();IPTCommunity mIPTCommunity = null;IPTServerContext mIPTServerContext = null;mIPTSession.Connect(ms_UserName, ms_Password, null);mIPTCommunity = (IPTCommunity) mIPTSession.GetCommunities().Create(folderID);mIPTCommunity.SetName(name);mIPTCommunity.SetCommunityTemplateID(templateID);mIPTServerContext = (IPTServerContext) mIPTCommunity.GetInterfaces("IPTServerContext");mIPTServerContext.Store();mIPTServerContext.UnlockObject();communityID = mIPTCommunity.GetObjectID();return communityID;}

    Here is an explanation of the changes from 5.x to 6.0 and the extra step needed in getting it to work:
    I had this exact same problem when I first tried to init a session - I had hoped they put it in some readme files of the changes, but oh well. I'm pasting an explanation given to me about the changes, and below is a .jsp fiile I created that got this working.
    In 5.x portal settings were located using a set of environment variables which had to be in place before you could create and use a session. In Portal 6.0, that requirement has been replaced by leaving it up to the client to locate and load the configuration files, hence the extra step of feeding config data manually to the factory.
    IOKContext is the interface that the portal will use for loading its data. You generally load it with the following call:IOKContext context = OKConfigFactory.createInstance("MyDirectory", "MyContextURN");
    The portal's config directory is under the Martok install directory and the context name for the portal is, I think, "portal". OpenConfig will load all the config files in the config directory (and its subdirectories) and provide to the portal factory all the settings that are used by the context named "portal".
    Here is my jsp code, I hope you can utilize most of the stuff for .netLillian
    <%@ page language="java" import="java.util.*,java.io.*,java.text.*,java.lang.reflect.*, com.plumtree.remote.portlet.*, com.plumtree.server.*, com.plumtree.openkernel.config.*, com.plumtree.openkernel.factory.*, com.plumtree.server.PortalObjectsFactory.*, com.plumtree.remote.prc.*, java.net.*" %>
    <h5> Get Community, Portlet, and Page Name </h5>
    <% IPTSession ptSession = null; IOKContext context = OKConfigFactory.createInstance("C:\\Program Files\\plumtree\\settings", "portal"); PortalObjectsFactory.Init(context);
    // Connect to the portal server.. here we'll just be Administrator ptSession = PortalObjectsFactory.CreateSession(); ptSession.Connect("administrator", "", null); IPTObjectManager objMan = ptSession.GetCommunities(); //querying for user's communities, joeuser IPTQueryResult qresult = objMan.QuerySingleObject(201); int qnum = qresult.RowCount();
    //querying for administrator's communities IPTQueryResult aresult = objMan.QuerySingleObject(1); int anum = aresult.RowCount();
    %>
    qnum is: <%=qnum%><br>anum is: <%=anum%>

Maybe you are looking for

  • Tax calculation on sales order and invoice is different

    2007A, SP0, PL49 The tax on a sales order does not match the tax on the linked delivery and invoice by 1 cent. We take payment based on the sales order amount as the delivery and invoice are done after the fact. Why is the tax calculated differently

  • Installing the Content CD?

    I'm reinstalling CS3 (I know it's an old one) after a crash. It's been a while and I'm trying to install the Content CD. It doesn't seem to install or automatically run. How do I install this? Should it be in the Bridge? Thanks!

  • Read SAP XI table

    Hi everybody, in BLOG: Pipeline Approach in SAP XI Implementations. writes about reading a SAP XI table via RFC-Lookup in UDF. The speciality is, that the table is osted an XI. Does anybody know, how to set up a RFC connection/communication channel f

  • ITMS Audio Quality - AAC128 vs. AAC128?

    Okay, something I'm noticing - when I purchase music from the iTMS, it's AAC 128, and occasionally some songs sound... well, like mp3 at 96k, or at least some parts, like drum cymbals (I know, a general issue with compression). But when I import a CD

  • Calibrated line segments

    Using Illustrator, how do I generate calibrated line segments, rather than a grid?