我试图在z / OS中运行this jberet java批处理程序但是,得到以下异常。这似乎是z / OS中的权限,因为在Windows机器上运行相同的可执行文件(fat / uber)。
Oct 05, 2017 9:07:41 AM org.jboss.weld.bootstrap.WeldStartup <clinit>
INFO: WELD-000900: 2.4.5 (Final) Oct 05, 2017 9:07:41 AM org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy processAnnotatedDiscovery
INFO: WELD-ENV-000014: Falling back to Java Reflection for bean-discovery-mode="annotated" discovery. Add org.jboss:jandex to the classpath to speed-up startup.
Exception in thread "main" java.util.ServiceConfigurationError: javax.batch.operations.JobOperator: Provider org.jberet.operations.JobOperatorImpl could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:236)
at java.util.ServiceLoader.access$100(ServiceLoader.java:193)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:389)
at java.util.ServiceLoader$1.next(ServiceLoader.java:457)
at javax.batch.runtime.BatchRuntime$1.run(BatchRuntime.java:51)
at javax.batch.runtime.BatchRuntime$1.run(BatchRuntime.java:46)
at java.security.AccessController.doPrivileged(AccessController.java:396)
at javax.batch.runtime.BatchRuntime.getJobOperator(BatchRuntime.java:46)
at com.citi.Report.App.main(App.java:18)
Caused by: com.ibm.crypto.hdwrCCA.provider.JCECCARuntimeException: Hardware error from call CSNBRNGL returnCode 8 reasonCode 16000
at com.ibm.crypto.hdwrCCA.provider.SecureRandom.engineNextBytes(SecureRandom.java:40)
at java.security.SecureRandom.nextBytes(SecureRandom.java:470)
at java.util.UUID.randomUUID(UUID.java:157)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:779)
at org.jberet.se.SEArtifactFactory.<init>(SEArtifactFactory.java:29)
at org.jberet.se.BatchSEEnvironment.getArtifactFactory(BatchSEEnvironment.java:133)
at org.jberet.operations.JobOperatorImpl.<init>(JobOperatorImpl.java:93)
at java.lang.J9VMInternals.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1887)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:385)
... 6 more
这个错误的解决方案是什么?
Hardware error from call CSNBRNGL returnCode 8 reasonCode 16000
更新: 这个批处理程序不会读/写任何大型机文件,它只是一个hello world示例。这个批处理程序很少有重要的事情 1. WELD读取beans.xml 2. JBeret阅读JBERET.properties 3.创建H2 DB以用作作业存储库
我想知道其中任何一个是否需要这些额外的权限。
答案 0 :(得分:3)
IBM JCE实现尝试调用失败的加密服务CSNBRNGL
。
原因代码16000说
RACF未能使用此服务。
进一步观察,可以发现执行代码的用户需要访问类CSFRNGL
中资源CSFSERV
的访问权限(READ应该足够)。
由于可能需要更多服务,因此可能不是您需要访问的唯一资源,因此可能会考虑CSF*
行的通用配置文件。
请参阅here以获取所有CSFSERV
RACF资源及其保护服务的列表。