java.lang.IllegalArgumentException 在 Red Hat 服务器中

java.lang.IllegalArgumentException in Red Hat server

我使用 NetBeans (IDE) 和 GlassFish 4.1.0(网络服务器)开发了一个 JavaEE 7.0 Web 应用程序。

当我在本地主机上部署该应用程序时,它运行得非常棒。现在,我想使用 GlassFish 4.1.0 在 Red Hat Enterprise Edition Linux Server 5.11 上部署它。

因此,我在我的 Red Hat 服务器上安装了 GlassFish,并按照以下步骤操作:

  1. 打开 GlassFish 管理控制台并转到 "Applications" 节点:
  2. 单击 "Deploy" 按钮并选择我要部署的应用程序的 war 文件(存储在 Red Hat 服务器中):
  3. 点击了 "Choose File"。出现以下window:
  4. 我的应用程序需要一些 JAR 文件才能正常工作。所有这些都保存在以下文件夹中:
  5. 然后我将所有路径插入到 GlassFish 管理控制台的 "Libraries" 条目中:
  6. 已部署应用程序并重新启动 NetBeans 服务器

但是,每次我 运行 我的 Web 应用程序都会收到以下错误:

[2016-07-08T21:20:15.226+0200] [glassfish 4.1] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=22 _ThreadName=RunLevelControllerThread-1468005611695] [timeMillis: 1468005615226] [levelValue: 1000] [[

  Exception during lifecycle processing

java.lang.IllegalArgumentException: Specified library jar android-7.jar does not exist: /opt/glassfish4/glassfish/domains/domain1/lib/android-7.jar

    at org.glassfish.deployment.common.DeploymentContextImpl.getAppLibs(DeploymentContextImpl.java:458)

    at org.glassfish.deployment.common.DeploymentContextImpl.createClassLoader(DeploymentContextImpl.java:244)

    at org.glassfish.deployment.common.DeploymentContextImpl.createDeploymentClassLoader(DeploymentContextImpl.java:229)

    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:365)

    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:329)

    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:377)

    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:461)

    at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:227)

    at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:84)

    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2258)

    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:105)

    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)

    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)

    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

]]

我真的不明白这是怎么回事,你能帮帮我吗?

Then I inserted all the paths in the "Libraries" entry of the GlassFish Administration Console:

你不需要这样做,我想这是导致问题的原因。

Glassfish 正在自动搜索 lib 文件夹中的库,如果这不起作用,您也可以尝试 /opt/glassfish4/glassfish/lib

中的服务器全局库文件夹

如果它仍然不起作用,则可能是访问权限有问题,但在您的屏幕截图上它看起来没问题(世界可读)。