Spring REST noHandlerFound

huangapple 未分类评论48阅读模式
英文:

Spring REST noHandlerFound

问题

我正在使用Spring MVC创建简单的REST API,但是当我访问http://localhost:8080/fundnesia/api/loans时,出现了"noHandlerFound"错误。似乎Spring没有注册这些@RestController@RequestMapping@PostMapping@DeleteMapping注释。请帮助解决问题。

以下是你的实体类:

@Entity
@Table(name = "loan")
public class Loan {
    // ... 省略其他代码 ...
}

以下是你的配置文件:

@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan(basePackages = "com.fundnesia")
@PropertySource({"classpath:persistence-mysql.properties"})
public class RestConfig implements WebMvcConfigurer {
    // ... 省略其他代码 ...
}

以下是你的DispatcherServlet初始化类:

public class ConfigInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    // ... 省略其他代码 ...
}

以下是你的控制器类:

@RestController
@RequestMapping("/fundnesia/api")
public class LoanResource {
    // ... 省略其他代码 ...
}

以下是你的Service实现类:

@Service
public class LoanServiceImpl implements LoanService {
    // ... 省略其他代码 ...
}

以下是你的Dao实现类:

@Repository
public class LoanDaoImpl implements LoanDao {
    // ... 省略其他代码 ...
}

以下是你的POM文件的一部分:

<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
    <!-- ... 省略其他代码 ... -->
    <dependencies>
        <!-- Spring dependencies -->
        <!-- ... 省略其他代码 ... -->
        <!-- Hibernate dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- MySQL Connector/J dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- C3P0 dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- Jackson dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- JAX-B dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- Servlet API dependency -->
        <!-- ... 省略其他代码 ... -->
        <!-- JSP API dependency -->
        <!-- ... 省略其他代码 ... -->
    </dependencies>
    <!-- ... 省略其他代码 ... -->
</project>

请注意,我已经将代码进行了简化,并只提取了你提供的相关部分。如果你遇到了noHandlerFound错误,请确保你的路径和注解配置正确,并且确保依赖项已经正确地添加到项目的POM文件中。

英文:

I am creating simple REST API with spring mvc, but when I go to http://localhost:8080/fundnesia/api/loans I got noHandlerFound eror. Seems like spring doesnt register these @RestController, @RequestMapping and @PostMapping, @DeleteMapping annotations. Any help please

Here is my entity class

package com.fundnesia.entity;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name=&quot;loan&quot;)
public class Loan {

@Id
@GeneratedValue(strategy =GenerationType.IDENTITY)
@Column(name=&quot;id&quot;)
private int id;

@Column(name=&quot;tenure&quot;)
private int tenure;

@Column(name=&quot;ticket_size&quot;)
private BigDecimal ticketSize;

@Column(name=&quot;fee&quot;)
private BigDecimal fee;

@Column(name=&quot;total_loan&quot;)
private BigDecimal totalLoan;

@Column(name=&quot;installment_per_month&quot;)
private BigDecimal installmentPerMonth;

@Column(name=&quot;status&quot;)
private String status;

public Loan() {
	
}

public Loan(int tenure, BigDecimal ticketSize, BigDecimal fee, BigDecimal totalLoan, BigDecimal installmentPerMonth,
		String status) {
	this.tenure = tenure;
	this.ticketSize = ticketSize;
	this.fee = fee;
	this.totalLoan = totalLoan;
	this.installmentPerMonth = installmentPerMonth;
	this.status = status;
}

public int getId() {
	return id;
}

public void setId(int id) {
	this.id = id;
}

public int getTenure() {
	return tenure;
}


public void setTenure(int tenure) {
	this.tenure = tenure;
}


public BigDecimal getTicketSize() {
	return ticketSize;
}

public void setTicketSize(BigDecimal ticketSize) {
	this.ticketSize = ticketSize;
}

public BigDecimal getFee() {
	return fee;
}

public void setFee(BigDecimal fee) {
	this.fee = fee;
}

public BigDecimal getTotalLoan() {
	return totalLoan;
}

public void setTotalLoan(BigDecimal totalLoan) {
	this.totalLoan = totalLoan;
}

public BigDecimal getInstallmentPerMonth() {
	return installmentPerMonth;
}

public void setInstallmentPerMonth(BigDecimal installmentPerMonth) {
	this.installmentPerMonth = installmentPerMonth;
}

public String getStatus() {
	return status;
}

public void setStatus(String status) {
	this.status = status;
}

@Override
public String toString() {
	return &quot;Loan [id=&quot; + id + &quot;, ticketSize=&quot; + ticketSize + &quot;, fee=&quot; + fee + &quot;, totalLoan=&quot; + totalLoan
			+ &quot;, installmentPerMonth=&quot; + installmentPerMonth + &quot;, status=&quot; + status + &quot;]&quot;;
}


}

