Рецепт раствора для омеднения любых поверхностей / Хабр

В статье представлен вариант экономичного и простого решения по замешиванию собственного раствора для гальванизации различных поверхностей с возможностью дальнейшей пайки. Как обычно, автор приводит множество фотографий и сопутствующее описание, а в конце дает сам рецепт.

3D принтеры отлично подходят для изготовления всевозможных корпусов, но сам по себе пластик, являясь диэлектриком, не обеспечивает нужного экранирования.

Когда мне понадобился корпус для нового зарядочувствительного усилителя (ЗЧУ) и трубок с гелием-3 He3, я спроектировал такой вариант:

Спустя 6 часов я уже держал его в руках:


Магический этап

Самая интересная часть заключалась в омеднении этого корпуса изнутри. В линейке Tifoo есть аэрозольная краска «Медь», на которую после высыхания можно наносить гальваническое покрытие. Требуется это только для гальванизации не проводящих ток деталей.

После предварительной грунтовки эта краска отлично держится на PLA-пластике, для чего вполне хватает двойного нанесения.

Сразу скажу, что это недешевый вариант покрытия, и tifoo просят еще 30 баксов за электролит. Я же подумал, что сложного тут ничего нет и решил изготовить его сам.

Сначала я попробовал просто сульфат меди — безуспешно. Тогда я решил добавить к нему серную кислоту, что уже дало хоть какой-то положительный результат. По крайней мере теперь медь начала оседать. Однако кристаллы получались слишком большими и совершенно неоднородными. Из-за обширной площади покрытия они быстро окислялись и т.д.

Здесь и был задействован магический компонент – сахарин (орто-сульфобензимид). С ним кристаллы получились уже более мелкие и однородные. Самое же главное, что теперь осадок не зависел от геометрии электрода.

Без сахарина

Без сахарина

С сахарином

Этот раствор хорош тем, что им можно гальванизировать практически все (кроме цинка, хрома, алюминия, титана, олова и железа). К тому же его можно паять!

Гальванизированная скандинавская золотая монета. Только посмотрите, насколько четкие детали!

Гальванизированный графит. Можно даже разглядеть следы машинной обработки!

Припайка к ПЛА. По размеру капли видно, какой нагрев он может выдержать

Припайка к графиту

А вот готовый корпус для моего ЗЧУ, покрытый электролитом:



Инструкции

А теперь самая долгожданная часть.

Использовать нужно только дистиллированную воду температурой 25°C, так как раствор очень чувствителен к загрязнениям.

Внимание: изопропиловый спирт все портит. Даже минимального осадка на поверхности после чистки будет достаточно, чтобы загубить весь электролит.

  1. Сначала сделайте раствор 96%-й серной кислоты и воды из расчета 30г на литр.
  2. В него добавьте сульфат меди (пентагидрат) по 300г на литр и дождитесь полного растворения.
  3. Добавьте сахарин в соотношении 1г на литр.
Вот и все!

Электрическая часть

Покрываемая деталь должна быть катодом, и вам понадобится (чистый!) медный анод, при этом плотность тока должна составлять 20-30 мА на см2.
Убедитесь, что анод расположен близко к детали, и его площадь не менее площади омедняемой детали.

На покрытие уходит от 10 минут до 1.5 часов, в зависимости от требуемой толщины. Но после определенного момента ее наращивание останавливается. Не знаю почему, в химии я не силен.

Что представляет собой электролит и насколько он опасен

Электролит в автомобильных аккумуляторах, представленных в продаже, — та среда, в которой происходят химические реакции, в результате которой происходит накопление и отдача электроэнергии для питания электрооборудования транспортного средства при выключенном двигателе.

Электролит, присутствующий в автомобильных и мотоаккумуляторах, представлен разбавленной серной кислотой. Это – агрессивная химическая среда, требующая осторожного обращения. Попадание брызг электролита на кожу или в глаза вызывает очень болезненные ощущения и ожоги. Вылечить их трудно.

