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

如何为远程JBoss7容器配置arquillian

蒲曦
2023-03-14

详情:

  • Ant Build(使用maven扩展,这是我公司无法更改的解决方案)
  • JBoss 7
  • 容器将独立启动
@RunWith(Arquillian.class)
public class ArquillianArqTest {

    @Deployment @TargetsContainer("jbossas_remote")
    public static WebArchive create() {
        return ShrinkWrap.create(WebArchive.class);
    }

    @Test
    public void testMyDummy() {
        Assert.assertTrue(Boolean.TRUE);
    }

}
<protocol type="jmx-as7">
        <property name="executionType">REMOTE</property>
    </protocol>
    <configuration>
        <property name="providerUrl">jnp://127.0.0.1:15090</property>
        <!--
        <property name="managementAddress">TEST</property>
        <property name="managementPort">TEST2</property>
        -->
    </configuration>
</container>

令我惊讶的是,如果我试图使用property managementAddress,arquillian会忽略它。在这里,就像我使用providerUrl,它会尝试连接到定义的主机:端口。=>这怎么可能?它不应该尝试为JBoss7使用managementAddress吗?

问题:

arquillian.xml似乎被选中了,@targetscontainer似乎也生效了。但是当我尝试运行测试时什么也没有发生。我的意思是部署没有发生,只是挂在那里。我现在不确定我是否使用了正确的管理端口。请参见conf/standalone-dev.xml的摘录:

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
    </interface>
    <interface name="public">
        <any-address/>
    </interface>
    <interface name="unsecure">
        <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
    </interface>
</interfaces>

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-native" interface="management" port="15199"/>
    <socket-binding name="management-http" interface="management" port="15190"/>
    <socket-binding name="management-https" interface="management" port="15143"/>
    <socket-binding name="ajp" port="15009"/>
    <socket-binding name="http" port="15080"/>
    <socket-binding name="https" port="15043"/>
    <socket-binding name="jacorb" interface="unsecure" port="15028"/>
    <socket-binding name="jacorb-ssl" interface="unsecure" port="15029"/>
    <socket-binding name="messaging" port="15045"/>
    <socket-binding name="messaging-throughput" port="15055"/>
    <socket-binding name="remoting" port="15047"/>
    <socket-binding name="txn-recovery-environment" port="15012"/>
    <socket-binding name="txn-status-manager" port="15013"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

啊哈,我想15199港会是正确的。我没有注意到我得到了以下错误:

原因:javax.naming.CommunicationException:无法获得到以下任何URL的连接:localhost:15199并且发现失败,错误:javax.naming.CommunicationException:接收超时[Root异常为java.net.sockettimeoutException:接收超时][Root异常为javax.naming.CommunicationException:未能从org.jnp.interfaces.namingContext.checkref(namingContext.java.interfaces.namingContext.lookup(interfaces.namingcontext.lookup(namingcontext.java:627)在javax.naming.initialcontext.lookup(initialcontext.java:392)在org.jboss.arquillian.container.jbossasremoteContainer.initdeploymentManager(jbossasremoteContainer.jbossasremoteContainer.jbossas.java:204)在avax.naming.CommunicationException:未能从服务器localhost:15199[根异常是java.io.streamcorreptedException:无效流头:0000000c],位于org.jnp.interfaces.namingContext.getServer(NamingContext.java.namingContext.checkRef(NamingContext.java:1533)...66更多原因是:java.io.streamcorreptedException:无效流头:0000000c

这是否意味着我可能混合了不同版本的库?

共有1个答案

谢英耀
2023-03-14

看起来您将JBoss引用为6的远程容器。您应该将JBoss引用为7。org.jboss.arquillian.container.jbossas.remote_6

 类似资料:
  • 我在Unix盒子上安装了ActiveMQ Artemis服务器。我能够创建一个Artemis broker实例,该实例为我提供到运行在上的web控制台的链接。

  • 我正在尝试设置一个SpringMVC Hibernate WAR,用于部署到Jboss 7.1.1Final。我的应用程序使用Hibernate 3.6.1 我遵循了在JBoss中设置Hibernate 3所需的所有步骤。 > 转到 AS 安装并切换到模块/组织文件夹。 为插槽 3 创建了用于保存Hibernate 3 的文件夹 将Hibernate 3 罐子复制到这个新的 AS/模块/组织/冬眠

  • 使用Firebase,在我获取并激活远程配置值之后,调用将给出来自远程源的值。我知道我可以调用或来获取默认值。但是,如何重置已激活的数据,以便调用再次给出默认值? 此外,持久化的激活值是否会被清除?

  • 问题内容: 我是Docker的新手。我已经阅读了docker remote API中的教程。在创建容器方面。它显示了太多无法填充的参数。我想知道什么等效于此命令: docker run -d -p 5000:5000 –restart =始终–name注册表注册表:2。 我对此一无所知。谁能告诉我?谢谢! 问题答案: 原始答案(2015年7月): 如本教程所述(如果启用了远程API的话)(不直接测

  • 配置文件中指令的作用范围可能是整个服务器,也可能是特定的目录、文件、主机、URL。本文阐述如何使用配置段(容器)以及.htaccess文件来改变配置指令的作用范围。 配置段(容器)的类型 相关模块 相关指令 core mod_version mod_proxy <Directory> <DirectoryMatch> <Files> <FilesMatch> <IfDefine> <IfModul

  • 我将从描述我正在工作的架构体系开始。它包含多个代理服务器,这些服务器使用负载均衡器将用户身份验证转发到直接绑定到活动目录的适当代理。身份验证使用用于登录请求来自的计算机的凭据和源IP。服务器将IP和凭据缓存60分钟。我正在使用专门用于此过程的测试帐户,并且仅在单元测试服务器上使用。 我正在使用docker容器在远程服务器上实现selenium webdriver的自动化。我使用python作为脚本

  • 我明白了。错误和不理解缺少的部分。 在nod和chromedriver上安装了chromehttps://github.com/SeleniumHQ/selenium/wiki/ChromeDriver 用Chrome驱动程序测试 消息:测试方法SeleniumGridSimkeTest.单元测试1.引发异常:System.无效操作异常:无法创建新服务: ChromeDriverService构建

  • 我有: 本地PyCharm 带有docker容器的远程服务器 我想在远程docker容器Python解释器中运行本地PyCharm代码(远程服务器上的代码),以便调试。怎么设置? 我还在互联网上找到了一些文章,其中包含我不需要的以下描述: 地方魅力-