Here is the the configuration file

package com.fundnesia.config;

import java.beans.PropertyVetoException;
import java.util.Properties;

import javax.sql.DataSource;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import 
org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
importorg.springframework.transaction.annotation.EnableTransactionManagement;
import 
org.springframework.web.servlet.config.annotation.EnableWebMvc;
import 
org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import com.mchange.v2.c3p0.ComboPooledDataSource;

@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan(basePackages=&quot;com.fundnesia&quot;)
@PropertySource({&quot;classpath:persistence-mysql.properties&quot;})
public class RestConfig implements WebMvcConfigurer {

@Autowired
private Environment env;

@Bean
public DataSource dataSource() {
	ComboPooledDataSource dataSource =new ComboPooledDataSource();
	try {
		dataSource.setDriverClass(env.getProperty(&quot;jdbc.driver&quot;));
	} catch (PropertyVetoException e) {
		throw new RuntimeException(e);
	}
	dataSource.setJdbcUrl(env.getProperty(&quot;jdbc.url&quot;));
	dataSource.setUser(env.getProperty(&quot;jdbc.user&quot;));
	dataSource.setPassword(env.getProperty(&quot;jdbc.password&quot;));
	 dataSource.setInitialPoolSize(Integer.parseInt(env.getProperty(&quot;connection.pool.initialPoolSize&quot;)));
	dataSource.setMinPoolSize(Integer.parseInt(env.getProperty(&quot;connection.pool.minPoolSize&quot;)));
	dataSource.setMaxPoolSize(Integer.parseInt(env.getProperty(&quot;connection.pool.maxPoolSize&quot;)));
	dataSource.setMaxIdleTime(Integer.parseInt(env.getProperty(&quot;connection.pool.maxIdleTime&quot;)));
	return dataSource;
}

@Bean
public LocalSessionFactoryBean sessionFactory() {
	LocalSessionFactoryBean sessionFactory =new LocalSessionFactoryBean();
	sessionFactory.setDataSource(dataSource());
	sessionFactory.setPackagesToScan(env.getProperty(&quot;hibernate.packagesToScan&quot;));
	sessionFactory.setHibernateProperties(hibernateProperties());
	return sessionFactory;
}

private Properties hibernateProperties() {
	Properties properties =new Properties();
	properties.setProperty(&quot;hibernate.dialect&quot;, env.getProperty(&quot;hibernate.dialect&quot;));
	properties.setProperty(&quot;hibernate.show_sql&quot;, env.getProperty(&quot;hibernate.show_sql&quot;));
	return properties;
}

@Bean
@Autowired
public HibernateTransactionManager txManager(SessionFactory sessionFactory) {
	HibernateTransactionManager txManager =new HibernateTransactionManager();
	txManager.setSessionFactory(sessionFactory);
	return txManager;
}
}

Here the DispetcherServlet initializer

package com.fundnesia.config;
importorg.springframework.web.servlet.support.
AbstractAnnotationConfigDispatcherServletInitializer;

public class ConfigInitializer extends 
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class&lt;?&gt;[] getRootConfigClasses() {
	return null;
}

@Override
protected Class&lt;?&gt;[] getServletConfigClasses() {
	return new Class[] {RestConfig.class};
}

@Override
protected String[] getServletMappings() {
	return new String[] {&quot;/&quot;};
}

}

The controller class

package com.fundnesia.controller;

import java.math.BigDecimal;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.fundnesia.entity.Loan;
import com.fundnesia.service.LoanService;

