Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RestException when trying to trigger a mocked rest service #648

Open
barfoo4711 opened this issue Jul 14, 2023 · 1 comment
Open

RestException when trying to trigger a mocked rest service #648

barfoo4711 opened this issue Jul 14, 2023 · 1 comment

Comments

@barfoo4711
Copy link

barfoo4711 commented Jul 14, 2023

Describe the bug
I get a HTTP 500 error when trying to call a mocked rest service. I'm using Castlemock 1.6.5 and started it via docker

In the docker logs I only have the following

2023-07-14 16:27:46 2023-07-14 14:27:46.491 ERROR 1 --- [nio-8080-exec-3] o.s.b.w.s.s.ErrorPageFilter              : Forwarding to error page from request [/mock/rest/project/vgdUj3/application/ZGHoZb/api/user/login] due to exception [Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "com.castlemock.model.core.http.HttpHeader.getName()" is null]
2023-07-14 16:27:46 
2023-07-14 16:27:46 com.castlemock.web.mock.rest.model.RestException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "com.castlemock.model.core.http.HttpHeader.getName()" is null
2023-07-14 16:27:46 at com.castlemock.web.mock.rest.controller.mock.AbstractRestServiceController.process(AbstractRestServiceController.java:141) ~[web-mock-rest-1.65.jar:?]
2023-07-14 16:27:46 at com.castlemock.web.mock.rest.controller.mock.RestServiceController.getMethod(RestServiceController.java:70) ~[web-mock-rest-1.65.jar:?]
2023-07-14 16:27:46 at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
2023-07-14 16:27:46 at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
2023-07-14 16:27:46 at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) ~[servlet-api.jar:4.0.FR]
2023-07-14 16:27:46 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[servlet-api.jar:4.0.FR]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-websocket.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at com.castlemock.app.config.SecurityInterceptor.doFilter(SecurityInterceptor.java:87) ~[app-1.65.jar:?]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at com.castlemock.web.core.filter.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:45) ~[web-core-1.65.jar:?]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:352) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:164) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:225) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:190) ~[spring-security-web-5.8.3.jar:5.8.3]
2023-07-14 16:27:46 at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) ~[spring-boot-2.7.12.jar:2.7.12]
2023-07-14 16:27:46 at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) ~[spring-boot-2.7.12.jar:2.7.12]
2023-07-14 16:27:46 at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) ~[spring-boot-2.7.12.jar:2.7.12]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) ~[spring-boot-2.7.12.jar:2.7.12]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[catalina.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-coyote.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-coyote.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-coyote.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-coyote.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-coyote.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.76]
2023-07-14 16:27:46 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.76]
2023-07-14 16:27:46 at java.lang.Thread.run(Thread.java:1583) [?:?]
2023-07-14 16:27:46 

Looking at the code the root cause exception is not re thrown but just logged, however I'm unable to find the logfile.

Any idea what could potentially causing this? And if not what can I do to get the log output?

The interesting thing is that the request/response log accessible via the web ui shows the correct response as configured for the mocked method

Castle Mock

  • Version 1.65
  • started with docker run -d -p 8080:8080 castlemock/castlemock
@barfoo4711
Copy link
Author

I ended up restarting from scratch with a new project, re-creating my mocks from scratch. Maybe the problem was caused by the fact that I first created the project with Castle Mock 1.63, had some issues there (a NPE in the same class when triggering my mock server), exported it, started a new Cast Mock Docker instace with 1.65 and imported it there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant