2

我需要为我的应用程序实现应用程序性能监控(APM),因此我实现了 appdynamic

我正在使用 Payara 服务器,为了将其配置为 appdynamic,我遵循以下网址 GlassFish+Startup+Settings

我正确设置了每件事,并且能够与 appdynamic 连接。我对此非常确定,因为我使用一个运行正常的演示应用程序对其进行了测试。但是,当我在基于 Struts2 的应用程序的服务器上为我的实际应用程序做同样的事情时,我将面临以下两件事。

  1. 当我尝试访问根 URL 时,服务器询问用户名和密码,并显示错误401(请参见附图 1)
  2. 当我尝试访问登录网址时,我收到错误404(请参见附图 2)。

我担心的是为什么我的应用程序面临上述两个问题?如果我从应用程序中删除APM配置,那么这两点对我来说都不会发生。一切正常。

我正在使用 Struts 2.3.24 Payara 服务器(glassfish)。

如果有人遇到此问题或有任何想法,请告诉我,我将非常感谢您。

我这边还需要任何其他想法,然后让我知道我会更新。

建议是最受欢迎的。

这表明当我尝试访问根 url

这表明当我尝试 Root 访问权限时

这表明当我尝试访问登录 url 时,当我点击 root 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
]]
4

1 回答 1

0

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/ 文件夹中解决了这个问题。

希望能帮助到你!

于 2017-02-01T13:07:34.373 回答