[ 
https://issues.apache.org/jira/browse/FINERACT-730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17027616#comment-17027616
 ] 

Adam Saghy edited comment on FINERACT-730 at 2/5/20 9:48 AM:
-------------------------------------------------------------

{quote}[~vorburger] : 
 Uh, yeah - that's what this bug is about... thanks for confirming the problem! 
:P
{quote}
You welcome! :)  

The main issue here the below from the gradle:
{code:java}
// if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
sourceSets {
    main {
        java {
            exclude '**/Server*'
            exclude '**/MariaDB4j*'
            exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
        }
    }
{code}
This one is excluding the ServerApplication and ServerMariaDB4JApplication from 
the generated sources if we are not using the dev profile, so the error message 
is true, there was no main class which can be run.

 

After to fix that the next error:
{code:java}
// Caused by: org.springframework.context.ApplicationContextException: Unable 
to start ServletWebServerApplicationContext due to missing 
ServletWebServerFactory bean.
{code}
This one is trickier. I had to exclude the 

 
{code:java}
exclude = 
org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration.class{code}
 

I am assuming the added extra tomcat and the spring boot one were conflicting 
somehow...

After I have got a bunch of NoClassDef error for different kind of tomcat 
classes, so I changed direction, excluded the tomcat from gradle.

 

The bootRun started to work, but now i started to get:
{code:java}
trustAnchors parameter must be non-empty{code}
 

As the jks were on the right place, i am assuming it has something to do, i am 
not using anymore the tomcat 7.X (which was used before), rather the tomcat 
8.5.x which is coming with the Spring Boot.

 

 


was (Author: adamsaghy):
{quote}[~vorburger] : 
 Uh, yeah - that's what this bug is about... thanks for confirming the problem! 
:P
{quote}
You welcome! :)  

