我已经从Sun安装了Eclipse for Java EE和Java EE SDK,并试图创建(我的第一个)Java EE应用程序。未找到javax.ejb包(Eclipse)
我创建了一个EJB项目,然后使用Eclipse自己的向导添加了一个会话bean,并找不到包javax.ejb!
我将Java EE SDK配置为目标运行时环境,将JDK 1.6配置为JRE。
这是怎么回事!?如果不是来自Java EE SDK或适用于Java EE开发人员的Eclipse,此软件包来自哪里?
我已经从Sun安装了Eclipse for Java EE和Java EE SDK,并试图创建(我的第一个)Java EE应用程序。未找到javax.ejb包(Eclipse)
我创建了一个EJB项目,然后使用Eclipse自己的向导添加了一个会话bean,并找不到包javax.ejb!
我将Java EE SDK配置为目标运行时环境,将JDK 1.6配置为JRE。
这是怎么回事!?如果不是来自Java EE SDK或适用于Java EE开发人员的Eclipse,此软件包来自哪里?
我假设你有用于Eclipse的Java EE开发工具的WTP。在项目属性中,选择Project Facets,确保添加了一个具有EJB支持的J2EE运行时(例如JBoss),然后为您的项目启用EJB Module facet。您还可以使用File/New .../Project/EJB Project向导创建一个EJB项目,但您仍然需要添加EJB运行时,例如下载并安装JBoss服务器。
我无法重现您的问题。我生成使用GlassFish的测试EJB项目(这就是你在Java EE SDK得到吧?)作为目标运行时:
而该项目肯定包括javax.ejb
类作为依赖性:
感谢您的帮助球员。是的,它看起来Glassfish包含在Java EE SDK中(尽管这并不明显)。我认为这个问题是针对这个问题的,因为运行时没有正确引导库(可能需要选择安装中的'glassfish'子文件夹 - 尽管没有警告这种方法没有奏效)。
随着Pascal提到,我下载并安装了Glassfish 3本身和一个Glassfish'服务器适配器'(在添加新的服务器运行时环境时可用)。现在,在定位Glassfish运行时环境时,它促使我选择glassfish子文件夹,因此现在它可以工作。
感谢您的帮助,这是一个陡峭的学习曲线... :)
javax.ejb包中包含与EJB容器的服务器。一旦您配置了目标运行时,当您创建ejb项目时,该软件包将被添加到您的项目库
右键单击您的项目。 转到属性。 单击目标运行时。 检查JBoss运行时。 单击确定。
该jar文件位于服务器库中。
javax.ejb
软件包不提供标准的Java下载。如果你的项目依赖于它,你需要明确地下载相关的jar并把它放到你的构建路径中。本主题中的某些答案建议您下载应用程序服务器(glassfish
或jboss
)特定的jar。这并不理想。您应该使用应用程序服务器不可知的工件来满足编译时间依赖性。包含这个包的标准工件是javaee-api。只要将它放在构建路径中,Eclipse就会停止抱怨。另外,如果您使用的是依赖管理工具,比如Maven的,使用POM以下依赖性:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>