@RestController
@RequestMapping(&quot;/fundnesia/api&quot;)
public class LoanResource {

@Autowired
private LoanService loanService;

@GetMapping(&quot;/loans&quot;)
public List&lt;Loan&gt; findAll() {
	List&lt;Loan&gt; loans= loanService.findAll();
	return loans;
}

@GetMapping(&quot;/loans/{loanId}&quot;)
public Loan findById(@PathVariable(&quot;loanId&quot;) int loanId) {
	return loanService.findById(loanId);
}

@PostMapping(&quot;/loans&quot;)
public Loan save(@RequestBody Loan loan) {
	BigDecimal ticketSize =loan.getTicketSize();
	int tenure =loan.getTenure();
	BigDecimal fee =ticketSize.multiply(BigDecimal.valueOf(tenure * 0.02));
	BigDecimal totalLoan =ticketSize.add(fee);
	BigDecimal installmentPerMonth =totalLoan.divide(BigDecimal.valueOf(tenure));
	loan.setFee(fee);
	loan.setTotalLoan(totalLoan);
	loan.setInstallmentPerMonth(installmentPerMonth);
	loan.setStatus(&quot;SUBMITTED&quot;);
	
	loanService.save(loan);
	return loan;
}

@DeleteMapping(&quot;/loans/{loanId}&quot;)
public String deleteById(@PathVariable(&quot;loanId&quot;) int loanId) {
	loanService.deleteById(loanId);
	return &quot;Deleted loan with Id: &quot; + loanId;
}

}

The Service Impl class

package com.fundnesia.service;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fundnesia.dao.LoanDao;
import com.fundnesia.entity.Loan;

@Service
public class LoanServiceImpl implements LoanService {

@Autowired
private LoanDao loanDao;

@Override
@Transactional
public List&lt;Loan&gt; findAll() {
	return loanDao.findAll();
}

@Override
@Transactional
public void save(Loan loan) {
	loanDao.save(loan);
}

@Override
@Transactional
public Loan findById(int loanId) {
	return loanDao.findById(loanId);
}

@Override
@Transactional
public void deleteById(int loanId) {
	loanDao.deleteById(loanId);
}

}

The Dao Impl class

package com.fundnesia.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.fundnesia.entity.Loan;

@Repository
public class LoanDaoImpl implements LoanDao {

@Autowired
private SessionFactory sessionFactory;

@Override
public List&lt;Loan&gt; findAll() {
	Session session =sessionFactory.getCurrentSession();
	Query&lt;Loan&gt; query =session.createQuery(&quot;from Loan&quot;, Loan.class);
	return query.getResultList();
}

@Override
public void save(Loan loan) {
	Session session =sessionFactory.getCurrentSession();
	session.saveOrUpdate(loan);
}

@Override
public Loan findById(int loanId) {
	Session session =sessionFactory.getCurrentSession();	
	return session.get(Loan.class, loanId);
}

@Override
public void deleteById(int loanId) {
	Session session =sessionFactory.getCurrentSession();
	Query query =session.createQuery(&quot;delete from Loan where id=:loanId&quot;);
	query.setParameter(&quot;loanId&quot;, loanId);
	query.executeUpdate();
}

}

POM file

&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; 
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd">
&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
&lt;groupId&gt;com.sagala&lt;/groupId&gt;
&lt;artifactId&gt;fundnesia&lt;/artifactId&gt;
&lt;packaging&gt;war&lt;/packaging&gt;
&lt;version&gt;0.01&lt;/version&gt;
&lt;name&gt;fundnesia Maven Webapp&lt;/name&gt;
&lt;url&gt;http://maven.apache.org&lt;/url&gt;

&lt;properties&gt;
  &lt;springframework.version&gt;5.2.5.RELEASE&lt;/springframework.version&gt;

  &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
  &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
&lt;/properties&gt;

&lt;dependencies&gt;

