mockserver icon indicating copy to clipboard operation
mockserver copied to clipboard

Running mock server crashes on Android

Open gitcfly opened this issue 2 years ago • 0 comments

Describe the issue Running mock server crashes on Android

What you are trying to do When I run the following code ' 'new ClientAndServer(62221).when(...).forward(...)'' the code throws an exception and crashes the app

MockServer version The version you are using implementation 'org.mock-server:mockserver-netty:5.14.0'

To Reproduce Steps to reproduce the issue:

  1. How you are running MockServer (i.e maven plugin, docker, etc) Run MockServer on Android 11,and then execute the code 'new ClientAndServer(62221).when(...).forward(...)'

  2. Code you used to create expectations 'new ClientAndServer(62221).when(...).forward(...)' ''' public void startProxyServer() { try { new ClientAndServer(62221) .when(request().withPath("/*")) .forward(callback().withCallbackClass(NetCallBack.class)); } catch (Exception e) { e.printStackTrace(); } }

    class NetCallBack implements ExpectationForwardAndResponseCallback {

     public HttpRequest handle(HttpRequest httpRequest) throws Exception {
         return httpRequest;
     }
    
     public HttpResponse handle(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception {
         Log.e("JDEBUG", "handle response :" + httpResponse.getFirstHeader("Content-Type"));
         return null;
     }
    

    } '''

  3. What error you saw Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.management.MemoryType"

Expected behaviour

MockServer Log

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ckj.demok, PID: 25145 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/MemoryType; at org.mockserver.configuration.ConfigurationProperties.heapAvailableInKB(ConfigurationProperties.java:345) at org.mockserver.configuration.ConfigurationProperties.maxLogEntries(ConfigurationProperties.java:369) at org.mockserver.configuration.Configuration.maxLogEntries(Configuration.java:286) at org.mockserver.log.MockServerEventLog.(MockServerEventLog.java:97) at org.mockserver.mock.HttpState.(HttpState.java:120) at org.mockserver.lifecycle.LifeCycle.(LifeCycle.java:55) at org.mockserver.netty.MockServer.(MockServer.java:77) at org.mockserver.netty.MockServer.(MockServer.java:57) at org.mockserver.integration.ClientAndServer.(ClientAndServer.java:58) at org.mockserver.integration.ClientAndServer.(ClientAndServer.java:52) at com.ckj.demok.MainActivity.startProxyServer(MainActivity.java:102) at com.ckj.demok.MainActivity.onCreate(MainActivity.java:38) at android.app.Activity.performCreate(Activity.java:8143) at android.app.Activity.performCreate(Activity.java:8114) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3513) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3700) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:236) at android.app.ActivityThread.main(ActivityThread.java:8060) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.management.MemoryType" on path: DexPathList[[zip file "/data/app/~~-YU6wO3TipGFdzu3YAFDyg==/com.ckj.demok--Oc4Ld-eTCu2kT8uP7IeUw==/base.apk"],nativeLibraryDirectories=[/data/app/~~-YU6wO3TipGFdzu3YAFDyg==/com.ckj.demok--Oc4Ld-eTCu2kT8uP7IeUw==/lib/arm, /data/app/~~-YU6wO3TipGFdzu3YAFDyg==/com.ckj.demok--Oc4Ld-eTCu2kT8uP7IeUw==/base.apk!/lib/armeabi-v7a, /system/lib, /system/system_ext/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at org.mockserver.configuration.ConfigurationProperties.heapAvailableInKB(ConfigurationProperties.java:345)  at org.mockserver.configuration.ConfigurationProperties.maxLogEntries(ConfigurationProperties.java:369)  at org.mockserver.configuration.Configuration.maxLogEntries(Configuration.java:286)  at org.mockserver.log.MockServerEventLog.(MockServerEventLog.java:97)  at org.mockserver.mock.HttpState.(HttpState.java:120)  at org.mockserver.lifecycle.LifeCycle.(LifeCycle.java:55)  at org.mockserver.netty.MockServer.(MockServer.java:77)  at org.mockserver.netty.MockServer.(MockServer.java:57)  at org.mockserver.integration.ClientAndServer.(ClientAndServer.java:58)  at org.mockserver.integration.ClientAndServer.(ClientAndServer.java:52)  at com.ckj.demok.MainActivity.startProxyServer(MainActivity.java:102)  at com.ckj.demok.MainActivity.onCreate(MainActivity.java:38)  at android.app.Activity.performCreate(Activity.java:8143)  at android.app.Activity.performCreate(Activity.java:8114)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3513)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3700)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:236)  at android.app.ActivityThread.main(ActivityThread.java:8060)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) 

gitcfly avatar Jun 25 '23 03:06 gitcfly