При сохранении данных Spring из репозитория Crud возникает неизвестное исключение - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть Interceptor, который получает некоторую информацию заголовка от моего внешнего интерфейса и создает объект для регистрации информации запроса (user, ip, url, querystring, contenttype, timetoexecute, status). После создания сущности я вызываю службу, чтобы сохранить ее в базе данных DB2.

import java.util.Enumeration;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.common.model.HttpRequestLog;
import com.common.service.HttpRequestLogService;
import com.common.security.Authenticator;

@Component
public class LoggerInterceptor extends HandlerInterceptorAdapter {
    @Autowired
    Authenticator authenticator;

    @Autowired
    HttpRequestLogService httpRequestLogService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        request.setAttribute("startTime", System.currentTimeMillis());
        response.addHeader("RequestUUID", UUID.randomUUID().toString());
        return true;
    }

    private String getParameters(HttpServletRequest request) {
        StringBuffer params = new StringBuffer();
        Enumeration<?> e = request.getParameterNames();
        while (e.hasMoreElements()) {
            String param = (String) e.nextElement();
            params.append(params.length() > 1 ? "&" : "").append(param).append("=").append(request.getParameter(param));
        }

        return params.toString();
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
            throws Exception {
        if (!(request instanceof RequestWrapper)) {
            return;
        }

        RequestWrapper requestWrapper = (RequestWrapper) request;
        String ip = requestWrapper.getHeader("X-FORWARDED-FOR");
        String params = getParameters(requestWrapper);

        HttpRequestLog log = new HttpRequestLog();
        log.setUser(authenticator.getCurrentUser() != null ? authenticator.getCurrentUser().getLogin() : "UNKNOWN");
        log.setIp(ip != null && ip.length() > 0 ? ip : requestWrapper.getRemoteAddr());
        log.setUrl(requestWrapper.getRequestURI());
        log.setQueryString(params.length() > 0 ? params.substring(0, Math.min(params.length() - 1, 500)) : "");
        log.setType(requestWrapper.getContentType() == null || requestWrapper.getContentType().isEmpty() ? "NORMAL" : "AJAX");
        log.setResponseStatusCode(response.getStatus());
        log.setRequestUUID(response.getHeader("RequestUUID"));
        log.setBackExecutionTime(System.currentTimeMillis() - (Long) request.getAttribute("startTime"));

        if (requestWrapper.getContentLength() > 0
                && requestWrapper.getContentType().toUpperCase().equals("APPLICATION/JSON; CHARSET=UTF-8")) {
            String body = requestWrapper.getRequestBody();
            log.setJson(body.substring(0, Math.min(body.length() - 1, 5000)));
        }

        httpRequestLogService.add(log);
    }
}

Код объекта:

import javax.persistence.Column;
import javax.persistence.Entity;

@Entity
public class HttpRequestLog extends VersionedAbstractEntity {

    private static final long serialVersionUID = -4708725273090125695L;

    @Column(nullable = false)
    private String requestUUID;

    @Column(nullable = false)
    private String user;

    @Column(nullable = false)
    private String ip;

    @Column(nullable = false)
    private String url;

    @Column(length = 500)
    private String queryString;

    @Column(nullable = false)
    private String type;

    @Column(length = 5000)
    private String json;

    @Column(nullable = false)
    private int responseStatusCode;

    @Column(nullable = false)
    private long backExecutionTime;

    @Column(nullable = false)
    private Long frontExecutionTime;

    public String getRequestUUID() {
        return requestUUID;
    }