&lt;dependency&gt;
  &lt;groupId&gt;org.springframework&lt;/groupId&gt;
  &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
  &lt;version&gt;${springframework.version}&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;org.springframework&lt;/groupId&gt;
  &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
  &lt;version&gt;${springframework.version}&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;org.springframework&lt;/groupId&gt;
  &lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
  &lt;version&gt;${springframework.version}&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
  &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt;
  &lt;version&gt;5.4.1.Final&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;mysql&lt;/groupId&gt;
  &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
  &lt;version&gt;5.1.47&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;com.mchange&lt;/groupId&gt;
  &lt;artifactId&gt;c3p0&lt;/artifactId&gt;
  &lt;version&gt;0.9.5.3&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
	&lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt;
	&lt;artifactId&gt;jackson-databind&lt;/artifactId&gt;
	&lt;version&gt;2.9.10.3&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;javax.xml.bind&lt;/groupId&gt;
  &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt;
  &lt;version&gt;2.3.0&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;junit&lt;/groupId&gt;
  &lt;artifactId&gt;junit&lt;/artifactId&gt;
  &lt;version&gt;3.8.1&lt;/version&gt;
  &lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
  &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
  &lt;version&gt;3.1.0&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
	&lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
	&lt;artifactId&gt;javax.servlet.jsp-api&lt;/artifactId&gt;
	&lt;version&gt;2.3.1&lt;/version&gt;
&lt;/dependency&gt;

&lt;/dependencies&gt;
&lt;build&gt;
  &lt;finalName&gt;fundnesia&lt;/finalName&gt;
	&lt;pluginManagement&gt;
		&lt;plugins&gt;
			&lt;plugin&gt;
				&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
				&lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
				&lt;version&gt;3.2.0&lt;/version&gt;
			&lt;/plugin&gt;
		&lt;/plugins&gt;
	&lt;/pluginManagement&gt;
&lt;/build&gt;
&lt;/project&gt;

