Oracle 定制工作列表 portlet 中的验证服务中存在无效令牌错误



我正在使用Oracle WebCenter Portal,SOA/BPEL。我按照此处的准则创建了一个自定义工作清单应用程序 (portlet

(:

甲骨文文档

它显示为 Portlet,因此部署很好。当我访问此 portlet 页面时,它给了我以下错误。

ORABPEL-30503:验证服务中的令牌错误无效。无效 验证服务中的令牌错误。收到的令牌无效 获取令牌类型。验证是否传递了正确的令牌

这是我的代码片段,下面是完整的堆栈跟踪。

Map<IWorkflowServiceClientConstants.CONNECTION_PROPERTY, String> properties = new HashMap<IWorkflowServiceClientConstants.CONNECTION_PROPERTY, String>();
properties.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.CLIENT_TYPE, WorkflowServiceClientFactory.SOAP_CLIENT);
properties.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.SOAP_END_POINT_ROOT, "http://<hostname>:<port>");
IWorkflowServiceClient  wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT,properties, null);
ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();
IWorkflowContext wfCtx = querySvc.authenticate(userName,password.toCharArray(),null);

我认为代码是正确的,因为如果我使用不正确的凭据,它会给出"身份验证用户时出错"。但是当我使用正确的凭据时,它会给出:

SEVERE: <.> getTokenType: invalid token: a0a4daf4-33ad-4bdf-91d0-c7e22e70efc9;;W3JtvUSwovCa7zQLbYhVjAB8yAfYcPrl6iECyPso9bjnlUp6qzy50EApOPEQmV/3nKWySh+41yNhD4Rl8Ati72glbm1DL6wm/6Kc0nwkXCZaBFE13wFClSdg4m1a4CBqeAEC6TWNdV45mB9popu3phvDTl8LKbfq3mBv/MHTAWSmY/XnqSF+nVtH/Hq3wTOLMQ73aonamjhuKGDzVfFk6pogBKXBOqPZnbhTjfLeu/oGeBjLkwWdIC0F0wrohjgL SEVERE: <.> Invalid Token Error in Verification Service. Invalid Token Error in Verification Service. Received invalid token in getTokenType. Verify that correct token is passed.
ORABPEL-30503
Invalid Token Error in Verification Service. Invalid Token Error in Verification Service. Received invalid token in getTokenType. Verify that correct token is passed.
    at oracle.bpel.services.workflow.verification.impl.Token.getTokenType(Token.java:545)   at oracle.bpel.services.workflow.verification.impl.Token.<init>(Token.java:188)     at oracle.bpel.services.workflow.verification.impl.WorkflowContext.getWorkflowContextFromJAXBObject(WorkflowContext.java:795)   at oracle.bpel.services.workflow.verification.impl.WorkflowContext.getWorkflowContextFromElement(WorkflowContext.java:746)  at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.authenticate(AbstractDOMTaskQueryServiceClient.java:186)    at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.authenticate(AbstractDOMTaskQueryServiceClient.java:205)    at com.kpit.cams.UAPWorklistMain.main(UAPWorklistMain.java:329)

以下来自 Oracle 支持文档的解决方案为我解决了这个问题。总之,是服务器和 jdev 之间的 jar 不匹配导致了这个问题。

====

==================================================================================

您无法成功获取 BPM 上下文。检索上下文时不会有异常,但在尝试使用它时,您会看到异常:BPM-70684

异常异常.70684.type: 错误异常.70684.严重性: 2 exception.70684.name:身份验证上下文无效。 异常.70684.说明: 已传递无效的身份验证上下文。

异常.70684.修复: 确保传递有效的身份验证上下文。

已知以下异常与同一问题相关联:由: java.lang.NullPointerException at oracle.bpel.services.workflow.verification.impl.WorkflowContext.hashCode(WorkflowContext.java:583( at java.util.HashMap.get(HashMap.java:300( at oracle.bpel.services.workflow.common.ThreadLocalCache.isContextValidated(ThreadLocalCache.java:146( at oracle.bpel.services.workflow.verification.impl.VerificationService.validateNotNullWorkflowContext(VerificationService.java:1824( at oracle.bpel.services.workflow.verification.impl.VerificationService.validateContext(VerificationService.java:1806(

使用 adminContext 代表用户 weblogic 进行身份验证时出错 [user=null][sessionKey=null][token=null][requester=null]

[objectId=null] <<.> 验证服务无法解析用户身份。在身份存储库中找不到用户空。工作流上下文令牌在请求中不能为 null。

奥拉贝尔-30511

验证服务无法解析用户身份。在身份存储库中找不到用户空。工作流上下文令牌在请求中不能为 null。

at oracle.bpel.services.workflow.verification.impl.LocalCacheManager.lookupUser(LocalCacheManager.java:600(

原因:ORABPEL-10501

非法争论。非法争论。这是因为意外值(可能是 null(作为参数传递。检查错误堆栈并修复错误原因。如果错误无法修复,请联系 Oracle 支持服务。

at oracle.tip.pc.services.identity.jps.AuthorizationServiceImpl.lookupUser(

AuthorizationServiceImpl.java:236( at oracle.tip.pc.services.identity.jps.IdentityServiceImpl.lookupUser(IdentityServiceImpl.java:183( at oracle.bpel.services.workflow.verification.impl.LocalCacheManager.lookupUser(LocalCacheManager.java:596(

我们将 BPM 任务流列表嵌入到 ADF 应用程序中。它在下面给出以下错误] <.>验证服务中的无效令牌错误。[[ 验证服务中的令牌无效错误。收到无效的空令牌。验证是否传递了正确的令牌。奥拉佩尔-30503

此外,如果您从上下文中记录用户名,您会注意到它是空的。原因

客户端应用程序和服务器上的 bpm 服务.jar可能不匹配。客户端和服务器上使用的 SOA/BPM 相关 jar 必须相同,否则可能会出现意外问题。

溶液

从服务器复制 bpm 服务.jar将客户端应用程序上的 bpm 服务.jar替换为服务器中的 bpm 服务。确保在应用任何修补程序后,在客户端应用程序中替换服务器上的 jar。这也适用于在 JDeveloper 中使用 jar,由于未在开发和服务器计算机上应用补丁,这些 jar 可能会变得不同步。您可能需要将位于此处的 bpm-services.jar JDeveloper/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar替换为位于此处的 [soa_install_dir]/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar。

最新更新