The main issue here the below from the gradle:
{code:java}
// if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
sourceSets {
    main {
        java {
            exclude '**/Server*'
            exclude '**/MariaDB4j*'
            exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
        }
    }
{code}
This one is excluding the ServerApplication and ServerMariaDB4JApplication from 
the generated sources if we are not using the dev profile, so the error message 
is true, there was no main class which can be run.

 

After to fix that the next error:
{code:java}
// Caused by: org.springframework.context.ApplicationContextException: Unable 
to start ServletWebServerApplicationContext due to missing 
ServletWebServerFactory bean.
{code}
This one is trickier. I had to exclude the 

 
{code:java}
exclude = 
org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration.class{code}
 

I am assuming the added extra tomcat and the spring boot one were conflicting 
somehow...

After I have got a bunch of NoClassDef error for different kind of tomcat 
classes, so I changed direction, excluded the tomcat from gradle.

 

The bootRun started to work, but now i started to get:
{code:java}
trustAnchors parameter must be non-empty{code}
 

As the jks were on the right place, i am assuming it has something to do, i am 
not using anymore the tomcat 7.X (which was used before), rather the tomcat 
8.5.x which is coming with the Spring Boot.

---------------------------------------------------------------------------------------------------------------------------------------------
 On a fork of the 1.4.0, 
 I am a little bit closer. We have a version which is able to run with Spring 
Boot (we had to remove the uniquely configured tomcat and just let the Spring 
Boot include its own embedded one), but now i am unable to connect to the 
MariaDB4J... seems it is initializing as it should:
{code:java}
16:58:29.410 [main] INFO  ch.vorburger.exec.ManagedProcess - Starting Program 
[repos/fineract/fineract-provider/build/db/bin/bin/mysqld, --no-defaults, 
--console, --skip-grant-tables, --max_allowed_packet=64M, 
--basedir=repos/fineract/fineract-provider/build/db/bin, 
--datadir=repos/fineract/fineract-provider/build/db/data, --port=52086, 
--socket=/private/var/folders/b9/yc_ybbc53cz0tyxq1byshktm0000gn/T/MariaDB4j.52086.sock]
 (in working directory repos/fineract/fineract-provider/build/db/bin)
16:58:29.410 [main] INFO  ch.vorburger.exec.ManagedProcess - Thread will wait 
for "mysqld: ready for connections." to appear in Console output of process 
Program [repos/fineract/fineract-provider/build/db/bin/bin/mysqld, 
--no-defaults, --console, --skip-grant-tables, --max_allowed_packet=64M, 
--basedir=repos/fineract/fineract-provider/build/db/bin, 
--datadir=repos/fineract/fineract-provider/build/db/data, --port=52086, 
--socket=/private/var/folders/b9/yc_ybbc53cz0tyxq1byshktm0000gn/T/MariaDB4j.52086.sock]
 (in working directory repos/fineract/fineract-provider/build/db/bin) for max. 
30000ms
16:58:29.416 [Exec Stream Pumper] INFO  ch.vorburger.exec.ManagedProcess - 
mysqld: dyld: warning, unknown environment variable: DYLD_FALLBACK_LIBRARY_PATH 
16:58:29.540 [Exec Stream Pumper] INFO  ch.vorburger.exec.ManagedProcess - 
mysqld: 2020-01-31 16:58:29 4480974272 [Note] 
/repos/fineract/fineract-provider/build/db/bin/bin/mysqld (mysqld 
10.2.11-MariaDB) starting as process 7738 ...
{code}
But i am unable to connect:
{code:java}
16:58:29.893 [main] INFO  o.a.f.i.c.b.d.DataSourceConfiguration - Created new 
DataSource; url=jdbc:mysql://localhost:3306/mifosplatform-tenants

16:58:29.992 [main] DEBUG o.a.f.i.c.s.TenantDatabaseUpgradeService - Initiated 
liquibase tenants_db, mysql
16:58:29.992 [main] DEBUG o.a.f.i.c.s.TenantDatabaseUpgradeService - Initiated 
tenants_db, mysql
16:58:29.995 [main] DEBUG o.a.f.i.c.s.TenantDatabaseUpgradeService - Start on 
list database 
org.apache.tomcat.jdbc.pool.DataSource@5d957cf0{ConnectionPool[defaultAutoCommit=null;
 defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; 
driverClassName=com.mysql.jdbc.Driver; maxActive=100; maxIdle=100; minIdle=10; 
initialSize=3; maxWait=30000; testOnBorrow=true; testOnReturn=true; 
timeBetweenEvictionRunsMillis=60000; numTestsPerEvictionRun=0; 
minEvictableIdleTimeMillis=60000; testWhileIdle=true; testOnConnect=false; 
password=********; url=jdbc:mysql://localhost:3306/mifosplatform-tenants; 
username=root; validationQuery=SELECT 1; validationQueryTimeout=-1; 
validatorClassName=null; validationInterval=3000; 
accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; 
removeAbandonedTimeout=60; logAbandoned=true; connectionProperties=null; 
initSQL=null; 
jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport;
 jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; 
maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; 
suspectTimeout=60; alternateUsernameAllowed=false; commitOnReturn=false; 
rollbackOnReturn=false; useDisposableConnectionFacade=true; 
logValidationErrors=false; propagateInterruptState=false; 
ignoreExceptionOnPreLoad=false; useStatementFacade=true; }Loading class 
`com.mysql.jdbc.Driver'. This is deprecated. The new driver class is 
`com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI 
and manual loading of the driver class is generally unnecessary.Jan 31, 2020 
4:58:30 PM org.apache.tomcat.jdbc.pool.ConnectionPool initSEVERE: Unable to 
create initial connections of 
pool.com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link 
failure
The last packet sent successfully to the server was 0 milliseconds ago. The 
driver has not received any packets from the server. at 
com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)

{code}
[~vorburger]: Have you faced such an issue?  I am using with default settings 
(localhost, 3306 port, etc.). I am kindly asking you to take a look on it and 
if you have any advice, i would be more than welcome!

 

UPDATE:
In the meantime i have just figured out...the ports are not matching :D

 

> Fix failing gradle task bootRun & can't run simple Spring Boot java -jar 
> (without Tomcat)
> -----------------------------------------------------------------------------------------
>
>                 Key: FINERACT-730
>                 URL: https://issues.apache.org/jira/browse/FINERACT-730
>             Project: Apache Fineract
>          Issue Type: Bug
>          Components: Build, System
>    Affects Versions: 1.3.0
>            Reporter: Courage Angeh
>            Priority: Critical
>              Labels: build
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Running all gradle task: rat, build, bootRun; produces the following error
> *...*
> {{_:bootRun_}}
> {{_Error: Could not find or load main class 
> org.apache.fineract.ServerWithMariaDB4jApplication_}}
> {{_:bootRun FAILED_}}{{_FAILURE: Build failed with an exception._}}{{_* What 
> went wrong:_}}
> {{_Execution failed for task ':bootRun'._}}
> {{_> Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with 
> non-zero exit value 1_}}{{_* Try:_}}
> {{_Run with --stacktrace option to get the stack trace. Run with --info or 
> --debug option to get more log output._}}{{_BUILD FAILED_}}
>  
> More information can be found on the following threads:
> [https://lists.apache.org/thread.html/1f01897413545729420c66355d3211d625ebbd245a98407220783bfc@%3Cdev.fineract.apache.org%3E]
> https://lists.apache.org/thread.html/f4cb9364504a13f71ea7654082274c7ff80c48b19ff76e8cadf3cc7f@%3Cdev.fineract.apache.org%3E



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to