惠普 ALM | REST API 错误 ALM-E10004:加载项目失败?
Posted
技术标签:
【中文标题】惠普 ALM | REST API 错误 ALM-E10004:加载项目失败?【英文标题】:HP ALM | REST API Error ALM-E10004: Failed to load project? 【发布时间】:2021-03-13 03:34:56 【问题描述】:我使用的是 HP ALM 版本 11.52.809。
身份验证后,我正在尝试使用以下 REST-API 获取域列表:
http://19.17.16.69:7424/qcbin/rest/domains
我收到以下错误:
HTTP ERROR 500
Problem accessing /qcbin/rest/domains. Reason:
ALM-E10004: Failed to load project 'null' from domain 'null'.
Caused by:
java.lang.NullPointerException
at com.hp.alm.platform.directory.CProjectsDirectory.getItem(CProjectsDirectory.java:79)
wrapped in com.hp.alm.platform.siteadmin.session.ProjectDoesNotExisatException: ALM-E10004: Failed to load project 'null' from domain 'null'.
at com.hp.alm.platform.directory.CProjectsDirectory.getItem(CProjectsDirectory.java:125)
at org.hp.qc.impl.customization.CustomizationServiceImpl.getCustomization(CustomizationServiceImpl.java:73)
at org.hp.qc.impl.customization.CustomizationServiceImpl.getDefaultCustomization(CustomizationServiceImpl.java:55)
at sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at org.hp.qc.impl.aspects.cache.ReturnValueCachingAspect$CacheResult.get(ReturnValueCachingAspect.java:228)
at org.hp.qc.impl.aspects.cache.ReturnValueCachingAspect.invoke(ReturnValueCachingAspect.java:107)
at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy63.getDefaultCustomization(Unknown Source)
at org.hp.qc.impl.customization.CustomizationServiceImpl.find(CustomizationServiceImpl.java:44)
at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy63.find(Unknown Source)
at org.hp.qc.impl.services.sessionmanagement.AuthenticationImpl.getPrincipal(AuthenticationImpl.java:73)
at com.hp.sw.bto.ast.security.lwsso.authenticator.springSecurity.SpringSecurity2LWSSOIntegrationFilter.createSecurityContext(SpringSecurity2LWSSOIntegrationFilter.java:263)
at com.hp.sw.bto.ast.security.lwsso.authenticator.springSecurity.SpringSecurity2LWSSOIntegrationFilter.creatSecurityContextForNonExistingUser(SpringSecurity2LWSSOIntegrationFilter.java:239)
at com.hp.sw.bto.ast.security.lwsso.authenticator.springSecurity.SpringSecurity2LWSSOIntegrationFilter.doFilter(SpringSecurity2LWSSOIntegrationFilter.java:172)
at org.hp.qc.web.restapi.authentication.QCSpringSecurity2lwssoIntegrationFilter.doFilter(QCSpringSecurity2lwssoIntegrationFilter.java:29)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.hp.qc.web.restapi.sessionmanagement.ImplicitSessionFilter.doFilter(ImplicitSessionFilter.java:76)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.hp.qc.web.restapi.authentication.QC2SpringIntegrationFilter.LWSSO2SpringSecurityIntegrationFilterDoFilter(QC2SpringIntegrationFilter.java:350)
at org.hp.qc.web.restapi.authentication.QC2SpringIntegrationFilter.doFilter(QC2SpringIntegrationFilter.java:71)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
是什么导致了这个错误?是否需要在 ALM 端进行任何设置或权限?
提前致谢:)
【问题讨论】:
您的用户是否分配到任何项目? 是用户被分配到一个项目。 并且调用不同的 API 可以正常工作(例如 /rest/domains/没有看到实际代码,只能猜测做了什么。话虽如此,这里是来自 Microfocus 的文档,它会很有帮助。
领域: https://admhelp.microfocus.com/alm/api_refs/REST_TECH_PREVIEW/Content/REST_API_Tech_Preview/REST/domains.html?Highlight=domain
项目: https://admhelp.microfocus.com/alm/api_refs/REST_TECH_PREVIEW/Content/REST_API_Tech_Preview/REST/projects.html
提问时请提供您尝试过的代码,即使是 API 请求,也很重要您如何进行身份验证,contentType 和其他标头信息是否已正确传递。所以,用一些真实的代码更新你的问题。
【讨论】:
我正在为这个 API 请求使用 Postman 客户端。以上是关于惠普 ALM | REST API 错误 ALM-E10004:加载项目失败?的主要内容,如果未能解决你的问题,请参考以下文章
ALM 使用 JSON 有效负载 (REST API) 创建新的测试运行