尝试使用 IBM Java 8 在 z, SLES12 上运行 Liferay 7 bundle。我在运行 startup.sh 时收到以下错误:
27-Jan-2017 17:00:14.652 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor /data/liferay/tomcat-8.0.32/conf/Catalina/localhost/ROOT.xml
27-Jan-2017 17:00:15.342 INFO [localhost-startStop-1] org.apache.catalina.util.ExtensionValidator.validateManifestResources ExtensionValidator[][file:/data/liferay/tomcat-8.0.32/webapps/ROOT/WEB-INF/classes/META-INF/MANIFEST.MF]: Required extension [javax.crypto] not found.
27-Jan-2017 17:00:15.343 INFO [localhost-startStop-1] org.apache.catalina.util.ExtensionValidator.validateManifestResources ExtensionValidator[]: Failure to find [1] required extension(s).
27-Jan-2017 17:00:15.343 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more components marked the context as not correctly configured
27-Jan-2017 17:00:15.344 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
27-Jan-2017 17:00:15.349 WARNING [localhost-startStop-1] org.apache.catalina.deploy.NamingResourcesImpl.cleanUp Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] so no cleanup was performed for that container
javax.naming.NameNotFoundException: Name [comp/env] is not bound in this Context. Unable to find [comp].
at org.apache.naming.NamingContext.lookup(NamingContext.java:818)
at org.apache.naming.NamingContext.lookup(NamingContext.java:166)
at org.apache.catalina.deploy.NamingResourcesImpl.cleanUp(NamingResourcesImpl.java:993)
at org.apache.catalina.deploy.NamingResourcesImpl.stopInternal(NamingResourcesImpl.java:975)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:224)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5492)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:224)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:159)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:585)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1794)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
at java.util.concurrent.FutureTask.run(FutureTask.java:277)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.lang.Thread.run(Thread.java:785)
27-Jan-2017 17:00:15.352 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of configuration descriptor /data/liferay/tomcat-8.0.32/conf/Catalina/localhost/ROOT.xml has finished in 699 ms
27-Jan-2017 17:00:15.354 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 752 ms
27-Jan-2017 17:00:15.356 SEVERE [main] org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8005]:
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:417)
at java.net.ServerSocket.bind(ServerSocket.java:444)
at java.net.ServerSocket.<init>(ServerSocket.java:258)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:420)
at org.apache.catalina.startup.Catalina.await(Catalina.java:717)
at org.apache.catalina.startup.Catalina.start(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap
.main(Bootstrap.java:485)
爪哇版本:
java version "1.8.0"
Java(TM) SE Runtime Environment (build pxz6480sr3fp21-20161117_02(SR3 FP21))
IBM J9 VM (build 2.8, JRE 1.8.0 Linux s390x-64 Compressed References 20161114_325917 (JIT enabled, AOT enabled)
J9VM - R28_20161114_0146_B325917
JIT - tr.r14.java.green_20161111_127476
GC - R28_20161114_0146_B325917_CMPRSS
J9CL - 20161114_325917)
JCL - 20161116_01 based on Oracle jdk8u111-b14
我似乎无法清除
未找到所需的扩展名 [javax.crypto]
错误,我想知道是否有人知道:
- IBM Java与Liferay 7兼容
- 有一种方法可以使用Oracle Java安全包代替IBM的
如果有人有任何关于如何在当前环境中启动和运行Liferay 7的信息,将不胜感激。
Ans 2. javax.crypto 包应该存在于 IBM java 中 - 在 rt.jar 中。直接用 Oracle 包替换它可能会破坏 IBM java 类库功能,因为它们的结构和实现略有不同。
感谢您的输入。我们通过删除清单解决了该问题。MF(在Liferay 7捆绑的Tomcat目录中)文件,专门引用Oracle Java的加密。 当我们删除该文件时,它启动时没有错误。 从那时起,我们倾向于在日志中看到一条消息,大意是"找不到 Oracle 的加密文件,而是使用 IBM 的加密文件"。
启动时不存在其他问题。