WPaxos
WPaxos copied to clipboard
测试程序运行的一些问题
0 前言
您好! 我在运行测试程序时遇到了一些问题。以Echo为例,我看到了示例命令:
nohup java -jar jar.jar /opt/wpaxos/ 127.0.0.1:30000 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
nohup java -jar jar.jar /opt/wpaxos/ 127.0.0.1:30001 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
nohup java -jar jar.jar /opt/wpaxos/ 127.0.0.1:30002 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
- 请问为什么会有/opt/wpaxos/路径(是任意指定的路径,还是一定与此路径有关?它是Linux路径,在Windows下运行没问题吧)?
- 我打包得到了wpaxos.sample.jar,在3个终端分别运行命令:
java -cp .\wpaxos.sample.jar com.wuba.wpaxos.sample.echo.EchoClient . 127.0.0.1:30000 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
java -cp .\wpaxos.sample.jar com.wuba.wpaxos.sample.echo.EchoClient . 127.0.0.1:30001 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
java -cp .\wpaxos.sample.jar com.wuba.wpaxos.sample.echo.EchoClient . 127.0.0.1:30002 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
报错了,下面逐一说明:
1 前言中不允许有内容
下面是具体日志:
PS D:\Sync\Codes\WPaxos\test> java -cp .\wpaxos.sample.jar com.wuba.wpaxos.sample.echo.EchoClient . 127.0.0.1:30000 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
[Fatal Error] :1:1: 前言中不允许有内容。
ERROR StatusLogger Error parsing null
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:262)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at org.apache.logging.log4j.core.config.xml.XmlConfiguration.<init>(XmlConfiguration.java:92)
at org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46)
at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:578)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:179)
at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:86)
at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:67)
at com.wuba.wpaxos.sample.echo.EchoClient.main(EchoClient.java:40)
ERROR StatusLogger No logging configuration
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
尝试按照网络方法配置UTF-8,仍报错。
2 TCP无法连接
20:10:07.456 [New I/O boss #2] ERROR com.wuba.wpaxos.communicate.client.tcp.TcpClientHander - unexpected exception from downstream remoteAddress (/127.0.0.1:30001)
java.net.ConnectException: Connection refused: getsockopt: /127.0.0.1:30001
at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
...(省略)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.runthread.java:1583) [?:?]
20:10:07.456 [main] ERROR com.wuba.wpaxos.communicate.TcpWriteHandler - create tcp channel failed, ip : 127.0.0.1, port : 30001.
org.jboss.netty.channel.ChannelException: java.net.ConnectException: Connection refused: getsockopt: /127.0.0.1:30001
at org.jboss.netty.channel.DefaultChannelFuture.rethrowIfFailed0(DefaultChannelFuture.java:221) ~[wpaxos.sample.jar:?]
...
at com.wuba.wpaxos.sample.echo.EchoClient.main(EchoClient.java:48) [wpaxos.sample.jar:?]
Caused by: java.net.ConnectException: Connection refused: getsockopt: /127.0.0.1:30001
at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
...
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
目前测试程序是否可以正常运行?我配置的JDK版本为1.8(较新版本会有其他报错)。
期待您的回复!
- /opt/wpaxos/ 是指定paxos log输出路径,可以任意指定
- 前言中不允许有内容 错误应该是log4j2配置文件哪里语法还有问题
- tcp连接的问题,服务端口是30001的节点启动有报错吗?
- 实测程序运行时,会检查指定的文件夹下是否有./conf/log4j.properties文件,如果没有会报错:
java -cp .\wpaxos.sample.jar com.wuba.wpaxos.sample.echo.EchoClient . 127.0.0.1:30002 127.0.0.1:30000,127.0.0.1:30001,127.0.0.1:30002 1 0
Exception in thread "main" java.io.FileNotFoundException: .\conf\log4j.properties (系统找不到指定的文件。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:106)
at com.wuba.wpaxos.sample.echo.EchoClient.main(EchoClient.java:39)
也就是说需要事先在指定的文件夹下创建conf文件夹和log4j.properties文件,并配置,有点不方便。
2. 我又尝试在网络搜索log4j.properties的一些配置,仍不起作用。注:当前项目使用的是log4j,不是log4j2:
3. 是会报错的,3个节点都会报错,无法正常输入:
wpaxos依赖的是log4j2
demo里确实可以优化下,添加个默认路径和配置文件
