除了在

JBOSS_HOME/modules/com/p6spy/main


添加p6spy.jarmodule.xml的说法:

<module xmlns="urn:jboss:module:1.0" name="com.p6spy">
  <resources>
    <resource-root path="p6spy.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
  </dependencies>
</module>


编辑standalone-full.xml并在datasources/drivers下添加一个条目:

<driver name="p6spy" module="com.p6spy">
  <xa-datasource-class>com.p6spy.engine.spy.P6SpyDriver</xa-datasource-class>
</driver>


jboss-deployment-structure.xml中添加模块依赖项:

<module name="com.p6spy"/>


p6spy替换数据源定义中的原始驱动程序,仍然出现此错误:

Caused by: java.lang.Exception:
  {"JBAS014771: Services with missing/unavailable dependencies" =>
    ["jboss.data-source.jboss/datasources/MyDsjboss.jdbc-driver.p6spyMissing
      [jboss.data-source.jboss/datasources/MyDsjboss.jdbc-driver.p6spy]"
    ]}

最佳答案

这是一个相当老的问题,但是我为将来的读者着想。

您不需要p6spy,JBoss AS 7提供了开箱即用的间谍功能。需要两个步骤。


将以下内容放在standalone.xml的“日志记录”部分中:

<logger category="jboss.jdbc.spy">
    <level name="DEBUG"/>
</logger>

在数据源配置中添加spy =“ true”属性,如下所示:

<datasource jndi-name="java:jboss/datasources/testDS"
    pool-name="test" enabled="true"
    use-java-context="true" spy="true">
    <connection-url>jdbc:postgresql://localhost:5432/postgres</connection-url>
    <driver>postgresql</driver>
    <security>
        <user-name>postgres</user-name>
        <password>******</password>
    </security>
</datasource>



这就对了。现在,您已将所有数据库通信记录在server.log中。间谍日志实际上对于我来说有点太冗长,但是您确实拥有所有信息。

关于java - 如何在jBoss 7.x的Arquillian测试中设置p6spy驱动程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12742881/

10-10 02:48