2012-04-28 38 views
2

我正在尝试使用新的Java EE 6.0批注在Java Servlet中定义一个DataSource。例如:@DataSourceDefinition注解。但似乎Tomcat 7.0.x不支持它,因为我无法针对其库编译代码。Tomcat 7和Java EE 6.0 javax.annotation.sql包

我已经搜索Apache Tomcat网站,找到任何关于这一点的信息,没有运气。

所以我的问题是:

  • 你确认我的Tomcat的7.0.x不支持javax.annotation.sql包?
  • 任何想法,如果它会支持它?
  • 任何解决方法在官方支持进入时在Tomcat中获得此类支持?
+0

更改您的问题,强调“无法针对其库编译代码”部分。你想要编译什么?你的类路径上有什么? – skaffman 2012-04-28 10:22:43

+0

那么,我想编译一个尝试使用DataSourceDefinition注解的Java Servlet。在我的类路径中,我拥有所有的tomcat 7.0.22库(位于/ lib目录中的JAR)。而编译器抱怨DataSourceDefinition无法解析为一个类型。它适用于WebServlet等其他注释。谢谢。 – 2012-04-28 11:03:00

回答

5

Tomcat只实现Servlet和JSP。 @DataSourceDefinition是常用注释(JSR 250),Tomcat选择不支持。

你可能想尝试TomEE insead。

+0

谢谢!这就是为什么... – 2012-04-29 08:21:38

+0

Tomcat自Tomcat 6开始实施Common Annotations。请参阅Tomcat lib/annotations-api.jar。 – 2014-07-07 09:15:52

+0

@ Arendv.Reinersdorff它确实,但是'@ DataSourceDefinition'做了什么? web.xml中的'data-source'元素也可以验证,但是它能做什么?请尝试它,让我们知道;) – 2014-07-07 18:28:24

0

这是一个bug in Tomcat,Tomcat的lib/annotations-api.jar未针对Commons注释中的更改进行更新。

将Tomcat 7或8更新到最新版本以查看@DataSourceDefinition注释。

编辑

正如阿尔扬Tijms指出,注释包含在Tomcat中,但可能不会支持。如果您使用它,Tomcat可能不会创建数据源。