Свинцово-кислотный АКБ — один из самых распространенных типов аккумуляторных батарей, использующийся как источник электроэнергии в автомобилях, мотоциклах, мопедах и прочих ТС. Необходимость купить автомобильные аккумуляторы этого типа возникает у большинства авто-мото-любителей. Вот почему с электролитом приходится иметь дело многим владельцам транспортных средств.

  1. Серная кислота (h3SO4) – ядовитое вещество, поэтому, работая с АКБ, обязательно надевайте специальные очки, резиновые перчатки и фартук. Они защитят от ожогов, порчи кузова машины, мотоцикла и т.д., одежды.
  2. На этот случай всегда имейте под рукой нейтрализующие аккумуляторную кислоту средства – раствор нашатырного спирта или соду. При попадании электролита на тело и проч. сразу же нейтрализуйте ее действие, потом смойте струей воды. При попадании в глаза промывайте их не менее четверти часа, после чего сразу же обращайтесь к врачу.
  3. Если Вы предпочитаете не покупку готового электролита для АКБ своего автомобиля или мототехники, а готовите самостоятельно, то советуем вливать концентрированную h3SO4 в воду тонкой струей (только в не металлическую емкость), постоянно помешивая раствор.
    Поступать наоборот — вливать воду в кислоту — недопустимо. В этом случае в результате выделяемого при смешивании тепла образуются капельки кислоты, которые начинают брызгать в разные стороны.
  4. При постановке свинцово-кислотных автоаккумуляторов на зарядку, не закручивайте пробки заливочных емкостей. Дайте образующимся в процессе зарядки батареи газам свободный выход иначе корпус АКБ взорвется.
  5. При постановке кислотных обслуживаемых аккумуляторов обязательно выкручиваются пробки заливочных отверстий для свободного выхода образующихся в процессе зарядки газов. В противном случае скопившийся в корпусе водород взорвет аккумулятор.

Выбирая автомобильный аккумулятор в Балашихе или Реутове, можно остановиться на современной необслуживаемой модели. Если же Вы предпочитаете обслуживаемую АКБ, то при работе с ней не пренебрегайте общими мерами предосторожности.

Поблизости от заряжающейся батареи нельзя допускать открытого огня, искр (проводить сварные работы, например), короткого замыкания, курить.

Помещение, где происходит зарядка, должно хорошо проветриваться. Если есть необходимость в проверке токопроводящих кабелей автомобиля, то обесточьте электрическую систему и не включайте зажигание. Присоединяя и отсоединяя провода зарядного устройства к АКБ, тоже сначала обесточьте его. И последняя предосторожность, которую нужно строго соблюдать автолюбителю: первым при отключении автоаккумулятора отсоединяйте провод массы, а при подключении он подсоединяется последним.

Электролитное пиво | Пиво Sufferfest, пиво Zelus и многое другое

Выпивка и физические упражнения обычно плохо сочетаются. Но является ли пиво, сваренное с электролитами, исключением из правил?

Это новое оздоровительное пиво позиционируется как «дружественное для спортсменов», поскольку оно содержит меньше алкоголя, чем традиционное пиво, и обогащено минералами-электролитами, такими как натрий, калий или кальций, которые помогают восполнить электролиты, потерянные с потом, как в ваших любимых видах спорта. напиток. Но действительно ли пить их — хорошая идея? Вот что говорят эксперты.

Заявка:

Пиво, приготовленное с электролитами, например, FKT от Sufferfest Brewing Company и War Llama от Mispillion River Brewing Company, может восполнить потери жидкости и электролитов от пота во время тренировки так же эффективно, как вода или спортивные напитки, повышая вашу производительность или помогая вы восстанавливаетесь быстрее.

Доказательства:

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

Электролитное пиво решает эту проблему двумя способами: во-первых, содержание алкоголя в нем довольно низкое — около 2–3 процентов алкоголя по объему (ABV). (Большинство традиционных напитков имеют крепость 4% или выше.) И они также содержат минералы-электролиты, которые вы можете найти в типичном спортивном напитке.

«Натрий и калий играют в организме различные роли, и важной для спортсменов является сбалансированное сокращение мышц», — объясняет спортивный диетолог Эми Гудсон, доктор медицинских наук, C.S.S.D. «Когда ваши электролиты выходят из строя, могут возникнуть судороги». Натрий также способствует задержке жидкости, помогая организму восстанавливать водный баланс после потоотделения.

Достаточно ли этих преимуществ, чтобы противостоять негативным эффектам алкоголя? Несколько исследований показали, что слабоалкогольное пиво (менее 3 процентов ABV) с добавлением натрия менее обезвоживает, чем пиво без натрия с большим содержанием алкоголя, при употреблении во время или после тренировки. И любое пиво, независимо от содержания алкоголя или электролитов, содержит углеводы, которые могут помочь вам восполнить запасы после тренировки. Пиво также является источником полифенолов — антиоксидантов, которые противодействуют воспалению и способствуют восстановлению мышц.

