getting below error while doing ageing.process=true in jbilling - jbilling

I am getting below exception while trying to change run ageing flag to true.
Jbillng.property file
process.frequency=5
# if true, all the passwords in the system are encrypted with a one-way method
# if false, only root and clerk are encrypted, the rest are not (needed if
# you will show passwords to the users in the invoices/notifications or for the
# lost password feature).
password_encrypt_all=true
# the password that the user account is set to when a user is locked out (too many login retries)
lockout_password=totalSecret
# if the daily batch includes running the billing process
process.run_billing=false
# if the daily batch includes running the ageing process
process.run_ageing=true
Exception :
Caused by: java.lang.NullPointerException
2015-01-30 15:53:51,925 2095046 DEBUG [com.sapienter.jbilling.batch.ageing.AgeingProcessUserReader] (taskExecutor-6:) Entering afterPropertiesSet()
2015-01-30 15:53:51,925 2095046 ERROR [com.sapienter.jbilling.batch.ExceptionSkipPolicy] (taskExecutor-6:) Skipping processing of user, exception:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.scopedTarget.scopedTarget.scopedTarget.ageingProcessUserReader' defined in ServletContext resource [/WEB-INF/spring/ageing-process-job-context.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.doCreateBean(ReloadAwareAutowireCapableBeanFactory.java:130)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:332)
at org.springframework.batch.core.scope.StepScope.get(StepScope.java:150)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:328)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:33)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:182)

Actually in jbilling telco if you have more that 1 company this error is getting.
please tyr to remove other entities from database by replace is_deleted=1. and check whether you will get same error or not.

AgeingProcessUserReader,can help if you share the code, because from the error what i see is , the problem is in the code. jbilling wouldn't complain about it if you just set the value true of process.agieng=true.
check this class "AgeingProcessUserReader"

Related

Driver claims to not accept jdbcUrl, ${JDBC_DATABASE_URL} when setting externalized config

I'm using the instructions in this Heroku article to attempt to externalize database strings for a hosted Postgres DB. When I use the literal string, I can connect with no issues. However, when I attempt to use the externalized variable ${JDBC_DATABASE_URL}, I'm getting the error message:
2022-06-17 17:30:17.063 WARN 7712 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${JDBC_DATABASE_URL}
It looks like it's interpreting the externalized variable itself as a literal string, but I have no idea why. I haven't included any other config files because it is currently working with the database string, but I can attach them if need be. Any ideas?

org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]

Here is the error message.
2020-06-15 13:10:23.623 ERROR 37317 --- [nio-8887-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]
### The error may exist in tech/bootcamp/community/mapper/UserMapper.java (best guess)
### The error may involve tech.bootcamp.community.mapper.UserMapper.insert
### The error occurred while executing an update
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]] with root cause
org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]
at tech.bootcamp.community.controller.AuthorizeController.callback(AuthorizeController.java:52) ~[classes/:na]
#Autowired
private UserMapper userMapper;
it says this line causes the error.
userMapper.insert(user);
So what's the user name and password actually are?
You can set on application.properties:
spring.datasource.username=dbuser
spring.datasource.password=dbpass
If not set explicitly, default values are used, "sa" and "".
The following worked for me as well.
spring.datasource.username=sa
spring.datasource.password=
After running spring go to http://localhost:8080/h2-console/
Use same config JDBC URL: jdbc:h2:mem:testdb from your application properties
connect with empty user namer and password if you not set like answer above from DEWA Kazuyuki - 出羽和之.
User Name:
Password:
if we do not want to use default username(sa) and password("") than we need to define username and password in application.properties file example :-
spring.datasource.username=mydb
spring.datasource.password=mypass
you can use any username and any password if you want to use username other than sa , if you are using sa as a username then you need to define passwordf as a blank

java.security.AccessControlException in Spring Application

I have a file described in src/resources/database-context.xml
<context:property-placeholder
location="file:#{systemProperties['CONF_DIR']}/environment.properties"
ignore-unresolvable="true"/>
For some reason its not being read, and I get the following error...
14:15:32.454 [main] WARN org.springframework.context.support.ClassPathXmlApplicationContext - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: \environment.properties (The system cannot find the file specified)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:89)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:162)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.mizuho.ats.main.LoanAdjust.main(LoanAdjust.java:80)
Caused by: java.io.FileNotFoundException: \environment.properties (The system cannot find the file specified)
But the real reason might an access control issue...
14:15:32.282 [main] DEBUG org.springframework.core.SpringProperties - Could not retrieve system property 'spring.beaninfo.ignore': java.security.AccessControlException: access denied ("java.util.PropertyPermission" "spring.beaninfo.ignore" "read")
14:15:32.298 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0'
14:15:32.298 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Finished creating instance of bean 'org.mybatis.spring.mapper.MapperScannerConfigurer#0'
14:15:32.298 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
14:15:32.298 [main] DEBUG org.springframework.core.SpringProperties - Could not retrieve system property 'spring.getenv.ignore': java.security.AccessControlException: access denied ("java.util.PropertyPermission" "spring.getenv.ignore" "read")
And its failing to read the entries...
14:43:45.274 [main] INFO org.springframework.core.env.StandardEnvironment - Caught AccessControlException when accessing system property [CONF_DIR];
its value will be returned [null]. Reason: access denied ("java.util.PropertyPermission" "CONF_DIR" "read")
Of course, the file exists in the path. And there is a security policy file with the following specification...(may be its not even loading.)
grant {
// Allow everything
permission java.security.AllPermission;
};
The original application was developed in an environment having only JDK 1.7, and I am working on a JDK 1.8 environment, though I have explicity specified 1.7 JDK in the compile settings and 1.7 JRE in the Run Configurations JRE settings.
What might be causing this? Any resolution?
The answer is in creating an entry in your lib/security policy file of your JRE.
Usually for Spring applications, the src/resources policy file will suffice, but for some reason it was not, especially when the logs/other files were going to be read from locations outside the project folders. Its a run time exception.

