2010-07-30 3 views
1

에이전트를 제어하기 위해 SWT GUI와 함께 Java Agent를 작성했습니다.Java VM을 Visual VM 플러그인으로 패키지하는 방법

http://wiki.github.com/mchr3k/org.intrace/

나는 VisualVM과 에이전트가 VisualVM과를 사용하여 JVM에 부착 할 수 있도록하는 플러그인에이 라이브러리를 패키지로 할 수 있습니다. 내가 여기에이 권리를 할 수있는 넷빈즈 모듈을 작성했습니다

는 : 내가 넷빈즈에서 프로젝트를 실행할 때

http://github.com/mchr3k/org.intrace/tree/master/InTrace-VisualVM-Plugin/

이 작동합니다. 그러나 "Create NBM"을 사용하여 프로젝트를 패키지화하면 결과 라이브러리가 VisualVM에 설치되지 않습니다. 다음과 같이 로그의 출력은 다음과 같습니다

 
INFO [org.netbeans.modules.autoupdate.services.InstallSupportImpl]: Timeout waiting for loading module org.intrace.visualvm/1.0 
INFO [org.netbeans.modules.autoupdate.ui.wizards.InstallStep]: timeout of loading InTrace Launcher[org.intrace.visualvm/1.0] 
org.netbeans.api.autoupdate.OperationException: timeout of loading InTrace Launcher[org.intrace.visualvm/1.0] 
    at org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:437) 
    at org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:302) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
[catch] at java.lang.Thread.run(Thread.java:619) 

또한 의심스러운 해요가 너무 작은 나의 에이전트와 클라이언트 라이브러리가 NBM 파일로 포장되지 않았 음.

문제는 프로젝트 build.xml에 뭔가를 추가해야한다고 생각하지만, 무엇을 해결할 지 고민 중입니다.

http://github.com/mchr3k/org.intrace/blob/master/InTrace-VisualVM-Plugin/build.xml

사람이 내가 놓친 거지 무엇을 제안 할 수 있습니다?

답변

2

NetBeans 6.9를 사용하여 모듈을 개발 및 패키지화 한 다음 VisualVM 1.2. * 또는 jvisualvm에서로드하려고합니까? NetBeans 6.9 플랫폼을 대상으로하는 모듈을 예를 들어 쉽게 설치할 수없는 경우 호환성 문제가 발생했습니다. NetBeans 6.8 기반 응용 프로그램 (예 : VisualVM 1.2. *). 이는 pack200을 사용하여 모듈 항아리를 압축/압축 해제하는 NB6.9 플랫폼으로 인해 발생합니다.

모듈을 구형 플랫폼으로 타겟팅하고 (여전히 lates IDE를 사용하여 모듈을 빌드하려면) 플러그인 플랫폼에서 사용하는 모듈 장치를 수동으로 지정해야합니다 ("Tools/NetBeans Platforms /"로 이동 한 다음 당신이 here을 다운로드 할 수있는 "하네스"탭은 바이너리에서 오는 하네스를 선택합니다.

를 모듈을 다시 빌드하고 NBM 그것이 VisualVM과 1.2에서 작동합니다 만들 때. *뿐만 아니라 jvisualvm한다.

+0

감사합니다! 이로 인해 설치 오류가 해결되었지만 내 에이전트 및 클라이언트 jar는 nbm 파일에 번들되지 않습니다. 런타임시 http : // github 이 jar에 대한 경로를 찾으려면 .com/mchr3k/org.intrace/blob/master/InTrace-VisualVM-Plugin/src/org/intrace/visualvm/Locator.java를 사용하고 현재 nbm 파일을 사용할 때 null을 반환합니다. Netbeans에서 직접 플러그인을 실행하면이 jar가 올바르게 위치합니다. 에이전트 경로 : C : \ Work \ GitHub \ InTrace \ InTrace-VisualVM-Plugin \ build \ cluster \ modules \ ext \ intrace-agent.jar. 어떻게 해결할 수 있는지 알고 계십니까? – mchr

+1

실제로 타사 라이브러리에 액세스하려면 라이브러리 래퍼 모듈을 만들고 병을 싸서 (간단한 마법사가 여기에서 도움이 될 것입니다) 라이브러리 래퍼와 실제 모듈을 하나의 모듈 제품군 (다른 프로젝트 유형). 라이브러리 래퍼에 대한 자세한 내용은 http://wiki.netbeans.org/DevFaqWrapperModules를 확인하십시오. 모듈을 이와 같이 설정하면 InstalledFileLocator (http://bits.netbeans.org/dev/javadoc/index.html)를 사용하여 항아리의 실제 위치를 얻을 수 있습니다. –

+0

성공! VisualVM 내에서 이러한 jar 파일의 클래스를 실제로 사용할 필요는 없습니다. 단지 파일 시스템에 항아리 만 액세스하면됩니다.그러므로 수동으로 릴리즈/모듈/ext /에 항아리를 놓는 것만으로도 충분했고 (TM) - http://github.com/mchr3k/org.intrace/tree/master/InTrace-VisualVM/release/ modules/ext /. 모든 도움에 감사드립니다. – mchr

관련 문제