求助:NetBeans中运行Web应用时GlassFish 4.1.1出现警告
GlassFish 4.1.1 启动警告分析与解决方案
我看了你贴出的GlassFish 4.1.1在NetBeans中启动Web应用时的日志,里面有几个关键警告,我来逐个帮你分析并给出可行的解决办法:
首先先把完整的启动日志贴出来方便参考:
在Felix平台上启动GlassFish 2018年5月23日 下午7:04:28 com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner createBundleProvisioner 信息:创建bundle供应器类 = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner. 2018年5月23日 下午7:04:28 com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations 警告:跳过条目,因为它不是绝对URI。 2018年5月23日 下午7:04:28 com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations 警告:跳过条目,因为它不是绝对URI。 2018年5月23日 下午7:04:28 com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner startBundles 警告:无法启动bundle file:/D:/Archivos%20de%20Programa/GlassFish_Server/glassfish/modules/core.jar,因为它不在已安装bundle列表中。 已在服务注册表中注册com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime@a2572cb。 #!## LogManagerService.postConstruct : rootFolder=D:\Archivos de Programa\GlassFish_Server\glassfish #!## LogManagerService.postConstruct : templateDir=D:\Archivos de Programa\GlassFish_Server\glassfish\lib\templates #!## LogManagerService.postConstruct : src=D:\Archivos de Programa\GlassFish_Server\glassfish\lib\templates\logging.properties #!## LogManagerService.postConstruct : dest=D:\Archivos de Programa\GlassFish_Server\glassfish\domains\domain1\config\logging.properties 信息:运行GlassFish版本:GlassFish Server Open Source Edition 4.1.1 (build 1) 信息:服务器日志文件正在使用Formatter类:com.sun.enterprise.server.logging.ODLLogFormatter 信息:已成功创建类型为[com.sun.enterprise.security.auth.realm.file.FileRealm]的域[admin-realm]。 信息:已成功创建类型为[com.sun.enterprise.security.auth.realm.file.FileRealm]的域[file]。 信息:已成功创建类型为[com.sun.enterprise.security.auth.realm.certificate.CertificateRealm]的域[certificate]。 信息:授权服务已成功初始化。 信息:在BackingStoreFactoryRegistry中为persistence-type = replicated注册了org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy 信息:JTS5014:可恢复JTS实例,serverId = [100] 警告:无法初始化实例。Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn 信息:Grizzly Framework 2.3.23已启动,耗时:20ms - 绑定到[/0.0.0.0:8080] 警告:无法初始化实例。Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn 信息:Grizzly Framework 2.3.23已启动,耗时:33ms - 绑定到[/0.0.0.0:8181] 警告:无法初始化实例。Class=interface org.glassfish.grizzly.http.server.AddOn, name=admin-listener, realClassName=org.glassfish.grizzly.http2.Http2AddOn 信息:Grizzly Framework 2.3.23已启动,耗时:8ms - 绑定到[/0.0.0.0:4848] 信息:访问未访问的引用 信息:Grizzly Framework 2.3.23已启动,耗时:3ms - 绑定到[/0.0.0.0:3700] 信息:Java安全管理器已禁用。 信息:进入安全启动服务。 信息:正在加载策略提供者com.sun.enterprise.security.provider.PolicyWrapper。 信息:安全服务已成功启动。 信息:已在主机/端口0.0.0.0:8080上创建HTTP监听器http-listener-1 信息:已在主机/端口0.0.0.0:8181上创建HTTP监听器http-listener-2 信息:已在主机/端口0.0.0.0:4848上创建HTTP监听器admin-listener 信息:已创建虚拟服务器server 信息:已创建虚拟服务器__asadmin 信息:设置JAAS应用名称glassfish-web 信息:虚拟服务器server已加载默认Web模块 信息:访问未访问的引用 信息:访问未访问的引用 信息:正在加载应用[ProyectoTutorial],路径为[/ProyectoTuto] 信息:加载应用ProyectoTutorial完成,耗时1.962毫秒 信息:访问未访问的引用 信息:访问未访问的引用 信息:访问未访问的引用 信息:正在加载应用[DLC_TPIntegrador2018],路径为[/DLC_TPIntegrador2018] 信息:加载应用DLC_TPIntegrador2018完成,耗时174毫秒 信息:GlassFish Server Open Source Edition 4.1.1 (1)启动时间:Felix(4.756ms),启动服务(3.009ms),总耗时(7.765ms) 信息:Grizzly Framework 2.3.23已启动,耗时:1ms - 绑定到[/0.0.0.0:7676] 信息:JMXStartupService已在JMXService URL service:jmx:rmi://192.168.0.236:8686/jndi/rmi://192.168.0.236:8686/jmxrmi上启动JMXConnector 信息:已注册c
关键警告的具体分析与修复步骤
1. "跳过条目,因为它不是绝对URI"
- 问题原因:GlassFish的OSGi BundleProvisioner组件在加载bundle时,遇到了非绝对路径的配置条目,导致无法识别并跳过加载。从日志里的安装路径
D:\Archivos de Programa\GlassFish_Server来看,路径里的空格是主要诱因——OSGi容器处理带空格的路径时容易出现编码或解析错误。 - 修复方案:
- 把GlassFish整个安装目录迁移到无空格、无特殊字符的路径下,比如
D:\GlassFish411,然后重新配置NetBeans里的服务器指向新路径。 - 检查
domain1/config/domain.xml文件,确认所有涉及bundle路径的配置都是绝对URI,没有相对路径或格式错误。
- 把GlassFish整个安装目录迁移到无空格、无特殊字符的路径下,比如
2. "无法启动bundle file:/D:/Archivos%20de%20Programa/GlassFish_Server/glassfish/modules/core.jar,因为它不在已安装bundle列表中"
- 问题原因:同样是路径空格的锅——路径里的空格被转义成
%20后,OSGi容器无法正确定位到core.jar这个核心bundle,导致启动失败。 - 修复方案:
- 优先执行上面的路径迁移操作,这是最直接有效的解决办法。
- 如果迁移后问题依旧,建议重新下载GlassFish 4.1.1的官方安装包,校验文件完整性后重新安装,避免因安装包损坏导致的bundle缺失。
3. "无法初始化实例。Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn"
- 问题原因:这是GlassFish 4.1.1的一个已知兼容性问题——自带的Grizzly HTTP/2 AddOn组件和当前版本的Grizzly框架不匹配,导致HTTP监听器初始化时抛出警告。
- 修复方案:
- 登录GlassFish管理控制台(默认地址
http://localhost:4848),依次进入配置 -> server-config -> HTTP服务 -> HTTP监听器,选中每个监听器(http-listener-1、http-listener-2、admin-listener)。 - 切换到HTTP/2标签页,取消勾选"启用HTTP/2"选项,保存配置后重启GlassFish服务器。
- 如果你偏好直接修改配置文件,可以打开
domain1/config/domain.xml,找到对应监听器的<http2>节点,将其设置为enabled="false"或者直接删除该节点,然后重启服务器。
- 登录GlassFish管理控制台(默认地址
这些步骤应该能解决你日志里的所有警告问题,如果还有其他异常,可以再补充更详细的错误信息过来。
内容的提问来源于stack exchange,提问作者Manu Carba
相关产品推荐
相关产品推荐