StackTrace

Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/9.0.30
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Dec 7 2019 16:42:04 UTC
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.30.0
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 7
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.1
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          x86
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_162
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_162-b12
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\Users\Tunggul\eclipse- 
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software 
Foundation\Tomcat 9.0
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: - 
Dcatalina.base=C:\Users\Tunggul\eclipse- 
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program 
Files\Apache Software Foundation\Tomcat 9.0
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Tunggul\eclipse- 
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
\wtpwebapps
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program 
Files\Apache Software Foundation\Tomcat 9.0\endorsed
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Mei 02, 2020 12:02:03 PM 
org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows 
optimal performance in production environments was not found on the 
java.library.path: [C:\Program 
Files\Java\jre1.8.0_162\bin;C:\Windows\Sun\Java\bin;C:\Windows\
system32;C:\Windows;C:/Program 
Files/Java/jre1.8.0_162/bin/client;C:/Program 
Files/Java/jre1.8.0_162/bin;C:/Program 
Files/Java/jre1.8.0_162/lib/i386;C:\ProgramData\Oracle\Java\
javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program 
Files\Git\cmd;C:\Program Files\Git\mingw32\bin;C:\Program 
Files\Git\usr\bin;;C:\Users\Tunggul\AppData\Local\Programs\
Microsoft VS Code\bin;C:\Program Files\eclipse;;.]
Mei 02, 2020 12:02:03 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [&quot;http-nio-8080&quot;]
Mei 02, 2020 12:02:03 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [&quot;ajp-nio-8009&quot;]
Mei 02, 2020 12:02:03 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [980] milliseconds
Mei 02, 2020 12:02:04 PM org.apache.catalina.core.StandardService 
startInternal
INFO: Starting service [Catalina]
Mei 02, 2020 12:02:04 PM org.apache.catalina.core.StandardEngine 
startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.30]
Mei 02, 2020 12:02:08 PM org.apache.jasper.servlet.TldScanner 
scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. 
Enable debug logging for this logger for a complete list of JARs 
that were scanned but no TLDs were found in them. Skipping unneeded 
JARs during scanning can improve startup time and JSP compilation 
time.
Mei 02, 2020 12:02:15 PM 
org.apache.catalina.core.ApplicationContext log
INFO: 1 Spring WebApplicationInitializers detected on classpath
Mei 02, 2020 12:02:15 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. 
Enable debug logging for this logger for a complete list of JARs 
that were scanned but no TLDs were found in them. Skipping unneeded 
JARs during scanning can improve startup time and JSP compilation 
time.
Mei 02, 2020 12:02:15 PM 
org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring DispatcherServlet &#39;dispatcher&#39;
Mei 02, 2020 12:02:15 PM 
org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: Initializing Servlet &#39;dispatcher&#39;
Mei 02, 2020 12:02:16 PM com.mchange.v2.log.MLog 
INFO: MLog clients using java 1.4+ standard logging.
Mei 02, 2020 12:02:16 PM com.mchange.v2.c3p0.C3P0Registry 
INFO: Initializing c3p0-0.9.5.3 [built 27-January-2019 00:11:37 
-0800; debug? true; trace: 10]
Mei 02, 2020 12:02:17 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.4.1.Final}
Mei 02, 2020 12:02:17 PM 
org.hibernate.annotations.common.reflection.java.
JavaReflectionManager &lt;clinit&gt;
INFO: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
Mei 02, 2020 12:02:18 PM 
com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource 
INFO: Initializing c3p0 pool... 
com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -&gt; 3, 
acquireRetryAttempts -&gt; 30, acquireRetryDelay -&gt; 1000, 
autoCommitOnClose -&gt; false, automaticTestTable -&gt; null, 
breakAfterAcquireFailure -&gt; false, checkoutTimeout -&gt; 0, 
connectionCustomizerClassName -&gt; null, connectionTesterClassName -&gt; 
com.mchange.v2.c3p0.impl.DefaultConnectionTester, 
contextClassLoaderSource -&gt; caller, dataSourceName -&gt; 
1hge9kua91mr8xjwcsbkvv|8b45e, debugUnreturnedConnectionStackTraces 
-&gt; false, description -&gt; null, driverClass -&gt; 
com.mysql.jdbc.Driver, extensions -&gt; {}, factoryClassLocation -&gt; 
null, forceIgnoreUnresolvedTransactions -&gt; false, 
forceSynchronousCheckins -&gt; false, forceUseNamedDriverClass -&gt; 
false, identityToken -&gt; 1hge9kua91mr8xjwcsbkvv|8b45e, 
idleConnectionTestPeriod -&gt; 0, initialPoolSize -&gt; 5, jdbcUrl -&gt; 
jdbc:mysql://localhost:3306/loan_calculator?useSSL=false, 
maxAdministrativeTaskTime -&gt; 0, maxConnectionAge -&gt; 0, maxIdleTime 
-&gt; 3000, maxIdleTimeExcessConnections -&gt; 0, maxPoolSize -&gt; 20, 
maxStatements -&gt; 0, maxStatementsPerConnection -&gt; 0, minPoolSize -&gt; 
5, numHelperThreads -&gt; 3, preferredTestQuery -&gt; null, 
privilegeSpawnedThreads -&gt; false, properties -&gt; {user=******, 
password=******}, propertyCycle -&gt; 0, 
statementCacheNumDeferredCloseThreads -&gt; 0, testConnectionOnCheckin 
-&gt; false, testConnectionOnCheckout -&gt; false, 
unreturnedConnectionTimeout -&gt; 0, userOverrides -&gt; {}, 
usesTraditionalReflectiveProxies -&gt; false ]
Mei 02, 2020 12:02:18 PM org.hibernate.dialect.Dialect &lt;init&gt;
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Mei 02, 2020 12:02:20 PM 
org.hibernate.engine.transaction.jta.platform.internal.
JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: 
[org.hibernate.engine.transaction.jta.platform.internal.
NoJtaPlatform] 
Mei 02, 2020 12:02:21 PM 
org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: Completed initialization in 6287 ms
Mei 02, 2020 12:02:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [&quot;http-nio-8080&quot;]
Mei 02, 2020 12:02:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [&quot;ajp-nio-8009&quot;]
Mei 02, 2020 12:02:21 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [17,684] milliseconds
Mei 02, 2020 12:02:23 PM 
org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping for GET /fundnesia/api/loans

huangapple
  • 本文由 发表于 2020年5月2日 13:19:27
  • 转载请务必保留本文链接:https://java.coder-hub.com/61554839.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定