我正在玩Spring Boot入门指南但是自动配置失败了,我得到了:
java.lang.ClassNotFoundException: javax.jms.ConnectionFactory
似乎是由于Application类的位置。它应该放在哪里?在顶级包(src / main / java)或特定包中?
答案 0 :(得分:78)
您的Application
类应放在特定包中,而不是默认(顶级)包中。例如,将其放在com.example
中,并将所有应用程序代码放在此包或com.example.foo
和com.example.bar
等子包中。
将Application
类放在默认包中,即直接放在src/main/java
中并不是一个好主意,几乎可以肯定会导致您的应用无法启动。如果您这样做,您应该看到此警告:
** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
答案 1 :(得分:4)
不要将启动应用程序类放在默认包中。这将解决问题。
工作代码:
package com.spring.boot.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
答案 2 :(得分:0)
您需要将主类放在包中。因为Spring启动注释@SpringBootApplication将在启动应用程序时查找要扫描的包。
因此请确保在主类文件的顶部有一个包语句。就是这样。
答案 3 :(得分:0)
我遇到了同样的问题, 很快我意识到我没有把我的MAIN方法包括在内。 在包装内部包含主要内容后,弹簧靴启动时没有毛刺。
示例程序(基本) -
package springbootquickstart;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class application {
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(application.class, args);
}
}
答案 4 :(得分:-1)
您的配置应如下所示,Application.java应位于您的软件包的根目录E.g / src / main / java / io / eddumelendez
io.eddumelendez是我的包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
<relativePath />
</parent>
<groupId>io.eddumelendez.jms</groupId>
<artifactId>spring-boot-jms-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>qa</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>