Dynamic Credential & WLS 10.3.5

Dear All
i cusomized the solution of Steve Muench regarding Dynamic Credential, and it was working fine on 11.1.1.4 stand alone wls.
i upgraded to use JDeveloper 11.1.2 & 11.1.1.5 ADF
Dynamic Credential work well if i run my app in JDeveloper (Integrated wls), but after deployment on my stand alone wls (10.3.5 & 11.1.1.5 ADF) , iam facing below error
Watch 'UncheckedException' with severity 'Notice' on server 'Tawuniya-2' has triggered at Jul 13, 2011 11:48:30 AM EDT. Notification details: WatchRuleType: Log WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'WL-101020') OR (MSGID = 'WL-101017') OR (MSGID = 'WL-000802') OR (MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802')) WatchData: DATE = Jul 13, 2011 11:48:30 AM EDT SERVER = Tawuniya-2 MESSAGE = [ServletContext@268349290[app:MEDGOWEB module:MEDGO path:/MEDGO spec-version:2.5]] Root cause of ServletException. java.lang.NoClassDefFoundError: oracle/adfinternal/model/dvt/util/transform/total/TotalData at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:630) at java.lang.ClassLoader.defineClass(ClassLoader.java:614) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343) at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) at java.lang.ClassLoader.loadClass(ClassLoader.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:246) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:630) at java.lang.ClassLoader.defineClass(ClassLoader.java:614) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343) at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) at java.lang.ClassLoader.loadClass(ClassLoader.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:246) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:630) at java.lang.ClassLoader.defineClass(ClassLoader.java:614) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343) at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) at java.lang.ClassLoader.loadClass(ClassLoader.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:246) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) at oracle.adfinternal.view.faces.dvt.model.binding.FacesBindingFactory.createControlDef(FacesBindingFactory.java:37) at oracle.adfinternal.view.faces.dvt.model.binding.FacesBindingFactory.createDefinition(FacesBindingFactory.java:31) at oracle.adf.model.binding.DCDefBase.createAndLoadFromXML(DCDefBase.java:386) at oracle.adf.model.binding.DCBindingContainerDef.loadControlDefs(DCBindingContainerDef.java:1656) at oracle.adf.model.binding.DCBindingContainerDef.loadChildrenFromXML(DCBindingContainerDef.java:1274) at oracle.adf.model.binding.DCDefBase.loadFromXML(DCDefBase.java:325) at oracle.adf.model.binding.DCDefBase.createAndLoadFromXML(DCDefBase.java:409) at oracle.jbo.uicli.mom.JUMetaObjectManager.createFromXML(JUMetaObjectManager.java:1274) at oracle.jbo.mom.PersistableDefObject.createFromXML(PersistableDefObject.java:84) at oracle.jbo.mom.DefinitionManager.loadDefObject(DefinitionManager.java:951) at oracle.jbo.mom.DefinitionManager.doFindSessionDefObject(DefinitionManager.java:1027) at oracle.jbo.mom.DefinitionManager.findSessionDefObject(DefinitionManager.java:695) at oracle.adf.model.binding.DCBindingContainerDef.findSessionDefObject(DCBindingContainerDef.java:351) at oracle.adf.model.binding.DCBindingContainerDef.findDefObject(DCBindingContainerDef.java:316) at oracle.adf.model.binding.DCBindingContainerReference.getDef(DCBindingContainerReference.java:110) at oracle.adf.model.BindingContext.findBindingContainerDefByPath(BindingContext.java:1645) at oracle.adf.controller.internal.binding.RegionUtils.getBindingContainerDef(RegionUtils.java:332) at oracle.adf.controller.internal.security.AuthorizationEnforcer.getBindingContainerDef(AuthorizationEnforcer.java:520) at oracle.adf.controller.internal.security.AuthorizationEnforcer.checkPermission(AuthorizationEnforcer.java:129) at oracle.adfinternal.controller.activity.ViewActivityLogic.checkReadPermission(ViewActivityLogic.java:600) at oracle.adfinternal.controller.activity.ViewActivityLogic.execute(ViewActivityLogic.java:126) at oracle.adfinternal.controller.engine.ControlFlowEngine.executeActivity(ControlFlowEngine.java:1035) at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:926) at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:824) at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:554) at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:158) at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleAdfcNavigation(NavigationHandlerImpl.java:115) at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:84) at org.apache.myfaces.trinidadinternal.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:50) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:965) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:65) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173) at test.DynamicJDBCBindingFilter.doFilter(DynamicJDBCBindingFilter.java:112) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:121) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) SUBSYSTEM = HTTP USERID = <WLS Kernel

Dear vinod
in old problem, i faced the issue in javax.servlet.ServletException: java.lang.NoClassDefFoundError: oracle/dss/util/transform/total/TotalData
but now Root cause of ServletException. java.lang.NoClassDefFoundError: oracle/adfinternal/model/dvt/util/transform/total/TotalData at java.lang.ClassLoader.defineClass1
please advise

Similar Messages

  • JDBC Dynamic Credential with proxy users

    Hi
    We've developed an application with Business Components and it's been working very well. We're using JDBC Dynamic Credential like explain the document (How to Support JDBC Dynamic Credentials - http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html). Now we want to use proxy users with JDBC Dynamic Credentials. How can we
    user proxy users with JDBC Credentials? What classes or parameters we need to change?
    I've been tested proxy users a lot, but in simple java classes, I don't know where to set some parameters in business components, for example, where can I set the following parameters?:
    OracleOCIConnectionPool.PROXY_USER_NAME
    OracleOCIConnectionPool.PROXYTYPE_USER_NAME
    Thanks in advance
    Liceth

    Hi Frank, thanks again
    Now we are using JDBC Credentials(like explain the paper http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html), every user connects to the application with a diferent database user and password, then at database level the administrator can see diferents usernames (not the same user). Every application user correspond to a database user, relation one to one. The application works fine with that configuration. But, now for performance we want to change our application to use proxy users, I read that with proxy users redirectec to a single user, then the pooling connections are well reused, and at database level you have diferent usernames. Our principal goal is use pooling (for performance) and see diferent usernames at database level, this for facilitate administration tasks and auditory .
    We want that the application user autenticate with proxy users (username and password) but we have some problems because we don't know where specify that we're using proxy users. (The parameters OracleOCIConnectionPool.PROXY_USER_NAME
    OracleOCIConnectionPool.PROXYTYPE_USER_NAME).
    We want open our connections with the following code:
    OracleOCIConnectionPool ods = new OracleOCIConnectionPool();
    ods.setURL("jdbc:oracle:oci:@"+tnsAlias);
    ods.setUser("user_application");
    ods.setPassword("oracle");
    java.util.Properties prop = new java.util.Properties();
    prop.setProperty(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT,"3");
    prop.setProperty(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT,"20");
    prop.setProperty(OracleOCIConnectionPool.CONNPOOL_INCREMENT,"1");
    ods.setPoolConfig(prop);
    java.util.Properties userNameProp = new java.util.Properties();
    userNameProp.setProperty(OracleOCIConnectionPool.PROXY_USER_NAME,"Mark/123");
    Connection conn = ods.getProxyConnection(OracleOCIConnectionPool.PROXYTYPE_USER_NAME,userNameProp);
    with other user
    userNameProp.setProperty(OracleOCIConnectionPool.PROXY_USER_NAME,"Marty/123d");
    Connection conn = ods.getProxyConnection(OracleOCIConnectionPool.PROXYTYPE_USER_NAME,userNameProp);
    Thanks in advance
    Liceth

  • Dynamic Connection Pool fails in WLS 6.1

    Hi all,
    I am trying to create the connection pool dynamically but it fails saying " Error
    to load the Driver"
    Snippet Code --
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    // URL for the WebLogic Server
    env.put(Context.PROVIDER_URL, "t3://localhost:7001");
    env.put(Context.SECURITY_PRINCIPAL, "Fred");
    env.put(Context.SECURITY_CREDENTIALS, "secret");
    Context ctx = new InitialContext(env);
    // Look up weblogic.jdbc.JdbcServices
    weblogic.jdbc.common.JdbcServices jdbc =
    (weblogic.jdbc.common.JdbcServices)
    ctx.lookup("weblogic.jdbc.JdbcServices");
    String thePoolName = "eng2";
    Properties poolProps = null;
    Pool myPool = null;
    weblogic.jdbc.common.Pool pool = null
    poolProps = new Properties();
    // Set properties for the ConnectionPool.
    poolProps.put("poolName", thePoolName);
    poolProps.put("url", "jdbc:weblogic:demo");
    poolProps.put("driver", "COM.cloudscape.core.JDBCDriver");
    poolProps.put("props", "user=scott;password=tiger;server=demo");
    poolProps.put("initialCapacity", "1");
    poolProps.put("maxCapacity", "10");
    poolProps.put("capacityIncrement", "1");
    poolProps.put("aclName", "dynapool");
    poolProps.put("allowShrinking", "true");
    poolProps.put("shrinkPeriodMins", "5");
    poolProps.put("refreshPeriod", "10");
    poolProps.put("testConnOnReserve", "true");
    poolProps.put("testConnOnRelease", "false");
    poolProps.put("testTableName", "dual");
    poolProps.put("loginDelaySecs", "1");
    // create our pool
    try {
    myJdbc.createPool(poolProps);
    } catch (Exception e) {
    System.out.println(thePoolName
    + " can't be created ..");
    System.exit(666);
    Any Help will be appreciated in creating the dynamic connection pool in WLS 6.1 SP2
    Regards,
    Bala

    Bala wrote:
    Hi joe,
    Any how let me want to create the Connections Pool Dynamically in WLS 6.1 .Pls
    give some ideas / ways to proceeed further
    Thx
    BalaFirst I need the answer to my question:
    Hi. Can the same pool be created as a startup pool?
    (Ie: does it succeed?)
    Joelet me know...
    Joe
    >
    >>
    Bala wrote:
    Hi all,
    I am trying to create the connection pool dynamically but it fails saying" Error
    to load the Driver"
    Snippet Code --
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    // URL for the WebLogic Server
    env.put(Context.PROVIDER_URL, "t3://localhost:7001");
    env.put(Context.SECURITY_PRINCIPAL, "Fred");
    env.put(Context.SECURITY_CREDENTIALS, "secret");
    Context ctx = new InitialContext(env);
    // Look up weblogic.jdbc.JdbcServices
    weblogic.jdbc.common.JdbcServices jdbc =
    (weblogic.jdbc.common.JdbcServices)
    ctx.lookup("weblogic.jdbc.JdbcServices");
    String thePoolName = "eng2";
    Properties poolProps = null;
    Pool myPool = null;
    weblogic.jdbc.common.Pool pool = null
    poolProps = new Properties();
    // Set properties for the ConnectionPool.
    poolProps.put("poolName", thePoolName);
    poolProps.put("url", "jdbc:weblogic:demo");
    poolProps.put("driver", "COM.cloudscape.core.JDBCDriver");
    poolProps.put("props", "user=scott;password=tiger;server=demo");
    poolProps.put("initialCapacity", "1");
    poolProps.put("maxCapacity", "10");
    poolProps.put("capacityIncrement", "1");
    poolProps.put("aclName", "dynapool");
    poolProps.put("allowShrinking", "true");
    poolProps.put("shrinkPeriodMins", "5");
    poolProps.put("refreshPeriod", "10");
    poolProps.put("testConnOnReserve", "true");
    poolProps.put("testConnOnRelease", "false");
    poolProps.put("testTableName", "dual");
    poolProps.put("loginDelaySecs", "1");
    // create our pool
    try {
    myJdbc.createPool(poolProps);
    } catch (Exception e) {
    System.out.println(thePoolName
    + " can't be created ..");
    System.exit(666);
    Any Help will be appreciated in creating the dynamic connection pool inWLS 6.1 SP2
    Regards,
    Bala

  • Supporting of dynamic bc4j credential

    I like to know if a locally deployed bc4j supports dynamic credential. That is, setting the jbo.security.enforce to Must and use the default login window.
    If yes, what other steps should I do ?

    Stephen,
    Yes. If you already have a local bc4j app module with jbo.security.enforce set to Must, you could just deploy it to an OC4J instance. You could use tester and run this remote appmodule or create a Jclient or jsp app that uses this remote application module.
    My suggestion is test the dynamic credential on the local app module first.
    Thanks,
    Yvonne

  • Dynamic JDBC credentials example application from Steve Muench

    Apologies for this newbie question...but I'm trying to understand the Dynamic JDBC credentials example application from Steve Muench:
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
    I think I understand most of it but the one bit I dont understand is why it customizes the ADF Page Lifecycle (DynamicJDBCADFPhaseListener, DynamicJDBCPageLifecycle, DynamicJDBCPageLifecycleContext).
    Can anyone explain to an ex-forms developer why this code is there?
    I'm also trying to work out a way for the session to be invalidated when the user logins again
    e.g. a user logins, he doesnt use the logout function but uses the back button to go back to the login page. when he logs in with another set of credentials, would a new session start or as i supsect, it would use the original login credentials?
    Thanks

    You can ignore those three classes in the example. They are not related to the dynamic credential solution, and must have been left over from some other example I evolved into what you see. Sorry to have cluttered up the implementation with stuff that isn't really contributing to the actual solution. DOH!

  • [SOLVED]JDBC Dynamic credentials problem

    Hello everyone. I have been trying to implement Steve Muench example 14 about JDBC Dynamic Credentials on my own web app., I am using Jdeveloper 10.1.3.2 and JSF/ADF.
    The thing is that the JDBC dynamic credential works well but when I enter a non-existant username/password the login.jsp page sends me to the main.jsp page and in the table that I have placed there (in the main.jsp page) it shows "Access Denied". Is there any way to tell the app. to redirect the users to the login.jsp page if they try to acces other parts of the app. and they are not logged in???, or is it thay I am missing something from the Steve Muench's example???
    I have been cheking the "DynamicJDBCBindingFilter.java" code and, if I understand correctly ('cause I consider myself a newbe), the "super.doFilter(request, response,chain)" is suppoused to throw an exception if the authentication fails and the "catch" code then sends the user to the login.jsp page... but for some reason this doesn't work!!!
    Can anybody help me on this one please?
    Thanks.
    * By the way, no errors are thrown!
    Message was edited by:
    dragonov7

    Hi Frank, thanks for your response. That same idea crossed my mind but the thing is that the line "super.doFilter(request, response,chain);" is supouseded to throw an exception if it fails to do its job but for some reason it does not... I have placed a "System.out.printline("XXX");" line inmediatly after the "catch" statement to see if an exception is thrown but apparently it doesn't, so I can't set a flag if I don't know for sure if the process ended well (or wrong).
    I think I'll clear my mind for 1 hour and start all over again... maybe I am missing something...

  • I want to save the log in username

    Dear all
    I have a complicated problem.I will explain it in four steps.
    1- My application authentication depends on database users. I mean , the users who log in to the application are actually database users.
    Every table contains "CREATED_BY" column. And this column is auto populated by database trigger
    :NEW.CREATED_BY := USER;For example : Account "Tarek" is for an employee tarek . and this account is actually a database user . User "HR" is the schema owner. "HR" grants select ,insert on HR.Employee to user "Tarek".
    In order to save the username "Tarek" who log in the application , I have to implement dynamic credential. And In fact I succeeded to do this using the following demo
    [11g dynamic credential|http://www.4shared.com/rar/ektOYBXl/11gDynamicCredentials_2.html]
    Until this point I managed to save the username "Tarek" who log in the application instead of "HR"
    2- The problem happens when i decided to integrate my ADF application with another one .
    My application name is "HrMainApplication" , implements dynamic credentials and connects to HR schema with application module "MainAppModule".
    The Other application name is "PayrollApplication" , it does not implement dynamic credential , it only contains one bounded task flow"payroll-flow" with page fragment, and it connects to the same HR schema with application module name "PayRollAppModule"
    3- I deployed "PayrollApplication" as adf jar library.
    4- I added this jar to the main application "HrMainApplication"
    5- I added the "payroll-flow" taskflow as a region in Main.jspx in the main application
    6-Now I run the Login page and i connected using user "Tarek" and go to the main page.
    7*-I inserted a new row and I hit commit . Data is now saved. But "Created_by" field value is "HR" not "Tarek".*
    This is the problem
    It seems that the "PayrollApplication" still connects to the database useing HR user not "tarek"
    Should I re-implement dynamic credential in "PayrollApplication" again. And if so , how can I pass the login username to the application.
    Thanks

    Hi user,
    Welcome to OTN world.Always share your Jdev version.
    Why are you not storing the login user name into a session variable and store it into your table.

  • Crystal Report Viewer Credential Prompt for Report with Dynamic Parameters

    The .NET Crystal Report Viewer is prompting for database credentials when launching a report containing dynamic parameters. This only occurs for reports created with SAP Crystal Reports 2011 designer. Reports created with Crystal Reports XI designer (where dynamic parameters were first introduced) work correctly.
    The credential prompt window contains the following fields:
    - Server Name: <server name> (disabled)
    - Database Name: <database name> (disabled)
    - User Name: <empty> (enabled)
    - Password: <empty> (enabled)
    - Use Single Signon Key: false (disabled)
    The values in the prompt window which are disabled are the database connection values used during the design of the report in the SAP Crystal Reports 2011 designer.
    Expected Result:
    - No prompt for database credentials.
    - Values read from the database should be populated in a drop down for the dynamic parameters.
    Environment:
    - Visual Studio 2010 (C#)
    - Windows 7 Enterprise
    - SAP Crystal Reports runtime engine for .NET Framework 4
    - SAP Crystal Reports, version for Visual Studio 2010
    - SAP Crystal Reports 2011
    The database connection is being set to use a DSN. It must be a DSN as the calling application is only aware of the DSN/Username/Password values. These values are being passed to the Crystal Report Viewer contained in a Windows form.
    The database connection for the report is being set as follows:
    foreach (InternalConnectionInfo internalConnectionInfo in this.report.DataSourceConnections)
        // Must set the UseDSNProperties flag to True before setting the database connection otherwise the connection does not work
        if (internalConnectionInfo.LogonProperties.ContainsKey("UseDSNProperties"))
            internalConnectionInfo.LogonProperties.Set("UseDSNProperties", true);
        // Supposed to set the database connection for all objects in the report (ie. main report, tables, sub reports)
        internalConnectionInfo.SetConnection(this.DSN, string.Empty, this.LoginName, this.Password);
    The SetConnection method's signature is as follows:
       SetConnection(string server, string database, string name, string password)
    As you can see from the code snippet above I am setting the DSN name as the server parameter, blank for the database parameter (a database connection using DSN should only require DSN name/Username/Password) and the database username and password respectively.
    Is this a SAP bug?
    Is this the correct way of setting the database connection to use a DSN?
    Is there some other properties that need to be set somewhere else in the report through code?
    Any help would be greatly appreciated.

    Thanks for the pointer to the database connection code generator. After taking a look at the output from the tool I was able to finally get the dynamic parameters to load and populate properly without prompting for credentials. I needed to tweak the outputted code a bit to match my requirements of using a DSN only connection.
    Instead of updating the database connection properties contained within the Report.Database.Tables collection from the CrystalReports.Engine namespace, I changed it to replace the database connection properties in the Report.ReportClientDocument.DatabaseController.Database.Tables collection from the CrystalDecisions.ReportAppServer.DataDefModel namespace. For one reason or another, using the RAS namespace solved the problem.
    Below is the updated code with the change made:
    using RAPTable = CrystalDecisions.ReportAppServer.DataDefModel.Table;
    foreach (InternalConnectionInfo internalConnectionInfo in this.report.DataSourceConnections)
        // Must set the UseDSNProperties flag to True before setting the database connection
        if (internalConnectionInfo.LogonProperties.ContainsKey("UseDSNProperties"))
            internalConnectionInfo.LogonProperties.Set("UseDSNProperties", true);
        // Sets the database connection for all objects in the report (ie. main report, tables, sub reports)
        internalConnectionInfo.SetConnection(this.DSN, string.Empty, this.LoginName, this.Password);
    // The attributes for the QE_LogonProperties which is part of the main property bag
    PropertyBag innerPropertyBag = new PropertyBag();
    innerPropertyBag.Add("DSN", this.DSN);
    innerPropertyBag.Add("UserID", this.LoginName);
    innerPropertyBag.Add("Password", this.Password);
    innerPropertyBag.Add("UseDSNProperties", "true");
    // The attributes collection of the tables ConnectionInfo object
    PropertyBag mainPropertyBag = new PropertyBag();
    mainPropertyBag.Add("Database DLL", "crdb_ado.dll");
    mainPropertyBag.Add("QE_DatabaseType", "OLE DB (ADO)");
    mainPropertyBag.Add("QE_LogonProperties", innerPropertyBag);
    // Pass the database properties to a connection info object
    ConnectionInfo connectionInfo = new ConnectionInfo();
    connectionInfo.Attributes = mainPropertyBag;
    connectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE;
    connectionInfo.UserName = this.LoginName;
    connectionInfo.Password = this.Password;
    // Replace the database connection properties of each table in the report
    foreach (RAPTable oldTable in this.report.ReportClientDocument.DatabaseController.Database.Tables)
        RAPTable table = new RAPTable();
        table.ConnectionInfo = connectionInfo;
        table.Name = oldTable.Name;
        table.QualifiedName = oldTable.QualifiedName;
        table.Alias = oldTable.Alias;
        this.report.ReportClientDocument.DatabaseController.SetTableLocation(oldTable, table);
    this.report.VerifyDatabase();
    Thanks again Ludek for the help.

  • Steve Muenchs "Dynamic JDBC" on WLS 11g (10.3.1)?

    Hi,
    I try to run Steves Example "11g Dynamic JDBC Credentials for Model 1, Struts, Trinidad, and ADF Faces Rich Client" on Standalone WLS 11g (10.3.1) but it doesn't works... on integrated WLS it runs without problems. The WLS-Log shows:
    Modul:     oracle.adf.mbean.share.config.ADFConfigLifeCycleCallBack
    Message:     Failed to create config mbean.
    details: java.lang.Exception: oracle.mds.core.MetadataNotFoundException: MDS-00013: No Metadate for Metaobject "/META-INF/adf-config.xml" found.
    Does somebody have the example to run brought? Or if new settings are necessary for the example on WLS 11g?
    Kind regards
    Martin

    Hi,
    since Steve's solution has nothing to do with the adf-config, I suggest you create a simple testcase that reproduces the problem. It appears as if the ADF binding is not set up properly
    Frank

  • Set timeout for dynamic web service call in wls

    Hi,
    I have a dynamic client using Call interface to invoke 3rd party web service. How can I set the timeout for the call? I know there is a property to set for static client.
    Thanks

    Have you checked out the stub properties:
    weblogic.wsee.transport.connection.timeout
    weblogic.wsee.transport.read.timeout
    http://edocs.beasys.com/wls/docs92/webserv/client.html#wp228628

  • WLS - MDB & Credential Mappings

    Hi all,
    I've an EAR application that contains some MDB EJBs and for MDB authentication I configured for each of them the Credential Mappings tab under Security section.
    It works well. For the configuration I used the WLS console but now I need to automatize this process. I've stored those credential mappings info in a properties file and I'm trying to find out how to use WLST to create/update directly the MDB credential mappings.
    Do you sugget to do that in a different way without using WLST ? We have different environments where we have to promote the sw and doing that manually could introduce mistakes ...
    Do you have any example or hint ?
    Thanks in advance
    ferp

    Hi all,
    I've an EAR application that contains some MDB EJBs and for MDB authentication I configured for each of them the Credential Mappings tab under Security section.
    It works well. For the configuration I used the WLS console but now I need to automatize this process. I've stored those credential mappings info in a properties file and I'm trying to find out how to use WLST to create/update directly the MDB credential mappings.
    Do you sugget to do that in a different way without using WLST ? We have different environments where we have to promote the sw and doing that manually could introduce mistakes ...
    Do you have any example or hint ?
    Thanks in advance
    ferp

  • WLS 5.1 Cluster - Dynamic Server List

              Hi all,
              I have multiple (more than 4) servers in a cluster on a WLS5.1, Netscape web server/Proxy-plugin
              on a Solaris environment - each running on separate boxes.
              Is there a way I can dynamically (run-time) take one server out of the cluster
              (READ: Not shutting it down. Just taking it out of the cluster ONLY - it still
              needs to be up for me to do some diagnostics on that server).
              I have seen docs on doing it thru the Admin Console in WLS 6.X. What about 5.1
              Thanks in advance for your help,
              Nanjan
              

    On Unix you can also unplug the IP:port combo at the OS level ... but I
              can't remember the command.
              Peace,
              Cameron Purdy
              Tangosol Inc.
              << Tangosol Server: How Weblogic applications are customized >>
              << Download now from http://www.tangosol.com/download.jsp >>
              "Mike Reiche" <[email protected]> wrote in message
              news:3baf9a60$[email protected]..
              >
              > Physically unplug it from the netwok.
              >
              > Mike
              >
              > "Nanjan Selvaraj" <[email protected]> wrote:
              > >
              > >Hi all,
              > >
              > >I have multiple (more than 4) servers in a cluster on a WLS5.1, Netscape
              > >web server/Proxy-plugin
              > >on a Solaris environment - each running on separate boxes.
              > >
              > >Is there a way I can dynamically (run-time) take one server out of the
              > >cluster
              > >?
              > >
              > >(READ: Not shutting it down. Just taking it out of the cluster ONLY -
              > >it still
              > >needs to be up for me to do some diagnostics on that server).
              > >
              > >I have seen docs on doing it thru the Admin Console in WLS 6.X. What
              > >about 5.1
              > >?
              > >
              > >Thanks in advance for your help,
              > >Nanjan
              >
              

  • WLS 11g. Dynamic webservice client. Input is complext type. Output String.

    Hi,
    I used Webservice annotations to generate a WS (as given in WLS documentation). I am creating a dynamic client but when I invoke the client I get error.
    @WebService(name="ErrorHandlerPortType", serviceName="ErrorHandlerService")
    public class ErrorHandler {
         @WebMethod()
         public String callErrorHandler(ErrorMessage message) {
              try {
                   System.out.println("Producer: " + message.getProducer());
                   return "Here is the descirption: '" + message.getErrorDescription() + "'";
              } catch (Exception ex) {
                   ex.printStackTrace();
                   return "Caught Exception";
    public class ErrorMessage implements java.io.Serializable {
         private String consumer;
         private String producer;
         private String errorCode;
         private String errorDescription;
    WSLD which got generated.
    - <WL5G3N0:definitions name="ErrorHandlerServiceDefinitions" targetNamespace="http://katz/integration/esb/errorhandling/ws" xmlns="" xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/" xmlns:WL5G3N1="http://katz/integration/esb/errorhandling/ws" xmlns:WL5G3N2="http://schemas.xmlsoap.org/wsdl/soap/">
    - <WL5G3N0:types>
    - <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://katz/integration/esb/errorhandling/ws" xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/" xmlns:WL5G3N1="http://katz/integration/esb/errorhandling/ws" xmlns:WL5G3N2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="java:katz.integration.esb.errorhandling.datatype" />
    - <xs:element name="callErrorHandler">
    - <xs:complexType>
    - <xs:sequence>
    <xs:element name="message" type="java:ErrorMessage" xmlns:java="java:katz.integration.esb.errorhandling.datatype" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    - <xs:element name="callErrorHandlerResponse">
    - <xs:complexType>
    - <xs:sequence>
    <xs:element name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    - <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="java:katz.integration.esb.errorhandling.datatype" xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/" xmlns:WL5G3N1="http://katz/integration/esb/errorhandling/ws" xmlns:WL5G3N2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    - <xs:complexType name="ErrorMessage">
    - <xs:sequence>
    <xs:element minOccurs="1" name="Consumer" nillable="true" type="xs:string" />
    <xs:element minOccurs="1" name="Producer" nillable="true" type="xs:string" />
    <xs:element minOccurs="1" name="ErrorCode" nillable="true" type="xs:string" />
    <xs:element minOccurs="1" name="ErrorDescription" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </WL5G3N0:types>
    - <WL5G3N0:message name="callErrorHandler">
    <WL5G3N0:part element="WL5G3N1:callErrorHandler" name="parameters" />
    </WL5G3N0:message>
    - <WL5G3N0:message name="callErrorHandlerResponse">
    <WL5G3N0:part element="WL5G3N1:callErrorHandlerResponse" name="parameters" />
    </WL5G3N0:message>
    - <WL5G3N0:portType name="ErrorHandlerPortType">
    - <WL5G3N0:operation name="callErrorHandler" parameterOrder="parameters">
    <WL5G3N0:input message="WL5G3N1:callErrorHandler" />
    <WL5G3N0:output message="WL5G3N1:callErrorHandlerResponse" />
    </WL5G3N0:operation>
    </WL5G3N0:portType>
    - <WL5G3N0:binding name="ErrorHandlerServiceSoapBinding" type="WL5G3N1:ErrorHandlerPortType">
    <WL5G3N2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    - <WL5G3N0:operation name="callErrorHandler">
    <WL5G3N2:operation style="document" />
    - <WL5G3N0:input>
    <WL5G3N2:body parts="parameters" use="literal" />
    </WL5G3N0:input>
    - <WL5G3N0:output>
    <WL5G3N2:body parts="parameters" use="literal" />
    </WL5G3N0:output>
    </WL5G3N0:operation>
    </WL5G3N0:binding>
    - <WL5G3N0:service name="ErrorHandlerService">
    - <WL5G3N0:port binding="WL5G3N1:ErrorHandlerServiceSoapBinding" name="ErrorHandlerPortTypeSoapPort">
    <WL5G3N2:address location="http://127.0.0.1:7100/ErrorHandlingWebservice/ErrorHandler" />
    </WL5G3N0:port>
    </WL5G3N0:service>
    Client Code:
    QName serviceName = new QName("http://katz/integration/esb/errorhandling/ws","ErrorHandlerService");
         ServiceFactory factory = ServiceFactory.newInstance();
         Service service = factory.createService(serviceName);
         QName port = new QName(qnamePort);
         Call call = service.createCall();
         QName operationName = new QName("http://katz/integration/esb/errorhandling/ws","callErrorHandler");
    call.setOperationName(operationName);
    QName messageDatatype = new QName("java:katz.integration.esb.errorhandling.datatype");
    call.addParameter("message", messageDatatype, ErrorMessage.class, ParameterMode.IN);
    call.setReturnType(XMLType.XSD_STRING);
    call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,URI_ENCODING);
                        call.setTargetEndpointAddress(endpoint);
                        ErrorMessage errMsg = FormErrorMessage.getMessage("EXCEL", "PMM", "EXL123", "Trial Error Message");
                        System.out.println("Going to invoke......");
                        Object[] params = { errMsg };
                        Double result = (Double)call.invoke(params);
    I am getting the error:
    javax.xml.rpc.JAXRPCException: failed to invoke operation 'callErrorHandler' due to an error in the soap layer (SAAJ); nested exception is: Message[ failed to serialize class katz.integration.esb.errorhandling.datatype.ErrorMessageweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=class katz.integration.esb.errorhandling.datatype.ErrorMessage class context=TypedClassContext{schemaType=java:katz.integration.esb.errorhandling.datatype}]StackTrace[
    javax.xml.soap.SOAPException: failed to serialize class katz.integration.esb.errorhandling.datatype.ErrorMessageweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=class katz.integration.esb.errorhandling.datatype.ErrorMessage class context=TypedClassContext{schemaType=java:katz.integration.esb.errorhandling.datatype}
         at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:339)
         at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:304)
         at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:651)
         at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:209)
    Please help. I have got stuck here for last couple of days.

    Hi,
    You can try to add this property setting in client code:
    System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.wsee.jaxrpc.ServiceFactoryImpl");
    Meanwhile, the line:
    QName messageDatatype = new QName("java:katz.integration.esb.errorhandling.datatype");
    should be:
    QName messageDatatype = new QName("java:katz.integration.esb.errorhandling.datatype", "ErrogMessage"); ?
    Thanks,
    Kevin

  • Dynamic JDBC credential insert ERORR

    Hi,
    I have ADF-JCLient application where I implemented dynamic JDBC credentials. BUT There is a PROBLEM :
    I created a conection to the database ( in "Connections" Tab) for the schema user1.
    And I'm using the connection for my ApplicationModule.
    When I enter in the application as "user2" I can't insert in the views with the error :
    "JBO-26041: Failed to post data to database during "Insert": SQL Statement "INSERT INTO Table1(ID,USER_ID,PCTL_ID) VALUES (:1,:2,:3)"
    As you see because I'm "user2" I need to prefix the table name in the insert statement with "user1.Table1"
    in order for the insert statement to work.
    SO What is needed is to add the schema name in all statements send to database. This should be done at the view Level with a parameter "Schema_name".

    You can add the schema name in the EO dialog to the tablename. Just change MY_TABLE to MY_SCHEMA.MY_TABLE.
    But i am not sure if this propagates into your VO XML files.
    Otherwise you can create public synonyms in the database for all tables in your schema, but i would not recommend this because you can run into conflicts with oter applications running in your database.

  • Dynamic BC4J JDBC credential problem

    I am using bc4j 9.0.3.1 and trying to dynamically change jdbc credentials and connect to different databases. I did everything as described in article "How to support Dynamic JDBC Credentials".
    I was able successfully connect from web application to database, but when I request ViewObject from app module - I got error "Error Message: JBO-25200: Application module is not connected to a database".
    What happened is following:
    My apps connect to database, it print following debug message:
    [458] Creating a new pool resource
    [459] Trying connection/2: url='jdbc:oracle:thin:@192.168.0.1:mxb' info='{user=carnegie, password=carnegie}' ...
    [460] Successfully logged in
    then in dubugger I see it calls ApplicationPoolImp class doFailover method and alwaus execute disconnect(appModule, true, cookie) method.
    I do not know why it disconnection itself from the database.
    // Store the passivation id on the application module cookie so that
    // we know the last passivation id.
    cookie.setPassivationId(passivationId);
    // After passivating the application module attempt to clean up any
    // records associated with previously passivated state. State may not be
    // removed if the VM instance has died (pass a previous state to this
    // method? Add logic to the application registry to handle this?).
    doPersistenceOperation(REMOVE_STATE, appModule, prevPassivationId, cookie);
    if (!wasConnected)
    // Always retain the state.
    disconnect(appModule, true, cookie);
    Final debug statements I got:
    [486] DefaultConnectionStrategy is disconnecting an application module connection
    [490] ViewObject close prepared statements...
    [491] ViewObject close prepared statements...
    [492] ViewObject close prepared statements...
    [493] ViewObject close prepared statements...
    [494] ViewObject close prepared statements...
    [495] ViewObject close prepared statements...
    [496] *** closing jdbc connection now **** (oracle.jdbc.driver.OracleConnection@ed)
    My problem - why it disconnection itself from the database after successfull connection? I want to use this connection for duration of the session.

    hi DAguirre
    I have found the class "oracle.jbo.http.HttpSessionCookieFactory" in these JAR files:
    <your-jdevstudio10133-dir>\BC4J\jlib\bc4jhtml.jar
    <your-jdevstudio10133-dir>\BC4J\lib\adfmweb.jar
    You could try to add one of these JAR files to your classpath.
    regards
    Jan Vervecken

Maybe you are looking for