java - Payara Glassfish 服务器部署:列出目录时出错
问题描述
我的 Java EE 项目在 Glassfish 服务器中遇到问题。每当我开始编码时,我都会启动我的本地 Glassfish 服务器并将我的 Java EE 项目部署到该服务器。部署完成后,我将开始编码。每次我添加或修改项目源代码时,项目都会重新部署。重新部署项目时,服务器日志会显示此错误(请参阅以下屏幕截图)。
keepstate options resolved to true, saving appId 106861107804831744 for application javaProject.|#]
keepstate options resolved to true, saving appId 106861107804831744 for application javaProject.|#]
Persistent Timers will not be destroyed since keepstate is true for application javaProject|#]
Persistent Timers will not be destroyed since keepstate is true for application javaProject|#]
Error when listing directory
Error when listing directory
java.nio.file.NoSuchFileException: C:\payara5\glassfish\domains\domain1\generated\ejb\javaProject
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)
at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)
at java.nio.file.Files.newDirectoryStream(Files.java:457)
at java.nio.file.Files.list(Files.java:3451)
at com.sun.enterprise.loader.DirWatcher$ParentWatcher.register(DirWatcher.java:208)
at com.sun.enterprise.loader.DirWatcher.registerInFilesystem(DirWatcher.java:127)
at com.sun.enterprise.loader.DirWatcher.register(DirWatcher.java:87)
at com.sun.enterprise.loader.ASURLClassLoader$URLEntry.init(ASURLClassLoader.java:950)
at com.sun.enterprise.loader.ASURLClassLoader$URLEntry.<init>(ASURLClassLoader.java:935)
at com.sun.enterprise.loader.ASURLClassLoader.appendURL(ASURLClassLoader.java:266)
at com.sun.enterprise.loader.ASURLClassLoader.addURL(ASURLClassLoader.java:249)
at org.glassfish.javaee.full.deployment.EarHandler.getClassLoader(EarHandler.java:463)
at org.glassfish.deployment.common.DeploymentContextImpl.createClassLoader(DeploymentContextImpl.java:248)
at org.glassfish.deployment.common.DeploymentContextImpl.createDeploymentClassLoader(DeploymentContextImpl.java:229)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:415)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:538)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:558)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:554)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:553)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:584)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:576)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:575)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1496)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:120)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1878)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1754)
at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:131)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:558)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:554)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:553)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:584)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:576)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:575)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1496)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:120)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1878)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1754)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:564)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:251)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:166)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:182)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:156)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:524)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
at java.lang.Thread.run(Thread.java:748)
此错误并非每次都发生,有时重新部署完全可以正常工作而不会出现此错误。此外,虽然存在错误,但我仍然能够测试我的代码(浏览器能够加载更新版本)。
我检查了路径(参见上面的屏幕截图)并确保每个 Windows 用户都可以访问它,但问题仍然存在。我还在网上对我的问题进行了一些研究,没有一个解决方案适合我的情况。在这种情况下,我决定忽略错误,继续编写代码。但是当这个错误多次发生时,会引入一个新的错误(参考下面的屏幕)。
javax.servlet.servletexception: GC overhead limit exceeded
我还对第二个错误进行了一些研究,并且已经将服务器 JVM 堆大小增加到 3500。但这两个问题仍未解决(这就是我在这里寻求解决方案的原因)。
这里有人对我的问题有任何解决方案吗?(如果您需要任何额外信息来理解我的问题,请告诉我)。
我的设置:
JDK 和 JRE:1.8.0_201
Payara Glassfish 服务器 5.194
解决方案
我认为这与“保存时部署”设置有关。我个人仅在使用 xhtml 时使用此设置,有时使用 cdi bean,但在编码 ejb 时将其关闭
推荐阅读
- reactjs - 在 React 中 hotreload 究竟是如何工作的?
- flutter - 初始 orderBy() 字段“[[FieldPath([id]), true]][0][0]”必须与 where() 字段参数相同
- javascript - 如何获取元素已经“显示”并且不需要在列表中滚动的信息(el.scoolingIntoView)?
- docker - 运行容器时找不到文件错误
- c++ - 如何确保 range1 小于 range2?
- python - 为什么我不能从动态网页中抓取表格
- firebase - 如何在 Firestore Flutter 中按字段内容对文档进行排序
- typescript - 为什么我们在处理 vue 组件时会丢失 typescript 类型检查?
- reactjs - react-phone-input-2 与 react-hook-form
- css - CSS文件在服务器端JSX中抛出错误