进度 PASOE - 带有调用操作的 PUT 方法抛出 500 服务器错误
Progress PASOE - PUT Method with invoke operation throws 500 server error
我正在使用 Progress PASOE 技术发出 REST 请求,但突然遇到了一个意想不到的奇怪问题。
这是我使用的 PUT 方法:
@openapi.openedge.export(type="REST", useReturnValue="false",writeDataSetBeforeImage="false").
@progress.service.resourceMapping(type="REST", operation="invoke",URI="/ObtieneListaFicheros?numfic=~{numfic~}", alias="", mediaType="application/json").
METHOD PUBLIC VOID ObtieneListaFicheros(
INPUT numfic AS INTEGER,
OUTPUT DATASET dsficheros ):
DEFINE VARIABLE chDirectorio AS CHARACTER NO-UNDO.
DEFINE VARIABLE chLinea AS CHARACTER NO-UNDO EXTENT 3.
EMPTY TEMP-TABLE ttFICHEROS.
FIND CAFISO NO-LOCK WHERE CAFISO.NUMFIC = numfic NO-ERROR.
IF NOT AVAILABLE CAFISO THEN DO:
MESSAGE "No existe el registro de solares".
RETURN.
END.
chDirectorio = "P:\Juridica\Solares\" + TRIM(STRING(CAFISO.FICGEN)).
FILE-INFO:FILE-NAME = chDirectorio.
message "FILE-INFO:FULL-PATHNAME " FILE-INFO:FULL-PATHNAME.
IF FILE-INFO:FULL-PATHNAME <> ? THEN DO:
INPUT FROM OS-DIR(chDirectorio).
REPEAT:
IMPORT chLinea.
IF chLinea[3] <> 'F':U THEN NEXT.
CREATE ttFICHEROS.
ASSIGN ttFICHEROS.NUMFIC = CAFISO.NUMFIC
ttFICHEROS.FICGEN = CAFISO.FICGEN
ttFICHEROS.NOMBRE = chLinea[1]
ttFICHEROS.RUTA = chLinea[2]
iSeq = iSeq + 1
ttFICHEROS.id = STRING(iSeq)
ttFICHEROS.seq = iSeq.
END.
INPUT CLOSE.
END.
END METHOD.
其中 P 是应该可以访问的映射单元。但是,如果我尝试 运行 使用 Postman 发送此请求,我会得到以下答案:
我的第一次尝试是注释代码行以跟踪问题所在,并从字面上删除方法中的所有内容。但是还是不行。
所以,我创建了一个没有任何内容的测试方法,然后再次尝试:
@openapi.openedge.export(type="REST", useReturnValue="false",writeDataSetBeforeImage="false").
@progress.service.resourceMapping(type="REST", operation="invoke",URI="/test", alias="", mediaType="application/json").
METHOD PUBLIC VOID test():
message "I am trying to use a PUT method!".
END METHOD.
我重新启动 PASOE 实例(在 Developer Studio 中)也没有成功。
其他方法都正常,我只是在这种情况下遇到 PUT/invoke 的问题,因为过去我使用这个操作没有问题。我错过了什么?这真的很令人沮丧,因为这个 500 错误没有提供任何线索。
这是请求:
http://localhost:7020/nynweb/rest/nynwebService/cafiso/ObtieneListaFicheros?numfic=1
http://localhost:7020/nynweb/rest/nynwebService/cafiso/test
我在 Windows 10.
中使用 OpenEdge 12.2
查看本地日志,我注意到我确实有一个错误。这是一个 java 异常:
2021-05-26T08:19:31.615+02:00 ERROR [thd-7] o.a.c.core.StandardWrapperValve.invoke - Servlet.service() para servlet [OERestAdapter] lanzó excepción
java.lang.NullPointerException: 空
在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.setExchangeProperties(CafJAXRSInInterceptor.java:386)
在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.processRequest(CafJAXRSInInterceptor.java:247)
在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.handleMessage(CafJAXRSInInterceptor.java:95)
在 org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
在 org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
在 org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
在 org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
在 org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
在 org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
在 org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:237)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:663)
在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 com.progress.appserv.adapters.rest.PingFilter.doFilter(PingFilter.java:108)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 com.progress.appserv.adapters.rest.OERestAdapterFilter.doFilter(OERestAdapterFilter.java:155)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 com.progress.appserv.oeabl.OEAblServletFilter.doFilter(OEAblServletFilter.java:72)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 ch.qos.logback.classic.selector.servlet.LoggerContextFilter.doFilter(LoggerContextFilter.java:69)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
在 com.progress.appserv.services.security.OEClientPrincipalFilter.doFilter(OEClientPrincipalFilter.java:449)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OEAbstractAuthorizationFilter.doFilter(OEAbstractAuthorizationFilter.java:283)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OERequestHeaderAuthenticationFilter.doFilter(OERequestHeaderAuthenticationFilter.java:143)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
在 org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OECORSFilter.doFilter(OECORSFilter.java:380)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
在 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
在 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
在 org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)
在 org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:235)
在 ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
在 org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:240)
在 org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
在 org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53)
在 org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
在 org.apache.catalina.valves.RemoteHostValve.invoke(RemoteHostValve.java:51)
在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
在 java.base/java.lang.Thread.run(Thread.java:834)
我不明白这个错误是什么意思...
我将不胜感激任何帮助,因为我真的被困住了。
此致!
我终于设法解决了这个问题。我将它张贴在这里是为了帮助其他可能遇到同样问题的人。
这似乎与部署过程中在 Production 中创建的适配器有关(位于 PASOEContent\WEB-INF\adapters\rest)。当我进行此部署时,我可能包含了 table“extcli”的业务实体,该实体已不在项目中。因此,我取消部署了该应用程序并使用 Developer Studio 中新生成的 .war 文件再次部署。这个新文件没有引用不存在的适配器,这似乎就足够了。
我正在使用 Progress PASOE 技术发出 REST 请求,但突然遇到了一个意想不到的奇怪问题。
这是我使用的 PUT 方法:
@openapi.openedge.export(type="REST", useReturnValue="false",writeDataSetBeforeImage="false").
@progress.service.resourceMapping(type="REST", operation="invoke",URI="/ObtieneListaFicheros?numfic=~{numfic~}", alias="", mediaType="application/json").
METHOD PUBLIC VOID ObtieneListaFicheros(
INPUT numfic AS INTEGER,
OUTPUT DATASET dsficheros ):
DEFINE VARIABLE chDirectorio AS CHARACTER NO-UNDO.
DEFINE VARIABLE chLinea AS CHARACTER NO-UNDO EXTENT 3.
EMPTY TEMP-TABLE ttFICHEROS.
FIND CAFISO NO-LOCK WHERE CAFISO.NUMFIC = numfic NO-ERROR.
IF NOT AVAILABLE CAFISO THEN DO:
MESSAGE "No existe el registro de solares".
RETURN.
END.
chDirectorio = "P:\Juridica\Solares\" + TRIM(STRING(CAFISO.FICGEN)).
FILE-INFO:FILE-NAME = chDirectorio.
message "FILE-INFO:FULL-PATHNAME " FILE-INFO:FULL-PATHNAME.
IF FILE-INFO:FULL-PATHNAME <> ? THEN DO:
INPUT FROM OS-DIR(chDirectorio).
REPEAT:
IMPORT chLinea.
IF chLinea[3] <> 'F':U THEN NEXT.
CREATE ttFICHEROS.
ASSIGN ttFICHEROS.NUMFIC = CAFISO.NUMFIC
ttFICHEROS.FICGEN = CAFISO.FICGEN
ttFICHEROS.NOMBRE = chLinea[1]
ttFICHEROS.RUTA = chLinea[2]
iSeq = iSeq + 1
ttFICHEROS.id = STRING(iSeq)
ttFICHEROS.seq = iSeq.
END.
INPUT CLOSE.
END.
END METHOD.
其中 P 是应该可以访问的映射单元。但是,如果我尝试 运行 使用 Postman 发送此请求,我会得到以下答案:
我的第一次尝试是注释代码行以跟踪问题所在,并从字面上删除方法中的所有内容。但是还是不行。
所以,我创建了一个没有任何内容的测试方法,然后再次尝试:
@openapi.openedge.export(type="REST", useReturnValue="false",writeDataSetBeforeImage="false").
@progress.service.resourceMapping(type="REST", operation="invoke",URI="/test", alias="", mediaType="application/json").
METHOD PUBLIC VOID test():
message "I am trying to use a PUT method!".
END METHOD.
我重新启动 PASOE 实例(在 Developer Studio 中)也没有成功。 其他方法都正常,我只是在这种情况下遇到 PUT/invoke 的问题,因为过去我使用这个操作没有问题。我错过了什么?这真的很令人沮丧,因为这个 500 错误没有提供任何线索。
这是请求:
http://localhost:7020/nynweb/rest/nynwebService/cafiso/ObtieneListaFicheros?numfic=1 http://localhost:7020/nynweb/rest/nynwebService/cafiso/test
我在 Windows 10.
中使用 OpenEdge 12.2查看本地日志,我注意到我确实有一个错误。这是一个 java 异常:
2021-05-26T08:19:31.615+02:00 ERROR [thd-7] o.a.c.core.StandardWrapperValve.invoke - Servlet.service() para servlet [OERestAdapter] lanzó excepción
java.lang.NullPointerException: 空 在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.setExchangeProperties(CafJAXRSInInterceptor.java:386) 在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.processRequest(CafJAXRSInInterceptor.java:247) 在 com.progress.caf.cxf.jaxrs.interceptor.CafJAXRSInInterceptor.handleMessage(CafJAXRSInInterceptor.java:95) 在 org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 在 org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 在 org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) 在 org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 在 org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 在 org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 在 org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) 在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) 在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:237) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:663) 在 org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 com.progress.appserv.adapters.rest.PingFilter.doFilter(PingFilter.java:108) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 com.progress.appserv.adapters.rest.OERestAdapterFilter.doFilter(OERestAdapterFilter.java:155) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 com.progress.appserv.oeabl.OEAblServletFilter.doFilter(OEAblServletFilter.java:72) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 ch.qos.logback.classic.selector.servlet.LoggerContextFilter.doFilter(LoggerContextFilter.java:69) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) 在 com.progress.appserv.services.security.OEClientPrincipalFilter.doFilter(OEClientPrincipalFilter.java:449) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OEAbstractAuthorizationFilter.doFilter(OEAbstractAuthorizationFilter.java:283) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OERequestHeaderAuthenticationFilter.doFilter(OERequestHeaderAuthenticationFilter.java:143) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) 在 org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OECORSFilter.doFilter(OECORSFilter.java:380) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 com.progress.appserv.services.security.OEMdcFilter.doFilter(OEMdcFilter.java:276) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) 在 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) 在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) 在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) 在 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 在 org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206) 在 org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:235) 在 ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256) 在 org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:240) 在 org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348) 在 org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53) 在 org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348) 在 org.apache.catalina.valves.RemoteHostValve.invoke(RemoteHostValve.java:51) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.base/java.lang.Thread.run(Thread.java:834)
我不明白这个错误是什么意思...
我将不胜感激任何帮助,因为我真的被困住了。
此致!
我终于设法解决了这个问题。我将它张贴在这里是为了帮助其他可能遇到同样问题的人。
这似乎与部署过程中在 Production 中创建的适配器有关(位于 PASOEContent\WEB-INF\adapters\rest)。当我进行此部署时,我可能包含了 table“extcli”的业务实体,该实体已不在项目中。因此,我取消部署了该应用程序并使用 Developer Studio 中新生成的 .war 文件再次部署。这个新文件没有引用不存在的适配器,这似乎就足够了。