当前位置: 首页 > 知识库问答 >
问题:

使用Wildfly模块而不是wildfly-X-client-bom依赖项

东郭弘方
2023-03-14

我有两个野蝇服务器。服务器A连接到服务器B上的JMS主题和EJB主题,它们都是Wildfly8.2.0.final。

  <dependency>
     <groupId>org.wildfly</groupId>
     <artifactId>wildfly-ejb-client-bom</artifactId>
     <version>8.2.0.Final</version>
     <type>pom</type>
  </dependency>
  <dependency>
     <groupId>org.wildfly</groupId>
     <artifactId>wildfly-jms-client-bom</artifactId>
     <version>8.2.0.Final</version>
     <type>pom</type>
  </dependency>

是否可以去掉这些,而只要求在jboss-deployment-structure.xml中加载特定的Wildfly模块?这些Maven依赖关系似乎会增加我的。war的大小。

谢了!

编辑:

Properties prop = new Properties();
prop.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context context = new InitialContext(prop);
remote.connections=default
remote.connection.default.host=127.0.0.1
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false
remote.connection.default.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS=${host.auth:JBOSS-LOCAL-USER}

remote.connection.default.username=${username}
remote.connection.default.password=${password}

为了连接到服务器B上的JMS主题,我使用:

     final InitialContext initialContext = new InitialContext( m_jndiProperties );
     final ConnectionFactory connectionFactory = getConnectionFactory( initialContext );
     final Connection connection = connectionFactory.createConnection( m_clientKey.getUsername(), m_clientKey.getPassword() );

     try
     {
        final Topic updateTopic = getUpdateTopic( initialContext );
        final TopicSubscriber subscriber;

        if( m_isDurableSubscription )
        {
           connection.setClientID( m_clientKey.getJmsClientId() );
           connection.setExceptionListener( m_exceptionListener );
           final Session subscriberSession = connection.createSession( false, Session.AUTO_ACKNOWLEDGE );
           subscriber = subscriberSession.createDurableSubscriber( updateTopic, m_clientKey.getJmsSubscriptionId() );
        }
        else
        {
           connection.setExceptionListener( m_exceptionListener );
           final Session subscriberSession = connection.createSession( false, Session.AUTO_ACKNOWLEDGE );
           subscriber = ( (TopicSession)subscriberSession ).createSubscriber( updateTopic );
        }

        connection.stop();
        subscriber.setMessageListener( m_msgListener );

        m_connection = connection;

        maybeLogMessage( m_logger, GenericLogLevel.INFO, "Successfully subscribed to topic: '" + topicName + "'." );
     }
     catch( JMSException | NamingException e )
     {
        //noinspection ThrowableResultOfMethodCallIgnored
        JMSCloser.close( connection );
        throw e;
     }

执行这些查找的代码在my.war使用的maven库中。库像往常一样进入WEB-INF/lib/。

共有1个答案

薛晨
2023-03-14

如果您编写标准的EE代码,那么您真的不应该需要这两种代码中的任何一种。如果您使用标准EJB或JMS,Wildfly将自动检测它并为您加载模块。

大多数项目应该只需要这一点:

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-7.0</artifactId>
    <version>1.0.2.Final</version>
    <scope>provided</scope>
    <type>pom</type>
</dependency>
 类似资料:
  • 我们希望从web应用程序部署(WAR文件)中排除。 因此,我们在中有以下配置: 在Wildfly日志中,我看到是作为添加的。但是在搜索时,我只看到以下内容: 2015-04-03 15:22:11,971 DEBUG[org.jboss.modules](ServerService线程池--12)模块javax.servlet.jstl.api:main由本地模块加载器@1f7c9157定义(查找

  • 我用野飞11和Java8。以前,我正在构建一个WAR文件,它需要dom4j JAR文件。我没有把它包含在WAR的WEB-INF/lib目录中,而是通过在WEB-INF/jboss-deployment-structure.xml.中添加一个条目链接到Wildfly模块JAR。所以我在EAR的根部创建了一个jboss-deploymebnt-structure.xml文件,有这些行 现在,当我部署E

  • 我有这个项目https://github.com/andreacatania/libreria 它有三个模块“deWeb”“decore”“libreriaear” 模块libreriaEar创建了一个带有deweb和decore模块的EAR存档。我试图将Hibernate使用到模块“decore”中,但maven没有将依赖项导入到“decore”模块中,因此我收到了NoClassFoundExc

  • 我有一个多模块的项目,即。 在一个开发周期中,我向Module1添加了一个类。module2中的类依赖于它。 我的本地中没有这些工件。运行此: 然而,这至少从两个方面提出了一个问题: 我必须经历较慢的安装阶段,而不是较快的编译阶段 我有同一个项目的两个版本,在这些版本中有冲突的修改。我不能用它们各自的修改运行相同的Java类,只能运行当前安装的修改,考虑到它们都是相同的快照版本 这两种方法都有解决

  • 我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。 这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚

  • 我试图使用Arquillian框架编写一个简单的Widlfly容器测试。我已经遵循了Wildfly容器测试指南中的指南。 得到的pom.xml如下所示。