Related Stories
  • Почему вы не можете насытиться кофе и пивом
  • Лучшие продукты для ускорения восстановления

Но этого недостаточно, чтобы убедить большинство экспертов в том, что пиво, приготовленное с использованием электролитов, действительно повысит вашу работоспособность или поможет вы выздоравливаете. Тот факт, что слабоалкогольный напиток лучше увлажняет, чем крепкий, не обязательно делает его лучшим выбором. Почему? Потому что любое количество алкоголя, вероятно, все равно обезвоживает вас. «Эффекты обезвоживания, казалось бы, перевешивают преимущества», — говорит Гудсон.

Что касается углеводов и антиоксидантов? Этих льгот недостаточно, чтобы оправдать выбор электролитного пива, скажем, здоровой закуски. «В пиве отсутствуют многие другие питательные вещества, содержащиеся в цельных продуктах», — говорит спортивный диетолог Келли Джонс, доктор медицинских наук, C. S.S.D. И преимущества полифенолов в борьбе с воспалением, вероятно, превосходят противовоспалительные эффекты алкоголя — , вызывающие эффектов. (Одно исследование показало, что испытуемые, которые регулярно пили пиво в течение нескольких недель до и после марафона, испытывали меньше воспалений после забега. Подвох?0029 безалкогольное. )

4 смеси напитков, которые мы любим
Skratch Labs Sport Hydration Drink Mix

$22 на Amazon

Кредит: Skratch

80 калорий на порцию, приготовленные из полностью натуральных ингредиентов и с высоким содержанием натрия.

GU Energy GU Hydration Drink Mix

Сейчас скидка 16%.

Nuun Nuun Hydration

20 долларов на Amazon

60 калорий на порцию, мало сахара, много натрия.

osmo Active Hydration, оптимизированный для женщин

20 долларов США на сайте osmonutrition.com

40 калорий на порцию в специальной женской формуле для управления изменениями менструального цикла в плазме крови.

И еще: независимо от того, какие полезные соединения могут быть в вашем напитке, алкоголь может испортить вашу производительность и восстановление, а не улучшить их. «Он может препятствовать восполнению запасов гликогена, уменьшая поглощение и накопление, а также уменьшая восстановление мышц и синтез мышечного белка», — говорит Джонс.

Смотреть: Какое восстанавливающее пиво прошло наш дегустационный тест?

Вердикт:

Слабоалкогольное пиво, обогащенное электролитами, может быть немного лучшим выбором, чем традиционное пиво с более высоким содержанием алкоголя. Но это далеко не лучший вариант. Эффект обезвоживания алкоголя перевешивает любые потенциальные преимущества добавленных электролитов.

«Алкоголь никоим образом не повышает работоспособность и, скорее всего, не способствует восстановлению», — говорит Гудсон. «Если в пиве есть электролиты, то да, оно их заменяет, но это не значит, что оно противостоит всем эффектам обезвоживания». Кроме того, употребление алкоголя после тренировки может замедлить восстановление мышц в следующий раз.

История по теме
  • Почему вы не можете насытиться кофе и пивом

Значит ли это, что вы никогда не должны их пить? Пиво с электролитами полезно время от времени после тренировки, например, если вы празднуете после гонки, отмечает Гудсон. Но вы никогда не должны пить их до того, как будете активны или во время тренировки, так как алкоголь может сделать вас более неуклюжими и более склонными к несчастным случаям, добавляет Джонс. Вам также следует держаться подальше, если вы восстанавливаетесь после болезни или травмы, поскольку алкоголь может ухудшить ваше выздоровление, добавляет она.

А когда вы побалуете себя, наслаждайтесь пивом с большим количеством воды и спортивным напитком или закуской, а не вместо них. «Я бы никогда не рекомендовала спортсменам заменять все жидкости пивом, — говорит она.

Мэригрейс Тейлор

Мэригрейс Тейлор пишет статьи о здоровье и благополучии для журналов Prevention, Parade, Women’s Health, Redbook и других. Она также является соавтором книг «Ешьте чисто, оставайтесь стройными: диета и средиземноморская кухня». Посетите ее на marygracetaylor.com.

Gale Apps — Технические трудности

Приложение, к которому вы пытаетесь получить доступ, в настоящее время недоступно. Приносим свои извинения за доставленные неудобства. Повторите попытку через несколько секунд.

