【问题标题】:Jini (Apache River) cannot initialize Reggie (Lookup Service) scriptJini (Apache River) 无法初始化 Reggie (Lookup Service) 脚本
【发布时间】:2013-06-14 18:23:11
【问题描述】:

我知道 Jini (Apache River) 是一项相当陈旧且过时的技术,但我需要它用于大学项目。

问题是我什至无法启动查找服务脚本 (jrmp-reggie.sh)。执行 httpd.sh 效果很好。

有什么建议吗?谢谢。

顺便说一下,这是我得到的输出:

+ java -Djava.security.policy=config/start.policy -Djava.ext.dirs=../../lib-ext/ -jar ../../lib/start.jar config/start-reggie.config
Jun 14, 2013 8:19:51 PM com.sun.jini.reggie.RegistrarImpl <init>
SEVERE: Reggie initialization failed
java.lang.ExceptionInInitializerError
    at net.jini.config.AbstractConfiguration.getEntryInternal(AbstractConfiguration.java:371)
    at net.jini.config.AbstractConfiguration.getEntry(AbstractConfiguration.java:193)
    at com.sun.jini.reggie.RegistrarImpl.init(RegistrarImpl.java:4554)
    at com.sun.jini.reggie.RegistrarImpl.access$000(RegistrarImpl.java:143)
    at com.sun.jini.reggie.RegistrarImpl$1.run(RegistrarImpl.java:448)
    at com.sun.jini.reggie.RegistrarImpl.loginAndRun(RegistrarImpl.java:461)
    at com.sun.jini.reggie.RegistrarImpl.<init>(RegistrarImpl.java:396)
    at com.sun.jini.reggie.TransientRegistrarImpl.<init>(TransientRegistrarImpl.java:39)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.sun.jini.start.NonActivatableServiceDescriptor.create(NonActivatableServiceDescriptor.java:674)
    at com.sun.jini.start.ServiceStarter.create(ServiceStarter.java:287)
    at com.sun.jini.start.ServiceStarter.processServiceDescriptors(ServiceStarter.java:445)
    at com.sun.jini.start.ServiceStarter.main(ServiceStarter.java:476)
Caused by: java.lang.RuntimeException: Unexpected exception
    at com.sun.jini.logging.Levels.createLevel(Levels.java:142)
    at com.sun.jini.logging.Levels.<clinit>(Levels.java:52)
    ... 16 more
Caused by: java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2596)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
    at com.sun.jini.logging.Levels.createLevel(Levels.java:138)
    ... 17 more

Jun 14, 2013 8:19:51 PM com.sun.jini.start.ServiceStarter checkResultFailures
WARNING: Exception creating service.
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.sun.jini.start.NonActivatableServiceDescriptor.create(NonActivatableServiceDescriptor.java:674)
    at com.sun.jini.start.ServiceStarter.create(ServiceStarter.java:287)
    at com.sun.jini.start.ServiceStarter.processServiceDescriptors(ServiceStarter.java:445)
    at com.sun.jini.start.ServiceStarter.main(ServiceStarter.java:476)
Caused by: java.lang.ExceptionInInitializerError
    at net.jini.config.AbstractConfiguration.getEntryInternal(AbstractConfiguration.java:371)
    at net.jini.config.AbstractConfiguration.getEntry(AbstractConfiguration.java:193)
    at com.sun.jini.reggie.RegistrarImpl.init(RegistrarImpl.java:4554)
    at com.sun.jini.reggie.RegistrarImpl.access$000(RegistrarImpl.java:143)
    at com.sun.jini.reggie.RegistrarImpl$1.run(RegistrarImpl.java:448)
    at com.sun.jini.reggie.RegistrarImpl.loginAndRun(RegistrarImpl.java:461)
    at com.sun.jini.reggie.RegistrarImpl.<init>(RegistrarImpl.java:396)
    at com.sun.jini.reggie.TransientRegistrarImpl.<init>(TransientRegistrarImpl.java:39)
    ... 8 more
Caused by: java.lang.RuntimeException: Unexpected exception
    at com.sun.jini.logging.Levels.createLevel(Levels.java:142)
    at com.sun.jini.logging.Levels.<clinit>(Levels.java:52)
    ... 16 more
Caused by: java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2596)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
    at com.sun.jini.logging.Levels.createLevel(Levels.java:138)
    ... 17 more

Jun 14, 2013 8:19:51 PM com.sun.jini.start.ServiceStarter checkResultFailures
WARNING: Associated service descriptor [0]: [http://t420:8080/reggie-dl.jar http://t420:8080/jsk-dl.jar, config/reggie.policy, ../../lib/reggie.jar, com.sun.jini.reggie.TransientRegistrarImpl, [config/jrmp-reggie.config], com.sun.jini.start.NonActivatableServiceDescriptor$1@c27ce4, BasicProxyPreparer[]]

【问题讨论】:

    标签: java jini


    【解决方案1】:

    这看起来与我在升级 JDK 时看到的错误相同。尝试 JDK 1.6.0_38(如果您使用的是更高版本)。此外,Apache River 项目确实遇到了这个问题,并且似乎有一个解决方法,其中涉及更改 Levels.java

    https://issues.apache.org/jira/browse/RIVER-415

    问候

    【讨论】:

    • 这不是答案。请发表评论
    【解决方案2】:

    听起来你可能没有启动 rmid。

    【讨论】:

    • 我刚从rmid -J-Djava.security.policy=rmid.policy 开始,我得到了完全相同的错误。有没有其他方法可以正确地做到这一点?
    • HTTP 服务器是否正常启动?它的命令是什么? http服务器中的任何错误日志?
    • 不,一点也不。 HTTP 服务器完美启动。根据this guide,命令只是./scripts/httpd.sh——输出+ java -jar ../../lib/classserver.jar -port 8080 -dir lib:../../lib-dl Jun 14, 2013 8:07:19 PM com.sun.jini.tool.ClassServer run INFO: ClassServer started [[lib/, ../../lib-dl/], port 8080]
    • 所以您可以在浏览器中打开localhost:8080/reggie-dl.jar 并下载文件?如果这行得通,我不确定它可能是什么,除了服务器上的一些文件权限问题。
    • 是的,这行得通。只是雷吉没有开始。而java.policy 包含授权permission java.security.AllPermission;
    【解决方案3】:

    我猜 Reggie 脚本试图访问配置文件,但它不能! 如果脚本位于:river/examples/hello/scripts 将其复制到更高的文件夹中。我的意思是河/例子/你好/ 然后,运行它。让我知道你的输出。您正在使用“sh”文件。但是,不要使用“bat”文件。让我知道结果。

    【讨论】:

    • 另外,在编辑器中打开脚本。检查:一开始应该有一个'set -x'命令。然后,Jini是很久以前开发的。 JDK 是 Java 1.6 update 24.
    • 关于更多的事情,运行带有详细选项的 httpd.sh 以检查 reggie 是否可以请求 httpd。 $ sh httpd.sh -verbose
    • 以上都做了。还是一样的错误。这是雷吉脚本set -x java -Djava.security.policy=config/start.policy \ -Djava.ext.dirs=../../lib-ext/ \ -jar ../../lib/start.jar \ config/start-reggie.config
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多