将应用程序从WAS完整配置文件8.5.5.7迁移到WAS Liberty配置文件17.0.0.4

时间:2018-04-18 09:30:52

标签: jndi websphere-liberty bootstrapping open-liberty

我已迁移所有内容并将应用程序部署到新服务器。当我尝试运行它时,我得到以下异常:

  

尝试使用提供程序URL获取初始上下文时发生通信失败:"" corbaloc:iiop:127.0.0.1:2809"。确保URL中的任何引导程序地址信息都正确并且目标名称服务器正在运行。没有端口规范的引导程序地址默认为端口2809.除了不正确的引导程序地址或不可用的名称服务器之外的可能原因包括网络环境和工作站网络配置。

现在,在完整的配置文件中,我知道在哪里可以看到引导程序地址以及如何配置它。虽然我无法在Liberty配置文件中找到任何内容。我确实看过几个IBM文档,但无法找到如何做到这一点。这里的任何人都可能指出我正确的方向吗?

只是包含所有内容,这里是jndi.properties文件中的相关部分:

java.naming.provider.url=corbaloc:iiop:127.0.0.1:2809 java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory

除了部署应用程序之外,我还没有使用过WAS,也没有使用JNDI查找或其他任何东西。我知道有一个工厂使用java.properties文件。

由于我希望尽可能少地进行迁移,因此我认为最简单的方法是更改​​Liberty中的引导程序地址,而不是更改应用程序中正在运行的代码。

2 个答案:

答案 0 :(得分:1)

为了在WebSphere Liberty上的应用程序中使用JNDI,不必配置任何特殊属性(例如您提到的java.naming.*)。

要在Liberty上使用JNDI,请在server.xml中启用JNDI功能:

<featureManager>
  <feature>jndi-1.0</feature>
</featureManager>

然后您可以获得InitialContext并在您的应用程序的Java代码中执行查找,如下所示:

DataSource myDs = InitialContext.doLookup("jdbc/myDataSource");

答案 1 :(得分:1)

如果需要将引导程序地址设置为非默认值,则可以使用<iiopEndpoint>元素在server.xml中执行此操作,如:

<iiopEndpoint id="defaultIiopEndpoint" iiopPort="2809"/>

包含ORB here的完整文档。