在MacOS / Windows上,Payara Server 5无法通过控制台启动

问题描述

macOS 中,我尝试将Payara ServerNetbeans 12一起使用,并且得到:

Launching Payara Server on Felix platform
INFO: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOsgiGlassFishRuntime@462c1ddf in service registry.
#!## LogManagerService.postconstruct : rootFolder=/Users/joseluisbz/Documentos/Java/payara5-2020-4/glassfish
#!## LogManagerService.postconstruct : templateDir=/Users/joseluisbz/Documentos/Java/payara5-2020-4/glassfish/lib/templates
#!## LogManagerService.postconstruct : src=/Users/joseluisbz/Documentos/Java/payara5-2020-4/glassfish/lib/templates/logging.properties
#!## LogManagerService.postconstruct : dest=/Users/joseluisbz/Documentos/Java/payara5-2020-4/glassfish/domains/domain1/config/logging.properties
  Running Payara Version: Payara Server  5.2020.4 #badassfish (build 817)|#]
  Server log file is using Formatter class: com.sun.enterprise.server.logging.ODLLogFormatter|#]
  HV000001: Hibernate Validator 6.1.2.Final|#]
  [192.168.0.11]:4900 [development] [3.12.6] Connection[id=1,/192.168.0.11:49587->/192.168.0.11:5900,qualifier=null,endpoint=[192.168.0.11]:5900,alive=false,type=NONE] closed. Reason: Exception in Connection[id=1,alive=true,type=NONE],thread=hz._hzInstance_1_development.IO.thread-in-0
java.lang.IllegalStateException: UnkNown protocol: RFB
    at com.hazelcast.nio.tcp.UnifiedProtocolDecoder.onRead(UnifiedProtocolDecoder.java:107)
    at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:135)
    at com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:369)
    at com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:354)
    at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:280)
    at com.hazelcast.internal.networking.nio.NioThread.run(NioThread.java:235)
|#]

然后通过控制台在我的位置(我将payara5目录重命名payara5-2020-4)。

% pwd
.../payara5-2020-4/glassfish/bin
%

为了解决一个问题:

% ./asadmin set-hazelcast-configuration --enabled=false
Remote Server does not listen for requests on [localhost:4848]. Is the server up?
No such local command: set-hazelcast-configuration.  Unable to access the server to execute the command remotely.  Verify the server is available.
Command set-hazelcast-configuration Failed.
%

在我尝试起床之后...

% ./asadmin start-domain domain1
Waiting for domain1 to start ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
No response from the Domain Administration Server (domain1) after 600 seconds.
The command is either taking too long to complete or the server has Failed.
Please see the server log files for command status.  
Please start with the --verbose option in order to see early messages.
Command start-domain Failed.
%

然后,我正尝试详细说明选项(如建议)...

% ./asadmin start-domain domain1  --verbose
Command start-domain only accepts one operand
...

% ./asadmin --verbose start-domain domain1
Invalid option: --verbose
...

% ./asadmin -v start-domain domain1       
Invalid option: -v
...

% ./asadmin start-domain domain1  -v       
Command start-domain only accepts one operand
...

常见信息

Usage: asadmin [asadmin-utility-options] start-domain
    [-v|--verbose[=<verbose(default:false)>]]
    [--upgrade[=<upgrade(default:false)>]]
    [-w|--watchdog[=<watchdog(default:false)>]]
    [-d|--debug[=<debug(default:false)>]]
    [-n|--dry-run[=<dry-run(default:false)>]]
    [--drop-interrupted-commands[=<drop-interrupted-commands(default:false)>]]
    [--prebootcommandfile <prebootcommandfile>]
    [--postbootcommandfile <postbootcommandfile>] [--domaindir <domaindir>]
    [-?|--help[=<help(default:false)>]] [domain_name]

可悲的是,我坚信Payara是不成熟的产品。

但是,如何解决所有这些错误/错误

编辑:

我正在使用Windows 10 PRO

Netbeans 12 上进行测试
Launching Payara Server on Felix platform
INFO: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOsgiGlassFishRuntime@586f5c68 in service registry.
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:109)
    at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:54)
