java.lang.NoClassDefFoundError: com/singularity/ee/agent/appagent/services/bciengine/templates/IHttpServletRequest
Мне нужно реализовать мониторинг производительности приложений (APM) для моего приложения, чтобы я реализовал appdynamic.
Я использую сервер Payara, и для того, чтобы настроить его для appdynamic, я следую нижеприведенному URL GlassFish + Startup + Settings
Я настроил все правильно, и я могу связаться с appdynamic. Я чертовски уверен в этом, потому что я проверил это с демонстрационным приложением, которое работает должным образом. Но когда я делаю то же самое для моего реального приложения на сервере, которое является приложением на основе Struts2, тогда я сталкиваюсь со следующими двумя вещами.
- Когда я пытаюсь получить доступ к корневому URL, сервер запрашивает имя пользователя и пароль и показывает ошибку 401 (пожалуйста, см. Прикрепленное изображение 1)
- Когда я пытаюсь получить доступ к URL-адресу входа в систему, я получаю сообщение об ошибке 404 (пожалуйста, см. Прикрепленное изображение 2).
Меня беспокоит то, почему я сталкиваюсь с двумя проблемами для моего заявления? если я удаляю конфигурацию APM из приложения, то обе точки не возникают для меня. Все работает правильно.
Я использую Struts 2.3.24 Payara Server(стеклянная рыба).
Если кто-то сталкивается с этой проблемой или есть какие-либо идеи, то дайте мне знать, я буду очень благодарен вам.
Любая мысль еще требуется от моей стороны, то дайте мне знать, я буду обновлять.
Предложения приветствуются.
Это показывает, когда я пытаюсь получить доступ к корневому URL
Это показывает, когда я пытаюсь получить доступ к URL-адресу входа Я получаю сообщение об ошибке ниже при обращении к корневому URL-адресу (ошибка возникает только при настройке APM с сервером)
java.lang.NoClassDefFoundError: com/singularity/ee/agent/appagent/services/bciengine/templates/IHttpServletRequest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:1233)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1763)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1646)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:1233)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1763)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1646)
at org.apache.struts2.dispatcher.ng.InitOperations.createDispatcher(InitOperations.java:110)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:73)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:131)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:5329)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5974)
at com.sun.enterprise.web.WebModule.start(WebModule.java:692)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2296)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1942)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:353)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:501)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:243)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:326)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2022)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.singularity.ee.agent.appagent.services.bciengine.templates.IHttpServletRequest
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1796)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1646)
... 45 more
]]
1 ответ
Класс com/singularity/ee/agent/appagent/services/bciengine/templates/IHttpServletRequest можно найти в appaggent-boot.jar (AppServerAgent-4.2.12.1/ver.4.2.12.1/lib/appagent-boot.jar)
Я решил эту проблему, включив jar в папку WEB-INF/lib/.
Надеюсь, поможет!