java 无法从JBoss Wildfly 8在WebLogic 12服务器中执行JNDI查找

vsnjm48y  于 2023-05-12  发布在  Java
关注(0)|答案(2)|浏览(90)

我正在尝试将消息放入WebLogic服务器的JMS队列中。我的应用程序运行在Wildfly 8 AS中。我已经编写了JNDI查找的代码,然后将消息放入JMS队列。我使用以下代码初始化InitialContext:

private static InitialContext getInitialContext(String url) throws NamingException {
        Hashtable<String, String> env = new Hashtable<>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        env.put(Context.PROVIDER_URL, url);
        return new InitialContext(env);
    }

我添加了以下Maven依赖项,用于添加WebLogic jar

<dependency>
        <groupId>weblogic</groupId>
        <artifactId>weblogic</artifactId>
        <version>12.2.1</version>
    </dependency>
    <dependency>
        <groupId>weblogic</groupId>
        <artifactId>webservices</artifactId>
        <version>12.2.1</version>
    </dependency>

但是maven的依赖性并没有得到解决。我需要添加任何maven仓库吗?
如果还有什么需要的,谁能给我指点一下?
问候你,Anirban.

bq3bfh9z

bq3bfh9z1#

maven存储库中不提供客户端jar工件。您必须获取位于weblogic服务器的WL_HOME\server\lib目录中的wlthint3client.jar。这个jar包含客户端调用weblogic服务器所需的所有类。
然后,您可以在您的maven存储库中手动安装它,并将其用作pom.xml中的maven依赖项
最后,您可以使用weblogic.jndi.WLInitialContextFactory工厂查找InitialContext

9gm1akwq

9gm1akwq2#

检查的答案实际上是错误的,尽管在写作时它可能是正确的。
您可以在maven中执行与包含weblogic.jar(它只是一个带有一堆类路径条目的元inf)相同的操作,方法是包含:

<dependency>
    <groupId>com.oracle.weblogic</groupId>
    <artifactId>weblogic-server-pom</artifactId>
    <version>12.2.1-4-0</version>
    <type>pom</type>
</dependency>

在你的maven POM中-当然,用你的.m2文件夹中的版本替换这个版本。(如果没有,就什么也不能用,您必须在weblogic文档中查找如何将weblogicmaven工件安装到您的weblogic版本的本地maven存储库中)
这本质上是一个镜像weblogic.jar的依赖项列表它并不适用于所有情况,因为某些使用示例(通常需要使用wlManagementMBean.jar的示例)需要使用硬编码的weblogic安装路径(为此,您必须直接将weblogic.jar添加到classpath)
但是它应该可以用于使用WeblogicJNDI查找和JMS服务器API等的项目
请注意:第一次运行maven将花费几分钟时间,因为maven会自动尝试检查maven中心以获取工件更新,而不管本地安装如何

相关问题