[v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

devin cook
nGrinder v3.2.3 을 사용하고 있습니다.

CASSANDRA 로드테스트를 위하여
간단한 자바코드로 접속, 조회 기능을 하는 부분을 만들고
nGrider Goovy Maven 프로젝트에서 lib 하부에 등록하여 사용하고자 합니다.

이클립스에서 해당 프로젝트를 생성하여 테스트를 진행하고 서버에 올려서 테스트를 진행하면 아래와 같은 메시지가 나옵니다.

Caused by: java.lang.NoClassDefFoundError: me/prettyprint/hector/api/Serializer

그래서 pom.xml 에 카산드라관련 부분을 추가하였습니다.

<dependency>
    <groupId>me.prettyprint</groupId>
    <artifactId>hector-core</artifactId>
    <version>1.0-3</version>
</dependency>

그랬더니 ... 이번에는 아래와 같은 메시지가 발생하고 있습니다.

2014-02-12 07:37:19,760 INFO  The Grinder version 3.9.1
2014-02-12 07:37:19,767 INFO  Java(TM) SE Runtime Environment 1.6.0_45-b06: Java HotSpot(TM) Client VM (20.45-b01, mixed mode) on Linux i386 3.2.0-23-generic-pae
2014-02-12 07:37:19,773 INFO  time zone is UTC (+0000)
2014-02-12 07:37:20,014 INFO  worker process 0 of agent number 0
2014-02-12 07:37:20,056 INFO  instrumentation agents: byte code transforming instrumenter for Java; byte code transforming instrumenter for Java
2014-02-12 07:37:21,042 ERROR script error - Error while iniialize test runner
net.grinder.engine.common.EngineException: Error while iniialize test runner
        at net.grinder.scriptengine.groovy.GroovyScriptEngine.<init>(GroovyScriptEngine.java:73) ~[ngrinder-groovy-3.2.3.jar:na]
        at net.grinder.scriptengine.groovy.GroovyScriptEngineService.createScriptEngine(GroovyScriptEngineService.java:112) ~[ngrinder-groovy-3.2.3.jar:na]
        at net.grinder.engine.process.ScriptEngineContainer.getScriptEngine(ScriptEngineContainer.java:105) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.GrinderProcess.run(GrinderProcess.java:357) ~[grinder-3.9.1-patch.jar:na]
        at net.grinder.engine.process.WorkerProcessEntryPoint.run(WorkerProcessEntryPoint.java:87) [grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.WorkerProcessEntryPoint.main(WorkerProcessEntryPoint.java:60) [grinder-core-3.9.1.jar:na]
Caused by: java.lang.NoSuchFieldError: NULL
        at org.junit.runners.ParentRunner.<init>(ParentRunner.java:48) ~[junit-dep-4.8.2.jar:na]
        at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:58) ~[junit-dep-4.8.2.jar:na]
        at net.grinder.scriptengine.groovy.junit.GrinderRunner.<init>(GrinderRunner.java:102) ~[ngrinder-groovy-3.2.3.jar:na]
        at net.grinder.scriptengine.groovy.GrinderContextExecutor.<init>(GrinderContextExecutor.java:47) ~[ngrinder-groovy-3.2.3.jar:na]
        at net.grinder.scriptengine.groovy.GroovyScriptEngine.<init>(GroovyScriptEngine.java:65) ~[ngrinder-groovy-3.2.3.jar:na]
        ... 5 common frames omitted

~/.ngrinder_agent/file-store/admin/incoming/lib 에 위 pom.xml 에 추가하 hector 와 의존성이 있는 아래 jar 들이 들어와 있는데요. 그중 junit-4.4.jar 와 충돌이 발생하는 것은 아닌지요?




Reply | Threaded
Open this post in threaded view
|

Re: [v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

junoyoon
Administrator
옙. nGrinder 는 JUnit 4.8.2 와 강력한 연관 관계를 가지고 있습니다.
사실상 JUnit 4.8.2 의 버그를 활용한 실행 엔진입니다. -.-;

따라서 카산드라의 Junit 4.4를 pom.xml 에서 exclude 처리하시기 바랍니다.
Reply | Threaded
Open this post in threaded view
|

Re: [v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

devin cook
아래와 같이 junit 4.4 빼기 하고 하니 test 리포트가 쫘르륵 그려집니다. 아이콘 깜빡이다가 그래프가 그려지가 시작할때 묘한 쾌감이 있네요. 감사합니다.

그루비 + 메이븐 조합이 여러모로 편한데 ... 샘플이 많이 접하지 못해 불편하네요. 따로 모아둔 곳이 없을까요?

<dependency>
<groupId>me.prettyprint</groupId>
<artifactId>hector-core</artifactId>
<version>1.0-3</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
Reply | Threaded
Open this post in threaded view
|

Re: [v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

junoyoon
Administrator
Maven 쪽은 사실.. pom.xml 내의 영어 주석들을 자세히 살펴보시면, 거의 필요한 모든 내용이 다 있습니다~

예를들어.. 앞서 하신 방법중에 lib 폴더에 jar 파일들을 등록해 주셨는데..


                <dependency>
                        <groupId>your_lib</groupId>
                        <artifactId>your_lib</artifactId>
                        <version>your_lib_version</version>
                        <scope>system</scope>
                        <systemPath>${project.basedir}/lib/hello.jar</systemPath>
                </dependency>

pom.xml 에는 위와 같은 샘플 pom 설정 방법이 이미 들어 있습니다.
Reply | Threaded
Open this post in threaded view
|

Re: [v3.2.3]Groovy Maven 환경에서 CASSANDRA 로드테스트 진행중의 NoSuchFieldError 에러

devin cook
넵 한참고민한다가 기본 pom.xml 에 보니 주석으로 친절하게 샘플을 넣어 두셨더라구요 ^^ 감사합니다.

위에서 이야기한 샘플은 maven 보담은 groovy 쪽 샘플을 이야기한것인데요.
http://www.cubrid.org/wiki_ngrinder/entry/how-to-bind-native-libraries 이런 부분들을 참고해서 레코딩 하거나 하는 방법들을 보고있습니다. 따로 그루비만 쫘악 모아둔 곳이 없나 해서 추가 질문을 드렸엇습니다.

즐거운 한주되세요.