我试图在z/os中运行此Jberet Java批处理程序,但是获得以下例外。这似乎是z/os中的WRT权限,因为在Windows机器中使用了相同的可执行(fat/uber)jar。
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.焊接阅读beans.xml 2. jberet阅读jberet.properties 3.创建一个H2 db,用于使用作为作业存储库
想知道是否需要这些额外的权限。
ibm jce-implentation试图调用失败的隐态服务 CSNBRNGL
。
原因代码16000说
RACF未能使用您使用此服务的请求。
进一步寻找,可以发现执行代码需要访问的用户(读取应该足够)到类CSFSERV
中的资源CSFRNGL
。
由于可能需要更多的服务,因此可能不是您需要访问的唯一资源,因此也许可以考虑使用CSF*
的通用配置文件。
有关所有CSFSERV
RACF-Resources及其保护的服务的列表。