2010-10-20 194 views
2

我已经从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,此软件包来自哪里?

回答

1

我假设你有用于Eclipse的Java EE开发工具的WTP。在项目属性中,选择Project Facets,确保添加了一个具有EJB支持的J2EE运行时(例如JBoss),然后为您的项目启用EJB Module facet。您还可以使用File/New .../Project/EJB Project向导创建一个EJB项目,但您仍然需要添加EJB运行时,例如下载并安装JBoss服务器。

3

我无法重现您的问题。我生成使用GlassFish的测试EJB项目(这就是你在Java EE SDK得到吧?)作为目标运行时

alt text

而该项目肯定包括javax.ejb类作为依赖性:

alt text

0

感谢您的帮助球员。是的,它看起来Glassfish包含在Java EE SDK中(尽管这并不明显)。我认为这个问题是针对这个问题的,因为运行时没有正确引导库(可能需要选择安装中的'glassfish'子文件夹 - 尽管没有警告这种方法没有奏效)。

随着Pascal提到,我下载并安装了Glassfish 3本身和一个Glassfish'服务器适配器'(在添加新的服务器运行时环境时可用)。现在,在定位Glassfish运行时环境时,它促使我选择glassfish子文件夹,因此现在它可以工作。

感谢您的帮助,这是一个陡峭的学习曲线... :)

0

javax.ejb包中包含与EJB容器的服务器。一旦您配置了目标运行时,当您创建ejb项目时,该软件包将被添加到您的项目库

0

右键单击您的项目。 转到属性。 单击目标运行时。 检查JBoss运行时。 单击确定。

该jar文件位于服务器库中。

1

javax.ejb软件包不提供标准的Java下载。如果你的项目依赖于它,你需要明确地下载相关的jar并把它放到你的构建路径中。本主题中的某些答案建议您下载应用程序服务器(glassfishjboss)特定的jar。这并不理想。您应该使用应用程序服务器不可知的工件来满足编译时间依赖性。包含这个包的标准工件是javaee-api。只要将它放在构建路径中,Eclipse就会停止抱怨。另外,如果您使用的是依赖管理工具,比如Maven的,使用POM以下依赖性:

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>8.0</version> 
    <scope>provided</scope> 
</dependency>