Customers can't subscribe through Webform anymore

Use this forum to report bugs and to check for bugfixes and new releases of OpenEMM

Moderator: moderator

MikaLaurer
Posts: 35
Joined: Thu Apr 02, 2020 9:18 am

Customers can't subscribe through Webform anymore

Post by MikaLaurer »

Hello,

I recently upgraded our Production Environment to Version 22.10. Since then customers aren't able to subscribe through our webform anymore.
Though when I enter data from an existing customer everything works as usual.

In the catalina.out I get the following error:

Code: Select all

2023-08-04 15:07:50,207: ERROR [ajp-nio-127.0.0.1-8009-exec-5] com.agnitas.emm.core.action.service.impl.ActionOperationSubscribeCustomerImpl - Cannot create customer: null
java.lang.NullPointerException: null
	at com.agnitas.emm.core.action.service.impl.ActionOperationSubscribeCustomerImpl.execute(ActionOperationSubscribeCustomerImpl.java:226) [classes/:?]
	at com.agnitas.emm.core.action.service.impl.EmmActionOperationServiceImpl.executeOperation(EmmActionOperationServiceImpl.java:46) [classes/:?]
	at com.agnitas.emm.core.action.service.impl.EmmActionServiceImpl.executeActions(EmmActionServiceImpl.java:116) [classes/:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) [spring-aop-5.3.18.migrated.jar:5.3.18]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) [spring-aop-5.3.18.migrated.jar:5.3.18]
	at com.sun.proxy.$Proxy51.executeActions(Unknown Source) [?:?]
	at com.agnitas.userform.bean.impl.UserFormImpl.evaluateAction(UserFormImpl.java:349) [classes/:?]
	at com.agnitas.userform.bean.impl.UserFormImpl.evaluateStartAction(UserFormImpl.java:372) [classes/:?]
	at com.agnitas.userform.bean.impl.UserFormImpl.evaluateForm(UserFormImpl.java:400) [classes/:?]
	at com.agnitas.emm.core.userform.service.impl.UserFormExecutionServiceImpl.doExecuteForm(UserFormExecutionServiceImpl.java:284) [classes/:?]
	at com.agnitas.emm.core.userform.service.impl.UserFormExecutionServiceImpl.executeForm(UserFormExecutionServiceImpl.java:107) [classes/:?]
	at com.agnitas.emm.core.userform.web.UserFormExecuteControllerBase.executeForm(UserFormExecuteControllerBase.java:160) [classes/:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:694) [servlet-api.jar:5.0.0]
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:777) [servlet-api.jar:5.0.0]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at com.agnitas.emm.core.commons.filter.OriginUriFilter.doFilter(OriginUriFilter.java:43) [classes/:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at com.agnitas.emm.core.sessionhijacking.web.GroupingSessionHijackingPreventionFilter.doFilter(GroupingSessionHijackingPreventionFilter.java:108) [classes/:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at com.agnitas.web.filter.responseheaders.HttpResponseHeadersFilter.doFilter(HttpResponseHeadersFilter.java:115) [classes/:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) [spring-security-web-5.6.2.migrated.jar:5.6.2-migrated-1.0.0]
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at com.agnitas.emm.core.commons.filter.LoadBalancerFilter.doFilter(LoadBalancerFilter.java:154) [classes/:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at com.agnitas.emm.core.commons.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:80) [classes/:?]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.18.migrated.jar:5.3.18-migrated-1.0.0]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) [catalina.jar:10.0.20]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) [catalina.jar:10.0.20]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:10.0.20]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:10.0.20]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:661) [catalina.jar:10.0.20]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119) [catalina.jar:10.0.20]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:10.0.20]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) [catalina.jar:10.0.20]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:10.0.20]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:356) [catalina.jar:10.0.20]
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:439) [tomcat-coyote.jar:10.0.20]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:10.0.20]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:867) [tomcat-coyote.jar:10.0.20]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1716) [tomcat-coyote.jar:10.0.20]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:10.0.20]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:10.0.20]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:10.0.20]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:10.0.20]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2023-08-04 15:07:50,249: ERROR [ajp-nio-127.0.0.1-8009-exec-5] com.agnitas.emm.core.action.service.impl.EmmActionOperationServiceImpl - Action operation 4 (type SUBSCRIBE_CUSTOMER, company 1, action 4) returned result false and action errors []
2023-08-04 15:07:50,249: ERROR [ajp-nio-127.0.0.1-8009-exec-5] com.agnitas.userform.bean.impl.UserFormImpl - Action Error: CompanyID=1, ActionID=4, error codes=[]
Thanks for your help.
Kind regards,
Mika
MikaLaurer
Posts: 35
Joined: Thu Apr 02, 2020 9:18 am

Re: Customers can't subscribe through Webform anymore

Post by MikaLaurer »

UPDATE:

I updated our Test Environment to 23.04. This seems to fix the issue, though I am not sure how I feel about updating our Production Environment to a Beta-Version of the Software. Is there any estimate when to expect the official release of OpenEMM 23.04. ?
mdoerschmidt
Posts: 25
Joined: Fri Jan 04, 2013 8:55 am

Re: Customers can't subscribe through Webform anymore

Post by mdoerschmidt »

Hi!

The configuration seems to be missing something.

For a quick fix, your can edit the file WEB-INF/classes/applicationContext-service-openemm.xml. I recomment to backup the file before editing.

Open the file in your text editor and locate the line
<bean id="actionOperationSubscribeCustomer" class="com.agnitas.emm.core.action.service.impl.ActionOperationSubscribeCustomerImpl">
It's somewhere near line 53.

Replace the whole block up to the next "</bean>" by

<bean id="actionOperationSubscribeCustomer" class="com.agnitas.emm.core.action.service.impl.ActionOperationSubscribeCustomerImpl">
<property name="companyDao" ref="CompanyDao" />
<property name="uidService" ref="ExtensibleUIDService" />
<property name="datasourceDescriptionDao" ref="DatasourceDescriptionDao" />
<property name="beanLookupFactory" ref="beanLookupFactory" />
<property name="pushSubscriptionService"><null /></property>
<property name="configService" ref="ConfigService" />
<property name="mobilephoneNumberWhitelist" ref="MobilephoneNumberWhitelist" />
<property name="recipientService" ref="recipientService"/>
<property name="blacklistService" ref="BlacklistService"/>
<property name="subscriberLimitCheck" ref="SubscriberLimitCheck" />
</bean>

<bean id="SubscriberLimitCheck" class="org.agnitas.emm.core.recipient.service.impl.SubscriberLimitCheckImpl">
<constructor-arg ref="ConfigService" />
<constructor-arg ref="RecipientDao" />
</bean>

Save the file and restart Tomcat.


Best regards,

Markus
MikaLaurer
Posts: 35
Joined: Thu Apr 02, 2020 9:18 am

Re: Customers can't subscribe through Webform anymore

Post by MikaLaurer »

That worked :)

Thanks for your help :)
Post Reply