Friday, April 27, 2018

Windows: java.net.BindException: Address already in use: bind

Issue Details:


Caused by: java.net.BindException: Address already in use: bind

        at sun.nio.ch.Net.bind0(Native Method)

        at sun.nio.ch.Net.bind(Net.java:433)

        at sun.nio.ch.Net.bind(Net.java:425)

        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)

        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)

        at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210)

        at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:980)

        at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:573)

        at org.apache.catalina.connector.Connector.startInternal(Connector.java:993)

        ... 17 common frames omitted

27-04-2018 23:31:20 [o.a.c.h.Http11NioProtocol:179] log : Pausing ProtocolHandler ["http-nio-3000"]

27-04-2018 23:31:20 [o.a.c.c.StandardService:179] log : Stopping service Tomcat

27-04-2018 23:31:20 [o.a.c.u.LifecycleBase:179] log : The stop() method was called on component [StandardServer[-1]] after stop() had already been called. The second call will be ignored.

27-04-2018 23:31:20 [o.a.c.h.Http11NioProtocol:179] log : Stopping ProtocolHandler ["http-nio-3000"]

27-04-2018 23:31:20 [o.a.c.h.Http11NioProtocol:179] log : Destroying ProtocolHandler ["http-nio-3000"]

27-04-2018 23:31:20 [o.s.b.a.l.AutoConfigurationReportLoggingInitializer:101] logAutoConfigurationReport :

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.

27-04-2018 23:31:20 [o.s.b.d.LoggingFailureAnalysisReporter:42] report :

***************************

APPLICATION FAILED TO START

***************************

Description:

The Tomcat connector configured to listen on port 3000 failed to start. The port may already be in use or the connector may be misconfigured.

Fixation: 

First, find out which PID is using the port 3000. Then kill the process id.

C:\Users\drakula>netstat -ano | find "3000"

  TCP    0.0.0.0:3000           0.0.0.0:0              LISTENING       8464

  TCP    [::]:3000              [::]:0                 LISTENING       8464

C:\Users\drakula>TASKKILL /PID 8464 /F

SUCCESS: The process with PID 8464 has been terminated.

C:\Users\drakula>

Sunday, April 1, 2018

Birds and Animals Photos

Spring Boot - Cannot determine embedded database driver class for database type NONE

ISSUE:

Spring Boot – Cannot determine embedded database driver class for database type NONE

Solution#1:

This problem can be solved by excluding auto-configuration of DataSource in the Spring Boot application class. It can be done using EnableAutoConfiguration annotation as shown in below code.
package com.rizvi.tutorial.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class SpringBootHelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootHelloWorldApplication.class, args);
    }
}
OR,
@SpringBootApplication (exclude = { DataSourceAutoConfiguration.class })
public class SpringBootHelloWorldApplication {
    SpringApplication.run(SpringBootHelloWorldApplication.class, args);
}
By using this configuration, JUnit test case executed fine and no more Cannot determine embedded database driver class for database type NONE error.
Solution#2: =following Fixing by properties file: application.properties
You can add the fallowing line in application.properties file to fix the issue.
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration