Wildfly 无法在阴影 JAR WFNAM00026 中检索 TopicConnectionFactory:找不到 URI 的提供程序:null

问题描述 投票:0回答:1

我有一个连接到 Wildfly 27 实例的客户端应用程序。 要求之一是最终客户端是一个易于分发的可执行文件。 供 Windows 系统上的最终用户使用。 为了实现这一点,我使用 Maven Shade 插件和 launch4j。

当我运行创建的 exe 时,查找

TopicConnectionFactory tcf = (TopicConnectionFactory) initialContext.lookup("jms/RemoteConnectionFactory");
失败并显示
WFNAM00026: No provider for found for URI: null ##
错误消息。

如果我从 Eclipse 运行它,它会检索 tcf 作为

 ActiveMQJMSConnectionFactory

我现在的问题是,我可以调试的实例正在工作,并且我无法为查找之外的任何内容添加打印,因为它进入了 Wildfly 类。

如果我直接运行阴影罐子,错误保持不变。

我的结论是,某些东西未包含在阴影罐子中,或者我缺少一些设置。

POM 除外:

               <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.4.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <shadedClassifierName>shaded</shadedClassifierName>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>[SNIP]/main/StartApplication</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </plugin>  

运行 mvn package 时,这一行引起了我的注意,但我无法弄清楚如何解决它,或者它是否相关:

[INFO] Skipping pom dependency org.wildfly:wildfly-jms-client-bom:pom:27.0.1.Final in the shaded jar.

这几天我一直在努力解决这个问题,而且很绝望,所以我希望能抓住任何救命稻草。

jms wildfly maven-shade-plugin
1个回答
0
投票

我找到了配置中缺少资源转换器的解决方案。 我补充道:

 <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.PluginXmlResourceTransformer"/>

我现在工作了。

© www.soinside.com 2019 - 2024. All rights reserved.