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,并按照以下步骤操作:
- 打开 GlassFish 管理控制台并转到 "Applications" 节点:
- 单击 "Deploy" 按钮并选择我要部署的应用程序的 war 文件(存储在 Red Hat 服务器中):
- 点击了 "Choose File"。出现以下window:
- 我的应用程序需要一些 JAR 文件才能正常工作。所有这些都保存在以下文件夹中:
- 然后我将所有路径插入到 GlassFish 管理控制台的 "Libraries" 条目中:
- 已部署应用程序并重新启动 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
中的服务器全局库文件夹
如果它仍然不起作用,则可能是访问权限有问题,但在您的屏幕截图上它看起来没问题(世界可读)。
我使用 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,并按照以下步骤操作:
- 打开 GlassFish 管理控制台并转到 "Applications" 节点:
- 单击 "Deploy" 按钮并选择我要部署的应用程序的 war 文件(存储在 Red Hat 服务器中):
- 点击了 "Choose File"。出现以下window:
- 我的应用程序需要一些 JAR 文件才能正常工作。所有这些都保存在以下文件夹中:
- 然后我将所有路径插入到 GlassFish 管理控制台的 "Libraries" 条目中:
- 已部署应用程序并重新启动 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
如果它仍然不起作用,则可能是访问权限有问题,但在您的屏幕截图上它看起来没问题(世界可读)。