FAIL - Application at context path [/restTest] could not be

Posted by Nate Bauer on 15-Oct-2019 21:22

Attempting to deploy new webapps on a PASOE instance has been failing for me regardless of the transport (WEB OR REST).  I have done this numerous times prior to today and never encoutered any problems. I tested using the stock business  entity with a REST transport and another configuration with webhandlers combined with the WEB transport. I'm able to deploy the webapp in both situations, but I'm unable to start the service. When using tcman list the application always shows as stopped. When attempting to enable the application with tcman I receive this error:

FAIL - Application at context path [/restTest] could not be started

Below this point is a log entry following a failed enable:

15:53:44.867/8926 [thd-6] WARN  com.progress.caf.logging.CafLogging - Unable to create InputStream for resource "caflogging.properties".
15:53:45.189/9248 [thd-6] WARN  ROOT - Stopping logger context pasoe1
15:53:50.637/5448 [thd-2] WARN  o.s.w.c.s.XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#2' while setting bean property 'sourceList' with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#2': Cannot resolve reference to bean 'OEClientPrincipalFilter' while setting constructor argument with key [10]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
15:53:50.681/5492 [thd-2] ERROR o.s.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#2' while setting bean property 'sourceList' with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#2': Cannot resolve reference to bean 'OEClientPrincipalFilter' while setting constructor argument with key [10]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1534) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1281) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:742) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792) [catalina.jar:8.5.34]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256) [catalina.jar:8.5.34]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.5.34]
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1389) [catalina.jar:8.5.34]
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:692) [catalina.jar:8.5.34]
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:218) [catalina.jar:8.5.34]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) [servlet-api.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [servlet-api.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.34]
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.34]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-websocket.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.34]
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.34]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.34]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:8.5.34]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) [catalina.jar:8.5.34]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:234) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) [catalina.jar:8.5.34]
    at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:291) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:52) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348) [catalina.jar:8.5.34]
    at org.apache.catalina.valves.RemoteHostValve.invoke(RemoteHostValve.java:50) [catalina.jar:8.5.34]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.34]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [catalina.jar:8.5.34]
    at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:479) [tomcat-coyote.jar:8.5.34]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.34]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) [tomcat-coyote.jar:8.5.34]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) [tomcat-coyote.jar:8.5.34]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.34]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.34]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#2': Cannot resolve reference to bean 'OEClientPrincipalFilter' while setting constructor argument with key [10]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:634) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:145) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1198) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1100) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    ... 60 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1571) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1281) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    ... 74 common frames omitted
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    at org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:239) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:435) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:290) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:95) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1567) ~[spring-beans-4.3.19.RELEASE.jar:4.3.19.RELEASE]
    ... 82 common frames omitted
15:53:50.690/5501 [thd-2] WARN  com.progress.caf.logging.CafLogging - Unable to create InputStream for resource "caflogging.properties".
15:53:50.966/5777 [thd-2] WARN  ROOT - Stopping logger context pasoe1

Posted by Michael Jacobs on 16-Oct-2019 09:46

Spring Security error traces while resolving property values during web-app initialization are very verbose.   The key information is:

Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

The translation:  'the validateClientDomain property's value is attempted to be set in a Java OEClientPrincipalFilter class that does not support it'.  

That property appeared in 12.1.  Could something be out of sync between your PASOE installation (in DLC) and the web app you are building?

All Replies

Posted by ssouthwe on 15-Oct-2019 21:40

I don't have an answer for you, but I think I was in a similar situation yesterday.  In my case I had been using PDSOE to sync development with a local instance, and it somehow got out of sorts.  When I used PDSOE to remove the service from my instance, it hosed the instance so bad that even after redeploying, it was acting like what you have here, and none of the apps would start.  I ended up having to delete the instance and redeploy from scratch.  By chance, had you used PDSOE to deploy or sync this?

Does it look like your openedge.properties file got wiped out or truncated?

Posted by Nate Bauer on 15-Oct-2019 21:53

I use PDSOE as my IDE, but my deployment process is manual. I.e. copying the .war to another machine where the PASOE instance lives. I have a number of other services already deployed. I can start and stop those services fine. It's only new services that are causing this issue.

For the record, I do have a new installation of PDSOE and the services being generated all live in a new project. Is it possible I botched something during the project setup?

As for the openedge.properties file oit appears to be intact.

Posted by Michael Jacobs on 16-Oct-2019 09:46

Spring Security error traces while resolving property values during web-app initialization are very verbose.   The key information is:

Error creating bean with name 'OEClientPrincipalFilter' defined in ServletContext resource [/WEB-INF/spring/authFilters.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'validateClientDomain' of bean class [com.progress.appserv.services.security.OEClientPrincipalFilter]: Bean property 'validateClientDomain' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

The translation:  'the validateClientDomain property's value is attempted to be set in a Java OEClientPrincipalFilter class that does not support it'.  

That property appeared in 12.1.  Could something be out of sync between your PASOE installation (in DLC) and the web app you are building?

Posted by Nate Bauer on 16-Oct-2019 16:53

Thanks Micheal you pointed me to my answer.

Turned out it was a compatibility issue in the WEB-INF/spring. I didn't have time to narrow down which combination of xml files were creating the issue, but I was able to determine it wasn't the authFilters.xml alone. For quick resolution I copied over the spring directory from a deployed webapp that was running.

This thread is closed