当我在 glassfish 服务器中部署 Web 应用程序时,glassfish 服务器显示以下错误:
C:\Program Files\glassfish-3.1.2\glassfish\bin>asadmin start-domain domain1
java.nio.file.AccessDeniedException: C:\Program Files\glassfish-3.1.2\glassfish\
domains\domain1\logs\server.log.lck
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(Unknown Source)
at java.nio.channels.FileChannel.open(Unknown Source)
at java.nio.channels.FileChannel.open(Unknown Source)
at java.util.logging.FileHandler.openFiles(Unknown Source)
at java.util.logging.FileHandler.<init>(Unknown Source)
at com.sun.enterprise.admin.launcher.GFLauncherLogger.addLogFileHandler(
GFLauncherLogger.java:100)
at com.sun.enterprise.admin.launcher.GFLauncher.setup(GFLauncher.java:18
9)
at com.sun.enterprise.admin.cli.StartDomainCommand.createLauncher(StartD
omainCommand.java:209)
at com.sun.enterprise.admin.cli.StartDomainCommand.executeCommand(StartD
omainCommand.java:107)
at com.sun.enterprise.admin.cli.CLICommand.execute(CLICommand.java:264)
at com.sun.enterprise.admin.cli.AsadminMain.executeCommand(AsadminMain.j
ava:306)
at com.sun.enterprise.admin.cli.AsadminMain.main(AsadminMain.java:238)
Waiting for domain1 to start .Error starting domain domain1.
The server exited prematurely with exit code 1.
Before it died, it produced the following output:
Launching GlassFish on Felix platform
ERROR: Error parsing system bundle export statement: org.osgi.framework;
version
=1.6.0, org.osgi.framework.launch;
version=1.0.0,
org.osgi.framework.wiring; ver
sion=1.0.0, org.osgi.framework.startlevel;
version=1.0.0,
org.osgi.framework.hoo
ks.bundle; version=1.0.0,
org.osgi.framework.hooks.resolver;
version=1.0.0, org.
osgi.framework.hooks.service; version=1.1.0,
org.osgi.framework.hooks.weaving; version=1.0.0,
org.osgi.service.packageadmin; version=1.2.0, org.osgi.service.sta
rtlevel; version=1.1.0, org.osgi.service.url; version=1.0.0,
org.osgi.util.track
er; version=1.5.0, ,
org.glassfish.embeddable;org.glassfish.embeddable.spi;versi
on=3.1.1 (org.osgi.framework.BundleException: Exported package names
cannot be z
ero length.)
ERROR: Unable to create cache directory: C:\Program Files\glassfish- 3.1.2
\glassf
ish\domains\domain1\osgi-cache\felix
ERROR: Error creating bundle cache. (java.lang.RuntimeException:
Unable to create cache directory.)
org.osgi.framework.BundleException: Exported package names cannot be
zero length
.
at
org.apache.felix.framework.util.manifestparser.ManifestParser.normali
zeExportClauses(ManifestParser.java:729)
at
org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(
ManifestParser.java:191)
at org.apache.felix.framework.ExtensionManager.<init>
(ExtensionManager.j
ava:220)
at org.apache.felix.framework.Felix.<init>(Felix.java:374)
at org.apache.felix.framework.FrameworkFactory.newFramework
(FrameworkFac
tory.java:28)
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiFrameworkLauncher.lau
nchOSGiFrameWork(OSGiFrameworkLauncher.java:77)
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntimeBuild
er.build(OSGiGlassFishRuntimeBuilder.java:128)
at org.glassfish.embeddable.GlassFishRuntime._bootstrap
(GlassFishRuntime
.java:157)
at org.glassfish.embeddable.GlassFishRuntime.bootstrap
(GlassFishRuntime.
java:110)
at
com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(
GlassFishMain.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main
(GlassFishMa
in.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
java.lang.RuntimeException: Unable to create cache directory.
at org.apache.felix.framework.cache.BundleCache.<init>
(BundleCache.java:
131)
at org.apache.felix.framework.Felix.init(Felix.java:629)
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiFrameworkLauncher$1.r
un(OSGiFrameworkLauncher.java:88)
Exception in thread "Thread-1" java.lang.RuntimeException:
org.osgi.framework.Bu
ndleException: Error creating bundle cache.
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiFrameworkLauncher$1.r
un(OSGiFrameworkLauncher.java:90)
Caused by: org.osgi.framework.BundleException: Error creating bundle
cache.
at org.apache.felix.framework.Felix.init(Felix.java:634)
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiFrameworkLauncher$1.r
un(OSGiFrameworkLauncher.java:88)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at org.apache.felix.framework.cache.BundleCache.<init>
(BundleCache.java:
131)
at org.apache.felix.framework.Felix.init(Felix.java:629)
... 1 more
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main
(GlassFishMa
in.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
Caused by: org.glassfish.embeddable.GlassFishException:
java.lang.NullPointerExc
eption
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntimeBuild
er.build(OSGiGlassFishRuntimeBuilder.java:164)
at org.glassfish.embeddable.GlassFishRuntime._bootstrap
(GlassFishRuntime
.java:157)
at org.glassfish.embeddable.GlassFishRuntime.bootstrap
(GlassFishRuntime.
java:110)
at
com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(
GlassFishMain.java:112)
... 6 more
Caused by: java.lang.NullPointerException
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntimeBuild
er.newFramework(OSGiGlassFishRuntimeBuilder.java:230)
at
com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntimeBuild
er.build(OSGiGlassFishRuntimeBuilder.java:133)
... 9 more
Error stopping framework: java.lang.NullPointerException
java.lang.NullPointerException
at
com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher$1.run(G
lassFishMain.java:203)
Java HotSpot(TM) Client VM warning: ignoring option
MaxPermSize=192m;
support was removed in 8.0
Java Hotot(TM) Client VM warning: ignoring option PermSize=64m;
support was re
moved in 8.0
Command start-domain failed.
C:\Program Files\glassfish-3.1.2\glassfish\bin>
我不是 glassfish 专家,但通常您会从下到上阅读堆栈跟踪。因此,最上面的错误消息是最详细的错误消息。此堆栈跟踪中最上面的错误消息是:
file.AccessDeniedException`
在文件上
C:\Program Files\glassfish-3.1.2\glassfish\ domains\domain1\logs\server.log.lck`
我还在日志的第二部分看到:
ERROR: Unable to create cache directory: C:\Program Files\glassfish- 3.1.2\glassfish\domains\domain1\osgi-cache\felix`
在我看来,这像是一个文件权限问题,或者一个应该存在但实际上不存在的目录。
您必须以管理员身份使用命令行来连接到服务器。你应该得到下一个:
命令-1:
cd C:\Program Files\glassfish4.1\glassfish\bin //Here your glassfish bin directory
命令2:
asadmin start-domain
请正确查看这对我有用的目录
C:\GLASSFISH_HOME in>asadmin 起始域domain1
等待domain1启动.........................
11,396 毫秒后等待结束。
成功启动域:domain1
域位置:C:\GLASSFISH_HOME\glassfish\domains\domain1
日志文件:C:\GLASSFISH_HOME\glassfish\domains\domain1\logs\server.log
管理端口:4,848
命令 start-domain 成功执行。