我正在尝试使用JBoss EAP 7 standalone.xml
中声明的数据源:
<datasource jndi-name="java:jboss/datasources/my_db" pool-name="my_db" ...>
...
</datasource>
顺便说一下,我还没有找到任何关于名称约定的文档,java:/datasources/my_db
也是正确的吗?
然后,只要我将以下内容添加到我的RESTEasy web.xml中(无其他修改):
<context-param>
<param-name>resteasy.jndi.resources</param-name>
<param-value>java:jboss/datasources/my_db</param-value>
</context-param>
应用程序因错误而中断:
java.lang.RuntimeException: RESTEASY003130: Class is not a root resource.
It, or one of its interfaces must be annotated with @Path:
org.jboss.as.connector.subsystems.datasources.WildFlyDataSource implements:
javax.sql.DataSource java.io.Serializable
如何在RESTEasy中访问JNDI数据源?
感谢。
答案 0 :(得分:0)
当您在WildFly / JBossEAP 7容器中运行时,您可以完全忘记它的JAX-RS实现是基于RestEASY构建的。
您可以完全删除web.xml(或至少包含它包含的任何RestEASY配置),然后构建&#34; pure&#34; JAX-RS:
Development/cocos2d-x-3.14/tools/cocos2d-console/bin': not a valid identifier
-bash: export:
您可以注入EJB,CDI bean,PersistenceContexts等。它将会正常工作&#34;。
答案 1 :(得分:0)
DataSource ds = (DataSource) new InitialContext().lookup("java:jboss/datasources/my_db");
我更喜欢使用@Resource