Sdk 报告调度

Sdk 报告调度,sdk,scheduling,cognos,Sdk,Scheduling,Cognos,我已经编写了一个使用java与Cognos集成的SDK 这在正常使用cognos功能时工作正常。 但是,当我使用自定义名称空间直接登录到cognos并计划一个报告时,我得到了一个异常(se异常部分) 当我在谷歌上搜索这个异常时,我知道我的SDK代码应该生成TrustedCredentials才能运行scheudling。我在我的JDBCVisa课程中读到了这些代码。但我还是得到了同样的例外 请参见例外情况和JDBCVisa类别代码(特别是generateTrustedCredentials):

我已经编写了一个使用java与Cognos集成的SDK

这在正常使用cognos功能时工作正常。 但是,当我使用自定义名称空间直接登录到cognos并计划一个报告时,我得到了一个异常(se异常部分)

当我在谷歌上搜索这个异常时,我知道我的SDK代码应该生成TrustedCredentials才能运行scheudling。我在我的JDBCVisa课程中读到了这些代码。但我还是得到了同样的例外

请参见例外情况和JDBCVisa类别代码(特别是generateTrustedCredentials):

例外情况 ================================================================================================================CM-CAM-4005无法进行身份验证。检查您的安全目录 服务器连接并确认在中输入的凭据 login.errorcamAuthUnrecoverableCAM-AAA-0194对命名空间的身份验证 &载脂蛋白;xxx'失败。CAM-AAA-0180第三方提供程序返回了 用户可恢复异常。1提供的凭据 无效。无法对用户进行身份验证。请联系 你的安全 管理员 SOAP-ENC:arrayType=“cm:baseClass[0]”>
异常在哪一行抛出?我猜您已经确保使用了有效的凭据(即,在运行时在代码中检查它们,并确保它们符合您的预期)。如果它们应该与我在og登录cognos时传递的用户和密码相同,那么是的,我将在generatedTrustedCredential函数中获取这些凭据。不确定哪一行抛出错误,因为我在Cognos运行调度时得到异常,而我在日志文件中什么也没有得到。是我,还是您只是实例化了一个新的空TrustedCredential对象,并试图将其用作上面源中的受信任凭据?用户名和密码行已注释掉。否。。添加用户名和密码的代码在实际代码行中未注释。我想问的一件事是,这应该是哪个用户。这应该是“应用程序用户”。在我的场景中,这是一个在cognos中有权调度报告的应用程序用户。还有什么我需要关心的吗?我也有问题和解决办法。问题是生成可信凭证的代码没有问题,但在登录时使用这些凭证的代码不合适。当我做了更正后,日程安排开始起作用。谢谢大家的帮助。
public ITrustedCredential generateTrustedCredential(
    IBiBusHeader theAuthRequest) throws UserRecoverableException,
    SystemRecoverableException, UnrecoverableException
{
    CreateLog.LogMsg("generateTrustedCredential: Called  ");
    boolean isValidCredentials = true;
    String[] theUsername = null;
    String[] thePassword = null;

    // 1 - Look for credentials coming from SDK request
    theUsername = theAuthRequest.getCredentialValue("username");
    thePassword = theAuthRequest.getCredentialValue("password");

    if (theUsername == null && thePassword == null)
    {
        // 2 - Look for credentials in formfield
        theUsername = theAuthRequest.getFormFieldValue("CAMUsername");
        thePassword = theAuthRequest.getFormFieldValue("CAMPassword");
    }

    if (theUsername != null && theUsername.length == 1
        && theUsername[0].equals(username) && thePassword.length == 1)
    {
        isValidCredentials = this.validateConnection(theUsername[0], thePassword[0]);
    }
    else
    {
        isValidCredentials = this.validateConnection(this.username, this.password);
    }

    if (!isValidCredentials)
    {
        CreateLog.LogMsg("generateTrustedCredential: Invalid credos  ");
        UserRecoverableException e = new UserRecoverableException(
            "Please type your credentials for authentication.",
            "The provided credentials are invalid.");

        e.addDisplayObject(new ReadOnlyDisplayObject("User ID:",
            "CAMUsername", this.username));
            e.addDisplayObject(new TextNoEchoDisplayObject("Password:",
            "CAMPassword"));

        throw e;
    }

    TrustedCredential tc = new TrustedCredential();
    //tc.addCredentialValue("username", username);
    //tc.addCredentialValue("password", password);
    CreateLog.LogMsg("generateTrustedCredential: Successful  ");
    return tc;
}