Unable to instantiate H2

I am trying to setup H2 as in-memory database. I have configured it as :
spring:
profiles: qa
datasource:
#url: jdbc:h2:mem:testdb;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS "public"
jdbc-url: jdbc:mysql://localhost:3306/lisdashboard
username: '#lisdashboard.db.username#'
password: '#lisdashboard.db.password#'
h2:
console:
path: /admin/h2-console
However I am getting this error when I try to run it
- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Driver org.h2.Driver claims to not accept jdbcUrl, jdbc:mysql://localhost:3306/lisdashboard
-
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
- Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]:
Invocation of init method failed; nested exception is java.lang.RuntimeException: Driver org.h2.Driver claims to not accept jdbcUrl, jdbc:mysql://localhost:3306/lisdashboard
I am not sure why it doesn't accept the jdbc url, Is there any issue in the format of my confg?
You are using a MySQL jdbc url to try to connect to an H2 instance.
You need to replace your configuration to use the url jdbc:h2:mem: instead of the one you are using now jdbc:mysql://localhost:3306/lisdashboard.
If you want to use a different type of H2 instance, check the documentation to see the alternatives (such a file instance).
If you want to use H2 your config should look like:
spring:
profiles: qa
datasource:
url: jdbc:h2:mem:testdb;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS "public"
username: '#lisdashboard.db.username#'
password: '#lisdashboard.db.password#'
h2:
console:
path: /admin/h2-console
You had a # infront of the URL and # is a comment in YAML

Vulas startup failed with an exception in the backend

I am trying to run the Vulas docker setup on one of our VMs. I followed this guide. When I perform the Run stage of the documentation, the backend service fails to start. I have the following exception which explains me nothing.
#docker logs d04ea50241f7
2018-12-18 10:28:50.841 ERROR 9 --- [ost-startStop-1] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
org.postgresql.util.PSQLException: FATAL: role "root" does not exist
at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:712) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:215) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.Driver.makeConnection(Driver.java:406) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.Driver.connect(Driver.java:274) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319) ~[tomcat-jdbc-8.5.32.jar!/:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
2018-12-18 10:28:50.846 ERROR 9 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'dispatcherServletRegistration' defined in class path resource [org/springframework/boot/autoconfigure/web/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]: Unsatisfied dependency expressed through method 'dispatcherServletRegistration' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hubIntegrationController' defined in URL [jar:file:/vulas/rest-backend.jar!/BOOT-INF/classes!/com/sap/psr/vulas/backend/rest/HubIntegrationController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationRepositoryImpl': Unsatisfied dependency expressed through field 'appRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationRepository': Cannot create inner bean '(inner bean)#5368a637' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#5368a637': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain database connection
------------------------------------
SQL State : 28000
Error Code : 0
Message : FATAL: role "root" does not exist
The docker containers that are up are
~/vulas/vulnerability-assessment-tool# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05a90996f80d docker_haproxy "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 0.0.0.0:8034->7070/tcp, 0.0.0.0:8033->8080/tcp vulas-os-haproxy
2877eeb8db76 docker_patch-lib-analyzer "/vulas/run.sh" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-patch-lib-analyzer
7d05307d9149 docker_frontend-bugs "catalina.sh run" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-frontend-bugs
84311f182d98 docker_rest-lib-utils "/bin/sh -c 'java -D…" 7 minutes ago Up 7 minutes 8092/tcp vulas-os-rest-lib-utils
a55cc03b8ee8 docker_frontend-apps "catalina.sh run" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-frontend-apps
45a7210170e7 docker_postgresql "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:8032->5432/tcp vulas-os-postgresql
since the above comment resolves the issue I will post an answer to give more visibility to this question.
The issue you faced was caused by a missing or changed user in the .env file used by Vulas. At this line we can see that Postgres, before creating the database, checks if both POSTGRES_USER and POSTGRES_PASSWORD are set. I can see that in your output the Postgres container started, so at some point in time in the .env file there were those environment variables set. Probably you changed or deleted the POSTGRES_USER. By doing so Vulas tried to connect to Postgres with a different user with respect to the one that created the database, thus failing to initialize the connection.
It is mandatory to modify the .env file before running Vulas for the first time. If you need to change the connection's parameters to the database you need to create a new one. In order to drop the current DB and create a new one give the command docker-compose down -v while in the docker folder of Vulas' repository. This will erase each volume.

Resources