提问者:小点点

无法在Netbeans7.3.1中创建JavaWebEE7项目


我有一个问题与Netbean,当我试图创建一个JavaWeb按照他们的说明:

选择文件|新建项目。

在类别下,选择JavaWeb。

在项目下,选择Web应用程序。

单击下一步。Web服务器--Apache Tomcat 7.0.42

但是JavaEE版本-只有EE6EE5。为什么它不显示EE7??我应该需要安装任何插件吗?

我安装了follwong:

JDK 1.7_upadte_42
Netbeans 7.3.1
Apache Tomcat 7.0.42 

共3个答案

匿名用户

Tomcat一开始就不是一个JavaEE兼容的应用服务器,它是一个servlet容器1。在官方网站中明确表示:

Apache Tomcat™是JavaServlet、JavaServer Pages、Java表达式语言和JavaWebSocket技术的开源软件实现。

为了使用JavaEE7功能,您需要使用JavaEE7兼容的服务器。目前,AFAIK这仅由GlassFish 4完成。当您访问官方网站时,它在顶部说明:世界上第一个JavaEE7应用服务器。确保您将项目配置为使用GlassFish 4,然后您可以为您的应用程序使用JavaEE7的好处。

请注意,Netbean 7.3.1社区新闻中也介绍了这一点:

NetBeansIDE7.3.1是对NetBeansIDE7.3的更新,包括以下亮点:

  • 支持JavaEE7开发
    • 部署到GlassFish 4(不是Tomcat)
    • 支持主要JavaEE7个规范:JSF 2.2、JPA 2.1、JAX-RS2.0、WebSocket 1.0等

    1至少在Tomcat 7之前不会。看起来从Tomcat 8开始,它将支持JavaEE7配置文件(来自上面链接的官方网站):

    Apache Tomcat项目自豪地宣布Apache Tomcat 8-8.0.0-RC5(alpha)的下一个发布版本。Tomcat 8与JavaEE7一致。

匿名用户

简短回答:您需要将Tomcat 8用于JavaEE7个Web项目。此外(如前所述),您可能需要使用更高版本的NetBeans(7.4)来获得完全支持。

长答案:我在这里回答有点晚了,但是我发布了一个记录在案的答案,以防其他人看到这个问题并澄清误解。与普遍的看法相反,你可以将JavaEE应用程序部署到Tomcat。

这里有两个JavaEE配置文件:“完整”配置文件(包括完整的JavaEE堆栈)和“Web”配置文件(完整配置文件的子集,旨在更容易由servlet容器实现)。如前所述,如果您必须使用仅在完整JavaEE7配置文件中可用的功能,则需要部署到应用服务器,例如Glassfish 4、[Jboss]Wildfly 8.1或JEUS 8。

但是,Tomcat确实符合EEWeb配置文件Java,因此您可以部署JavaEE应用程序,只要您坚持Web配置文件提供的功能。*通常(如果不是通常)Web配置文件就是您所需要的。询问者提到的Web项目只使用Web配置文件中的内容。Tomcat 7符合JavaEE6 Web配置文件,Tomcat 8符合JavaEE7 Web配置文件,因此如果OP想要使用EE7,只需升级到Tomcat 8。

*Oracle通过为每个配置文件分发特定的APIjar(完整配置文件为“javaee-api”,Web配置文件为“javaee-web-api”等)使坚持一个配置文件变得容易。这是创建JavaEE应用程序所需的唯一依赖项,你甚至不必(也不应该)将其捆绑在WAR中。实际上,你可能需要按菜单捆绑(但不应该针对)一些库——或者使用Tomcat的TomEE变体——来使用所有EE7个Web功能。

**如果您在构建文件中看到有关“认可的目录”和“认可的API”的gobbledygook,那不是真正的依赖项,只是为了确保您的代码针对正确的类版本进行编译。例如,标准(非EE)Java7运行时已经包含了JPA的一个版本,但JavaEE7包含了不同的版本,因此编译器需要知道使用哪个版本。不要删除那个gobbledygook,否则您可能(但可能不会)会出现运行时“类版本不正确”的问题。

匿名用户

目前,JavaEE7仅部分支持Netbean 7.3.1。他们将在NB8.0中支持它。此外,您需要Tomcat 8JavaEE7,但他们的支持仍然是部分的。Glassfish 4.0是目前的方式。

以下是一些有用的文档:

http://wiki.netbeans.org/JavaEE7

http://tomcat.apache.org/whichversion.html

http://docs.oracle.com/javaee/7/tutorial/doc/