Caused by: A MultiException has 2 exceptions.  They are:
1. com.sun.enterprise.module.ResolveError: Failed to start OsgiModuleImpl:: Bundle = [fish.payara.server.internal.batch.glassfish-batch-connector [102]],State = [NEW]
2. java.lang.IllegalStateException: Could not load descriptor SystemDescriptor(
    implementation=org.glassfish.batch.spi.impl.BatchRuntimeConfigurationInjector
    name=batch-runtime-configuration
    contracts={org.glassfish.batch.spi.impl.BatchRuntimeConfigurationInjector,org.jvnet.hk2.config.ConfigInjector}
    scope=javax.inject.Singleton
    qualifiers={org.jvnet.hk2.config.InjectionTarget}
    descriptorType=CLASS
    descriptorVisibility=norMAL
    Metadata=@table-suffix={optional,default\:,datatype\:java.lang.String,leaf},@data-source-lookup-name={optional,@table-prefix={optional,@schema-name={optional,default\:APP,@executor-service-lookup-name={optional,default\:concurrent/__defaultManagedExecutorService,target={org.glassfish.batch.spi.impl.BatchRuntimeConfiguration},Bundle-SymbolicName={fish.payara.server.internal.batch.glassfish-batch-connector},Bundle-Version={5.2020.4}
    rank=0
    loader=OsgiPopulatorPostProcessor.HK2Loader(OsgiModuleImpl:: Bundle = [fish.payara.server.internal.batch.glassfish-batch-connector [102]],State = [NEW],1228963996)
    proxiable=null
    proxyForSameScope=null
    analysisName=null
    id=170
    locatorId=0
    identityHashCode=373437697
    reified=false)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.loadClass(ServiceLocatorImpl.java:2247)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:457)
    at org.jvnet.hk2.config.DomDocument$InjectionTargetFilter.matches(DomDocument.java:184)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getDescriptors(ServiceLocatorImpl.java:347)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getDescriptors(ServiceLocatorImpl.java:389)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getBestDescriptor(ServiceLocatorImpl.java:397)
    at org.jvnet.hk2.config.DomDocument.buildModel(DomDocument.java:135)
    at org.jvnet.hk2.config.ConfigModel.parseValue(ConfigModel.java:959)
    at org.jvnet.hk2.config.ConfigModel.<init>(ConfigModel.java:875)
    at org.jvnet.hk2.config.DomDocument.buildModel(DomDocument.java:114)
    at org.jvnet.hk2.config.DomDocument.getModelByElementName(DomDocument.java:162)
    at org.jvnet.hk2.config.ConfigParser.handleElement(ConfigParser.java:165)
    at org.jvnet.hk2.config.ConfigParser.parse(ConfigParser.java:101)
    at org.jvnet.hk2.config.ConfigParser.parse(ConfigParser.java:95)
    at org.glassfish.config.support.DomainXml.parseDomainXml(DomainXml.java:271)
    at org.glassfish.config.support.DomainXml.run(DomainXml.java:121)
    at org.jvnet.hk2.config.ConfigurationPopulator.populateConfig(ConfigurationPopulator.java:58)
    at org.glassfish.hk2.bootstrap.HK2Populator.populateConfig(HK2Populator.java:83)
    at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.populateConfig(AbstractModulesRegistryImpl.java:190)
    at com.sun.enterprise.module.bootstrap.Main.createServiceLocator(Main.java:249)
    at org.jvnet.hk2.osgiadapter.HK2Main.createServiceLocator(HK2Main.java:95)
    at com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOsgiGlassFishRuntime.newGlassFish(EmbeddedOsgiGlassFishRuntime.java:95)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishRuntimeDecorator.newGlassFish(GlassFishRuntimeDecorator.java:68)
    at com.sun.enterprise.glassfish.bootstrap.osgi.OsgiGlassFishRuntime.newGlassFish(OsgiGlassFishRuntime.java:91)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:125)
    ... 6 more
Caused by: com.sun.enterprise.module.ResolveError: Failed to start OsgiModuleImpl:: Bundle = [fish.payara.server.internal.batch.glassfish-batch-connector [102]],State = [NEW]
    at org.jvnet.hk2.osgiadapter.OsgiModuleImpl.start(OsgiModuleImpl.java:193)
    at org.jvnet.hk2.osgiadapter.OsgiPopulatorPostProcessor$1.loadClass(OsgiPopulatorPostProcessor.java:54)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.loadClass(ServiceLocatorImpl.java:2239)
    ... 31 more
Caused by: org.osgi.framework.BundleException: Unable to resolve fish.payara.server.internal.batch.glassfish-batch-connector [102](R 102.0): missing requirement [fish.payara.server.internal.batch.glassfish-batch-connector [102](R 102.0)] osgi.wiring.package; (osgi.wiring.package=com.ibm.jbatch.spi) [caused by: Unable to resolve fish.payara.server.internal.batch.payara-jbatch [311](R 311.0): missing requirement [fish.payara.server.internal.batch.payara-jbatch [311](R 311.0)] osgi.wiring.package; (osgi.wiring.package=org.glassfish.weld) [caused by: Unable to resolve fish.payara.server.internal.web.weld-integration [372](R 372.0): missing requirement [fish.payara.server.internal.web.weld-integration [372](R 372.0)] osgi.wiring.package; (&(osgi.wiring.package=org.glassfish.web.deployment.descriptor)(version>=5.2020.0)(!(version>=6.0.0))) [caused by: Unable to resolve fish.payara.server.internal.web.glue [360](R 360.0): missing requirement [fish.payara.server.internal.web.glue [360](R 360.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.catalina)(version>=5.2020.0)(!(version>=6.0.0))) [caused by: Unable to resolve fish.payara.server.internal.web.core [358](R 358.0): missing requirement [fish.payara.server.internal.web.core [358](R 358.0)] osgi.wiring.package; (&(osgi.wiring.package=org.glassfish.web.loader)(version>=5.2020.0)(!(version>=6.0.0)))]]]] Unresolved requirements: [[fish.payara.server.internal.batch.glassfish-batch-connector [102](R 102.0)] osgi.wiring.package; (osgi.wiring.package=com.ibm.jbatch.spi)]
    at org.apache.Felix.framework.Felix.resolveBundleRevision(Felix.java:4368)
    at org.apache.Felix.framework.Felix.startBundle(Felix.java:2281)
    at org.apache.Felix.framework.BundleImpl.start(BundleImpl.java:998)
    at org.jvnet.hk2.osgiadapter.OsgiModuleImpl.startBundle(OsgiModuleImpl.java:227)
    at org.jvnet.hk2.osgiadapter.OsgiModuleImpl.start(OsgiModuleImpl.java:185)
    ... 33 more
Completed shutdown of GlassFish runtime
We are in non-embedded mode,so fish.payara.server.internal.core.glassfish [113] has nothing to do.

解决方法

错误“未知协议:RFB”来自Hazelcast组件,该组件正在尝试发现可能在端口5900上运行的其他群集实例。在某些操作系统中(通常是在Mac上),该端口被VNC占用(远程桌面),以意外方式响应Payara Server。

在Payara知识库中有针对Payara Enterprise用户的解决方案。我可以使用它,并将在此处复制相关部分。

有多种解决方案:

  • 停止占用端口5900的进程(例如,VNC,默认情况下使用该端口)。或者,您可以更改其端口。然后,Payara Server应该开始运行。
  • 配置Payara服务器以使用其他端口进行Hazelcast。如果根据上述解决方案运行Payara Server,则可以运行命令:asadmin set-hazelcast-configuration --startport=5901
  • 直接编辑目录domain.xml中的glassfish/domains/domain1/config,并将端口5900更改为其他端口。然后照常运行Payara Server。
  • 或在启动时更改Payara Server的Hazelcast端口。首先,用一行config.txt创建一个文本文件set-hazelcast-configuration --startport=5901。然后使用asdamin start-domain --postbootcommandfile config.txt启动Payara Server。文档中的更多信息:https://docs.payara.fish/community/docs/5.2020.4/documentation/payara-micro/asadmin/pre-and-post-boot-scripts.html

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...