Если проблемы с доступом сохраняются, обратитесь за помощью в наш отдел технической поддержки по телефону 1-800-877-4253. Еще раз спасибо, что выбрали Gale, обучающую компанию Cengage.

org.springframework.remoting.RemoteAccessException: невозможно получить доступ к удаленной службе [authorizationService@theBLISAuthorizationService]; вложенным исключением является com.zeroc.Ice.UnknownException unknown = «java.lang.IndexOutOfBoundsException: индекс 0 выходит за границы для длины 0 в java. base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) в java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) в java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) в java.base/java.util.Objects.checkIndex(Objects.java:359) в java.base/java.util.ArrayList.get(ArrayList.java:427) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.populateSessionProperties(LazyUserSessionDataLoaderStoredProcedure.java:60) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.reQuery(LazyUserSessionDataLoaderStoredProcedure.java:53) в com.gale.blis.data.model.session.UserGroupEntitlementsManager.reinitializeUserGroupEntitlements(UserGroupEntitlementsManager.java:30) в com.gale.blis.data.model.session.UserGroupSessionManager.getUserGroupEntitlements(UserGroupSessionManager.

java:17) в com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getProductSubscriptionCriteria(CrossSearchProductContentModuleFetcher.java:246) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getSubscribedCrossSearchProductsForUser(CrossSearchProductContentModuleFetcher.java:70) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getAvailableContentModulesForProduct(CrossSearchProductContentModuleFetcher.java:51) на com.gale.blis.api.authorize.strategy.productentry.strategy.AbstractProductEntryAuthorizer.getContentModules(AbstractProductEntryAuthorizer.java:131) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.isAuthorized(CrossSearchProductEntryAuthorizer.java:83) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.
authorizeProductEntry(CrossSearchProductEntryAuthorizer.java:45) на com.gale.blis.api.authorize.strategy.ProductEntryAuthorizer.authorize(ProductEntryAuthorizer.java:31) в com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody0(BLISAuthorizationServiceImpl.java:57) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody1$advice(BLISAuthorizationServiceImpl.java:61) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize(BLISAuthorizationServiceImpl.java:1) в com.gale.blis.auth.AuthorizationService._iceD_authorize(AuthorizationService.java:97) в com.gale.blis.auth.AuthorizationService._iceDispatch(AuthorizationService.java:406) в com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221) в com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI.java:2706) на com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292) в com. zeroc.Ice.ConnectionI.message(ConnectionI.java:1203) в com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412) в com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7) в com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:781) на java.base/java.lang.Thread.run(Thread.java:833) » org.springframework.remoting.ice.IceClientInterceptor.convertIceAccessException(IceClientInterceptor.java:348) org.springframework.remoting.ice.IceClientInterceptor.invoke(IceClientInterceptor.java:310) org.springframework.remoting.ice.MonitoringIceProxyFactoryBean.invoke(MonitoringIceProxyFactoryBean.java:71) org. springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) com.sun.proxy.$Proxy156.authorize(Неизвестный источник) com.gale.auth.service.BlisService.getAuthorizationResponse(BlisService.java:61) com.gale.apps.service.impl.MetadataResolverService.resolveMetadata(MetadataResolverService.java:65) com.gale.apps.controllers.DiscoveryController.resolveDocument(DiscoveryController.java:57) com. gale.apps.controllers.DocumentController.redirectToDocument(DocumentController.java:24) com.gale.apps.controllers.DocumentController$$FastClassBySpringCGLIB$$7de825c.invoke(<сгенерировано>) org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) org. springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation. proceed(CglibAopProxy.java:753) org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) com.gale.apps.controllers.DocumentController$$EnhancerBySpringCGLIB$$b99aca1f.redirectToDocument(<сгенерированный>) jdk.internal.reflect.GeneratedMethodAccessor440.invoke (неизвестный источник) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org. springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:895) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:808) org. springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:626) org. springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) com.gale.common.http.filter.SecurityHeaderFilter.doFilterInternal(SecurityHeaderFilter.java:29) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.owasp.validation.GaleParameterValidationFilter.doFilterInternal(GaleParameterValidationFilter.java:97) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal (WebMvcMetricsFilter.java:96) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter. java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) org.apache.catalina.core.StandardHostValve. invoke(StandardHostValve.java:143) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight. java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) 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.