    public void setRequestUUID(String requestUUID) {
        this.requestUUID = requestUUID;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getQueryString() {
        return queryString;
    }

    public void setQueryString(String queryString) {
        this.queryString = queryString;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getJson() {
        return json;
    }

    public void setJson(String json) {
        this.json = json;
    }

    public int getResponseStatusCode() {
        return responseStatusCode;
    }

    public void setResponseStatusCode(int responseStatusCode) {
        this.responseStatusCode = responseStatusCode;
    }

    public long getBackExecutionTime() {
        return backExecutionTime;
    }

    public void setBackExecutionTime(long backExecutionTime) {
        this.backExecutionTime = backExecutionTime;
    }

    public long getFrontExecutionTime() {
        return frontExecutionTime;
    }

    public void setFrontExecutionTime(long frontExecutionTime) {
        this.frontExecutionTime = frontExecutionTime;
    }
}

Служба имеет DAO, расширяющий JPARepository. Вызов следующий:

@Service
public class HttpRequestLogServiceImpl implements HttpRequestLogService {
    @Autowired
    private HttpRequestLogDao httpRequestLogDao;

    @Override
    public HttpRequestLog add(HttpRequestLog httpRequestLog) {
        return httpRequestLogDao.save(httpRequestLog);
    }
}

Этот метод вызывается столько раз, сколько новых запросов делается в бэкэнд (иногда больше, чем 1 в секунду). Но для некоторых запросов этот метод вызывает странное исключение:

com.sun.proxy.$Proxy1511.hashCode(Unknown Source); java.util.HashMap.hash(HashMap.java:338); java.util.HashMap.get(HashMap.java:556);
   org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl.release(ResourceRegistryStandardImpl.java:76);
   org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.releaseStatements(AbstractBatchImpl.java:157);
   org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.execute(AbstractBatchImpl.java:150);
   org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:214);
   org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:103);
   org.hibernate.dialect.identity.GetGeneratedKeysDelegate.prepare(GetGeneratedKeysDelegate.java:51);
   org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:39);
   org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2855);
   org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3426);
   org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81);
   org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:619);
   org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:273);
   org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:254);
   org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:299);
   org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:317);
   org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:272);
   org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178);
   org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109);
   org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67);
   org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189);
   org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132);
   org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58);
   org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775);
   org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748);
   org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753);
   org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146);
   sun.reflect.GeneratedMethodAccessor2885.invoke(Unknown Source);
   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43);
   java.lang.reflect.Method.invoke(Method.java:497);
   org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:347);
   com.sun.proxy.$Proxy1393.persist(Unknown Source);
   sun.reflect.GeneratedMethodAccessor2885.invoke(Unknown Source);
   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43);
   java.lang.reflect.Method.invoke(Method.java:497);
   org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:298);
   com.sun.proxy.$Proxy1393.persist(Unknown Source);
   org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:508);
   sun.reflect.GeneratedMethodAccessor2883.invoke(Unknown Source);
   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43);
   java.lang.reflect.Method.invoke(Method.java:497);
   org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:513);
   org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:498);
   org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:475;
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:56);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99);
   org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282);
   org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179); org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:133);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:57);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213);
   com.sun.proxy.$Proxy1471.save(Unknown Source);
   com.common.service.HttpRequestLogServiceImpl.add(HttpRequestLogServiceImpl.java:17);
   com.common.service.HttpRequestLogServiceImpl$$FastClassBySpringCGLIB$$95d535d4.invoke();
   org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204);
   org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157);
   org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85);
   com.logger.LoggerAdvisor.before(LoggerAdvisor.java:80);
   sun.reflect.GeneratedMethodAccessor2882.invoke(Unknown Source);
   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43);
   java.lang.reflect.Method.invoke(Method.java:497);
   org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629);
   org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618);
   org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92);
   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179);
   org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673);
   com.common.service.HttpRequestLogServiceImpl$$EnhancerBySpringCGLIB$$dacea43f.add();
   com.web.utility.LoggerInterceptor.postHandle(LoggerInterceptor.java:71);
   org.springframework.web.servlet.HandlerExecutionChain.applyPostHandle(HandlerExecutionChain.java:151);
   org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:974);
   org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901);
   org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970);
   org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872);
   javax.servlet.http.HttpServlet.service(HttpServlet.java:647);
   org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846);
   javax.servlet.http.HttpServlet.service(HttpServlet.java:728);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   com.web.utility.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:17);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.sitemesh.webapp.contentfilter.ContentBufferingFilter.bufferAndPostProcess(ContentBufferingFilter.java:169);
   org.sitemesh.webapp.contentfilter.ContentBufferingFilter.doFilter(ContentBufferingFilter.java:126);
   org.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:120);
   org.sitemesh.config.ConfigurableSiteMeshFilter.doFilter(ConfigurableSiteMeshFilter.java:163);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317);
   org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127);
   org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331);
   org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214);
   org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177);
   org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347);
   org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:115);
   org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:59);
   org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:90);
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107);
   org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108);
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243);
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210);
   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222);
   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123);
   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502);
   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171);
   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99);
   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953);
   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118);
   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408);
   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023);
   org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589);
   org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312);
   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142);
   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617);
   java.lang.Thread.run(Thread.java:745)

Не могли бы вы дать мне какие-нибудь подсказки, которые помогут мне попытаться выяснить, что происходит?

...