我有一个非常简单的Maven项目,只有一个类和pom。该课程使用@Startup
和@Singleton
进行注释,并包含两种方法,一种使用@PostConstruct
注释,另一种使用@Schedule
注释。
pom很简单,如下所示,我相信一切正常,因为我可以从命令行编译和部署项目。但是,我想从Eclipse部署它。
当我右键单击Eclipse中的TomEE服务器时,我收到以下消息:没有可以从服务器添加或删除的资源。
我启用了" EJB Module 3.1"和#34; Java 8"在项目的方面。如果我激活"动态网络模块"而不是" EJB模块"我可以将项目添加到服务器,但它看起来不像是部署了EJB(@PostConstruct
中的断点未命中而日志未打印)。
Eclipse出了什么问题?非常感谢。
@Startup
@Singleton
public class Jobs {
private static final Logger log = Logger.getLogger(Jobs.class.getSimpleName());
@PostConstruct
private void postConstruct() {
log.info("EJB 'Jobs' created!");
}
@Schedule(second = "*/5", minute = "*", hour = "*")
private void run() throws Exception {
// ...
}
}
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>edu.self</groupId>
<artifactId>name</artifactId>
<packaging>ejb</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>name</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>