2016-03-07 95 views
1

當我的wildfly 8.1.0服務器啓動時,它應該創建一個類的實例。Byteman從開始防止Wildfly 8.1.0?

我不確定這是否發生,我無法更改源代碼,所以我想我會用Byteman來實現這一點。

我寫了Byteman這個規則文件,存放在C:\app\ECLSManagedConnectionFactory.btm

RULE trace ECLSManagedConnectionFactory init entry 
CLASS com.empolis.ecls.server.j2ee.jca.impl.ECLSManagedConnectionFactory 
METHOD <init> 
AT ENTRY 
IF true 
DO traceOpen("ECLSManagedConnectionFactory", "/app/ECLSManagedConnectionFactory.log"); 
    traceln("entering <init>"); 
    traceClose("ECLSManagedConnectionFactory"); 
ENDRULE 

我下載Byteman並解壓到C:\byteman-3.0.3

我修改了java_opts,並在啓動時已經wildfly回顯值:

-Xms64m -Xmx512m -XX:MaxPermSize=256m 
-Dorg.jboss.byteman.transform.all 
-javaagent:C:/byteman-3.0.3/lib/byteman.jar=script:C:/app/ECLSManagedConnectionFactory.btm,boot:C:/byteman-3.0.3/lib/byteman.jar:listener:true 
-Dsun.rmi.dgc.client.gcInterval=3600000 
-Dsun.rmi.dgc.server.gcInterval=3600000 
-Djava.net.preferIPv4Stack=true 
-Dorg.jboss.resolver.warning=true 
-Djboss.modules.system.pkgs=org.jboss.byteman 
-Djboss.server.default.config=cls.xml 

我的服務器啓動成功了,如果線2以上我java_opts 3人是不存在的,但現在我在添加這些,服務器根本無法啓動。沒有什麼可以指示發生了什麼事情的標準輸出或標準錯誤。我收到一條消息說要檢查server.log以獲取更多信息,但該文件不存在。

我在做什麼錯?我已經嘗試了路徑的各種斜線方向組合(在Windows 10中,如果這很重要)。

有沒有人真的使用這個byteman工具?我很驚訝它沒有堆棧溢出標籤,並且在線上的信息很少。

回答

0

的問題是這條線:

-javaagent:C:/byteman-3.0.3/lib/byteman.jar=script:C:/app/ECLSManagedConnectionFactory.btm,boot:C:/byteman-3.0.3/lib/byteman.jar:listener:true 
                            This should have been a comma^

溝的驅動器名稱,並把引導罐子和聽衆之間的逗號:真。像這樣:

-javaagent:/byteman-3.0.3/lib/byteman.jar=script:/app/ECLSManagedConnectionFactory.btm,boot:/byteman-3.0.3/lib/byteman.jar,listener:true 
                     This has been fixed - it is a comma as it should be^