我有一个Java/Spring web应用程序,它需要作为war文件部署在Wildfly和Websphere上
应用程序正在使用具有JNDI名称的datasource:
public DataSource dataSource() { final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); dsLookup.setResourceRef(true); DataSource dataSource = dsLookup.getDataSource("jdbc/myDS"); return dataSource; }
但Wildfly JNDI名称必须以“java:/”或“java:jboss/”开头
更改webconfig.java
可以完成以下工作:
DataSource dataSource = dsLookup.getDataSource("java:/myDS");
哪个JNDI数据源名称在Wildfly和Websphere上都可以使用(可能在其他应用服务器上也可以吗?)
如果您使用资源引用来进行查找,那么在Liberty和Wildfly中,它们都是相对于java:comp/env的。
定义数据源有两种方法。一种是使用javax.annotation.Resource注释。这可以用于类型、方法或字段定义。
您还可以在web.xml或ejb-jar.xml中使用resource-ref元素来完成此操作:
<resource-ref>
<description />
<res-ref-name>myRef</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
如果在应用程序代码中提供用户ID/密码,则res-auth
元素应包含application
问题内容: 我正在使用Websphere Portal 7.0并使用RAD 8.0创建一个portlet。我的portlet试图建立到远程服务器的db2连接。我在本地编写了一个Java程序来与服务器建立基本的JDBC连接,并从表中获取记录。代码工作正常;但是,当我将代码以及db2jcc4.jar添加到我的portlet时,连接不起作用。我正在使用基本的: 我认为使用Websphere数据源是正确的
环境- WAS 7.0和EJB 2.1 我有一个耳朵与EJB罐文件。它有一些远程EJB(EJB 2.1),我想转换为本地EJB。因此,我必须按照我的理解修改ejb-jar.xml。 我修改的ejb-jar xml文件如下: ,并且是本地 ejb 新添加的标记。 我的绑定文件如下 - 在部署 EAR 文件期间,我收到以下错误 - com . IBM . WebSphere . management
我有一个遗留的 EJB 2 应用程序,我将其部署到 Websphere 8.5 中。该应用程序具有依赖关系,这些依赖关系定义了与数据源的 JNDI 绑定.xml和 /元.xml数据源.xml 我不允许更改这些依赖项中的代码,也不能更改Websphere的配置。但我可以更改jar文件中的配置文件。 我想在我的应用程序中覆盖有效的JNDI绑定。是否可以定义一个将添加到Ear的文件来覆盖这些绑定? ej
我部署了两只耳朵,其中一只我无法使用。有一个文件application-web-bnd.xml,其中引用了数据源 在我的server.xml文件中,我定义了datasource 在我没有访问权限的代码中,有一个staralContext java:comp/env/jdbc/db。 对数据源的引用存在,但数据源不存在。我无法访问 web.xml以创建参考 。我不知道如何覆盖它。 你能帮忙吗? 我的
nameNotFoundException:无法解析“localds”。已解决“”;剩余名称“localds” 有谁能帮忙吗。我遵循了这个stackOverflow问题Tomcat vs Weblogic JNDI查找中的说明,但没有任何成功。
我正在用Hibernate和Websphere application Server 8.0开发一个应用程序。 我已经在Websphere中创建了一个数据源,它可以成功地与数据库连接。 但从应用程序我得到以下错误: 系统错误创建会话:org。冬眠服务jndi。JndiException:无法查找JNDI名称[java:comp/env/jdbc/OracleDS] 以下是我所做的设置: Websp