我已经从Sun安装了Java for Java EE和Java EE SDK,并且我正在尝试创建(我的第一个)Java EE应用程序。
我创建了一个EJB项目,然后使用Eclipse自己的向导添加了一个会话bean,找不到包javax.ejb!
我已将Java EE SDK配置为目标运行时环境,并将JDK 1.6配置为JRE。
发生什么事了!?如果不是来自Java EE SDK或Eclipse for Java EE开发人员,那么这个包来自哪里!
答案 0 :(得分:3)
我无法重现您的问题。我使用GlassFish生成了一个测试 EJB Project (这是你在Java EE SDK中得到的,对吗?)目标运行时:
该项目肯定包含javax.ejb
个类作为依赖:
答案 1 :(得分:1)
我假设你有使用Eclipse的Java EE开发工具的WTP。在项目属性中,选择Project Facets,确保已添加一个带有EJB支持的J2EE运行时(例如JBoss),然后为项目启用EJB Module facet。您也可以使用File / New ... / Project / EJB Project向导创建EJB项目,但您仍然需要添加EJB运行时,例如下载并安装JBoss服务器。
答案 2 :(得分:1)
javax.ejb包包含在带有ejb容器的服务器中。配置目标运行时后,在创建ejb项目时,程序包将添加到项目库中
答案 3 :(得分:1)
右键单击您的项目。 转到属性。 单击目标运行时。 检查JBoss运行时。 单击确定。
此jar位于服务器库中。
答案 4 :(得分:1)
标准Java下载不提供javax.ejb
包。如果您的项目依赖于它,则需要明确下载相关的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>
答案 5 :(得分:0)
感谢帮助人员。是的,似乎Glassfish包含在Java EE SDK中(尽管这并不是很明显)。我认为问题在于,因为运行时没有正确地通过库(可能你需要在安装中选择'glassfish'子文件夹 - 尽管没有任何警告说这没有用)。 / p>
正如Pascal所提到的,我下载并安装了Glassfish 3本身和Glassfish'服务器适配器'(在添加新的服务器运行时环境时可用)。现在,在定位Glassfish运行时环境时,它促使我选择glassfish子文件夹,因此现在可以正常工作。
感谢您的帮助,这是一个陡峭的学习曲线...... :)