2012-10-05 68 views
2

除了設立模塊中如何在jBoss 7.x上的Arquillian測試中設置p6spy驅動程序?

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]" 
    ]} 

回答

8

這是一個相當古老的問題,但我回答爲了未來的讀者。

你不需要p6spy,JBoss AS 7提供了開箱即用的間諜功能。需要兩個步驟。

  • 在獨立的日誌記錄部分添加以下內容。XML:

    <logger category="jboss.jdbc.spy"> 
        <level name="DEBUG"/> 
    </logger> 
    
  • 添加間諜=」真」屬性,在數據源配置如下:

    <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中。間諜日誌實際上有點過於冗長,但我確實擁有所有的信息。

+0

自JBoss 6.1以來的作品 https://developer.jboss.org/message/880396#880396 – Sylvain

1

不幸的是,P6SPY似乎不支持XA數據源(1)(2),這上面的JBoss 7。 x配置要求。

+0

自2.0.0版起,它支持XA數據源 –

1

夫婦的事情,

首先,你需要找到所有的依賴P6SPY用途,有什麼我可以從POM看到的是,它採用GNU的正則表達式和正則表達式中使用。 JBoss不會自動添加它們,可能會有更多。將這些添加到jboss-deployment-structure.xml和manifest中。

其次,需要將spy.properties文件添加到資源中。

有時候我試圖用SAR模塊連接來自HornetQ的JMSBridge。但是,這只是一個MBean,現在你有依賴瓶和一個屬性文件。

SAR Module

希望這有助於和好運

1

首先,你需要spy.properties文件在你JBOSS類路徑。 由於默認的JBoss類路徑指向了tools.jar和run.jar,因此您可能需要更新您的jboss類路徑。例如:

set JBOSS_CLASSPATH=E:\jboss-1.1.1\server\directoryX 

假設在此directoryX

P6SPY spy.properties會爲你的連接池被激活,如果你把它定義爲你定義其他JDBC驅動程序的方式。例如,在你的datasrouce定義:

<jndi-name>"your jndi name"</jndi-name> 
<connection-url>"conn url"</connection-url> 
**<driver-class>com.p6spy.engine.spy.P6SpyDriver</driver-class>** 

    <user-name>"uid"</user-name> 
    <password>"pswd"</password> 
    <!-- pool sizes--> 

好運。

+0

我已經按照建議對其進行了配置,它不起作用。無論如何,感謝您的幫助。 –

+0

您是否檢查:/ JBOSS **/server/<>/lib是否有p6spy.jar?當你的腳本在這裏複製這個罐子的時候,可能會發生什麼。 – Jimmy

+0

我在'/ modules/com/p6spy/main'中定義了一個模塊,並將該jar放在那裏 –

相關問題