无法在Netbeans7.3.1中创建Java Web EE 7项目

时间:2013-10-22 05:35:19

标签: java tomcat netbeans netbeans-7

我遇到Netbeans的问题,当我尝试按照他们的指示创建Java Web时:

选择文件|新项目。

在“类别”下,选择“Java Web”。

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

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

但Java EE版本仅为EE6EE5。为什么不显示EE7? 我应该安装任何插件吗?

我安装了以下内容:

JDK 1.7_upadte_42
Netbeans 7.3.1
Apache Tomcat 7.0.42 

3 个答案:

答案 0 :(得分:8)

Tomcat 不是一个Java EE兼容的应用程序服务器,它是一个servlet容器 1 official site

中明确说明了这一点
  

Apache Tomcat™是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技术的开源软件实现。

要使用Java EE 7+功能,您需要使用符合Java EE 7+的服务器。目前,AFAIK仅由GlassFish 4完成。当您访问官方网站时,它在顶部说明:世界上第一个Java EE 7应用服务器。确保将项目配置为使用GlassFish 4,然后您可以为应用程序使用Java EE 7优势。

请注意,Netbeans 7.3.1 community news

中也包含了这一点
  

NetBeans IDE 7.3.1是对NetBeans IDE 7.3的更新,包括以下要点(强调我的):

     
      
  • 支持Java EE 7开发      
        
    • 部署到 GlassFish 4 (不是Tomcat)
    •   
    • 支持主要Java EE 7规范:JSF 2.2,JPA 2.1,JAX-RS 2.0,WebSocket 1.0及更多
    •   
  •   

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

  

Apache Tomcat项目很自豪地宣布Apache Tomcat 8的下一个候选版本 - 8.0.0-RC5(alpha)。 Tomcat 8与Java EE 7保持一致。

答案 1 :(得分:4)

简答:您需要将Tomcat 8+用于Java EE 7 Web项目。此外(如上所述),您可能需要使用更高版本的NetBeans(7.4+)才能获得全面支持。

长答案: 我在这里回答的时间有点迟,但是如果其他人看到这个问题并清除误解,我会在记录中找到答案。与普遍看法相反,您可以将Java EE应用程序部署到Tomcat。

这里有两个相关的Java EE配置文件:“完整”配置文件(包括完整的Java EE堆栈)和“Web”配置文件(完整配置文件的一个子集,旨在通过servlet容器更轻松地实现)。如上所述,如果您必须使用仅在完整Java EE 7配置文件中提供的功能,则需要部署到应用服务器,例如Glassfish 4 +,[Jboss] Wildfly 8.1+或JEUS 8.

但是,Tomcat 确实符合Java EE Web 配置文件,因此您可以将Java EE应用程序部署到该配置文件中,只要您坚持使用它提供的功能即可。 Web配置文件。*通常(如果不是通常)Web配置文件就是您所需要的。提问者提到的Web项目仅使用来自Web配置文件的内容。 Tomcat 7符合Java EE 6 Web配置文件,Tomcat 8符合Java EE 7 Web配置文件,因此如果他想使用EE 7,OP只需要升级到Tomcat 8。

* Oracle通过为每个配置文件分发特定的API jar(“javaee-api”用于完整配置文件,“javaee-web-api”用于Web配置文件等),可以轻松地粘贴到一个或另一个配置文件。这是创建Java EE应用程序所需的唯一依赖项,您甚至不必(也不应该)将它捆绑在WAR中。实际上,您可能需要捆绑(但不能编译)某些库(或使用Tomcat的TomEE变体)来使用所有EE 7 Web功能。

**如果您在构建文件中看到gobbledygook关于“认可的dirs”和“认可的API”,那不是真正的依赖关系,只是为了确保您的代码针对正确的类版本进行编译。例如,标准(非EE)Java 7运行时已包含JPA版本,但Java EE 7包含不同版本,因此编译器需要知道要使用的版本。不要拿出那个gobbledygook或你可以(但可能不会)运行时“类版本不正确”的问题。

答案 2 :(得分:2)

目前,Netbeans 7.3.1仅部分支持Java EE 7。他们将在NB 8.0中支持它。此外,您需要Tomcat 8 for Java EE 7,但他们的支持仍然是部分的。 Glassfish 4.0是现在的方式。

以下是一些有用的文档:

http://wiki.netbeans.org/JavaEE7

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

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