2

I need to implement an application performance monitoring (APM) for my application so I implemented appdynamic.

I am Using Payara server and in order to configure it for appdynamic I follow the below url GlassFish+Startup+Settings

I setup every thing properly and I am able to connect with appdynamic. I am damn sure about it because I tested it with a demo application that is working properly. But when I am doing same thing for my actual application on server which is Struts2 based application then I am facing following two things.

  1. When I am trying to access root URL then server is asking username and password and it's showing error 401 (plz see the attached image 1)
  2. When I am trying to access login url then I am getting error 404 (plz see the attached image 2).

My concern is this that why I am facing above two issues for my application ? if I remove the APM configuration from the application then the both points not occur for me. Everything work properly.

I am using Struts 2.3.24 Payara Server(glassfish).

If any one face this issue or have any idea then let me know I will be very thank full to you.

Any think else is required from my side then let me know I will update.

Suggestion are most welcomed.

This shows when I try to access root url

this shows when I try to Root Access

This shows when I try to access login url unable to access login page I am getting below error when I hit for root url (Error occur only when APM is configured with the server)

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
]]
Roman C
  • 49,761
  • 33
  • 66
  • 176
dom
  • 1,086
  • 11
  • 24
  • What did you enter for Authentication Required? – Roman C Jan 14 '17 at 15:41
  • @RomanC I tried with username admin and password adminadmin but that is not working for me – dom Jan 15 '17 at 05:58
  • Did you download all requires jars? – Roman C Jan 15 '17 at 18:12
  • @RomanC All Required jar are there without APM it's working fine – dom Jan 16 '17 at 06:25
  • Are you sure that you set up boot delegation for `com.singularity.*` as described in the AppDynamic guide? The missing `IHttpServletRequest` class comdes from AppDynamic java agent, and is not found by the web app. Or try putting the agent jar also into the web app's WEB-INF/lib folder. – OndroMih Jan 16 '17 at 11:48

1 Answers1

0

com/singularity/ee/agent/appagent/services/bciengine/templates/IHttpServletRequest class can be found in appaggent-boot.jar (AppServerAgent-4.2.12.1/ver.4.2.12.1/lib/appagent-boot.jar)

I solved this problem by including the jar in WEB-INF/lib/ folder.

Hope it helps!

flob
  • 116
  • 5