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

Migrating application from WAS Full profile 8.5.5.7 to WAS Liberty profile 17.0.0.4

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

A communication failure occurred while attempting to obtain an initial context with the provider URL: "corbaloc:iiop:127.0.0.1:2809". Make sure that any bootstrap address information in the URL is correct and that the target name server is running. A bootstrap address with no port specification defaults to port 2809. Possible causes other than an incorrect bootstrap address or unavailable name server include the network environment and workstation network configuration.

现在,在完整的配置文件中,我知道在哪里可以看到 bootstrap 地址以及如何配置它。不过,我在 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 中的 bootstrap 地址,而不是更改应用程序中的 运行 代码。

对于在 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");

如果您需要将 bootstrap 地址设置为非默认值,您可以在 server.xml 中使用 <iiopEndpoint> 元素进行设置,例如:

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

包含 ORB here 的完整文档。