AnyChat技术支持论坛

标题: 业务逻辑层linux服务器无法运行 [打印本页]

作者: あ宇龙!お    时间: 2013-11-6 20:27
标题: 业务逻辑层linux服务器无法运行
我们公司linux服务器,因为是纯终端的,无法运行你们这个带窗口的java程序。请问有没有业务层现成代码提供,登陆界面我们有公司有自己的登陆验证无需在这实现,但是需要转成我们的用户id而不是游客模式登陆。所以也要业务层服务器。现在想要现成的我们只需小改动的业务层无窗口代码加程序。
作者: admin    时间: 2013-11-6 22:12
您好,anychat是支持linux服务器的,其中业务服务器有两个Java示例代码,分别是:AnyChatBusinessServer(有GUI界面,适合桌面环境下运行)、AnyChatSampleServer(没有GUI界面,适合控制终端下运行),建议您参考AnyChat for Server SDK\bin\serversdk\readme.txt
作者: あ宇龙!お    时间: 2013-11-7 11:22
admin 发表于 2013-11-6 22:12
您好,anychat是支持linux服务器的,其中业务服务器有两个Java示例代码,分别是:AnyChatBusinessServer( ...


你好,这个AnyChatSampleServer Java程序导入我的eclipse中修改执行之后出现找不到库文件 Exception in thread "main" java.lang.UnsatisfiedLinkError: no anychatserver4java in java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at com.bairuitech.anychat.AnyChatServerSDK.<clinit>(AnyChatServerSDK.java:169)
        at com.bairuitech.server.SampleServer.main(SampleServer.java:22)

作者: 佰锐技术-卓剑锐    时间: 2013-11-7 11:35
本帖最后由 佰锐技术-卓剑锐 于 2013-11-7 11:51 编辑
あ宇龙!お 发表于 2013-11-7 11:22
你好,这个AnyChatSampleServer Java程序导入我的eclipse中修改执行之后出现找不到库文件 Exception in ...

没有 anychatserver4java
作者: 廖斌    时间: 2013-11-7 11:41
佰锐技术-卓剑锐 发表于 2013-11-7 11:35
你好。试下

是不是没有将anychatserver4java.so库文件导入到工程里面啊
作者: 佰锐技术-卓剑锐    时间: 2013-11-7 11:51
あ宇龙!お 发表于 2013-11-7 11:22
你好,这个AnyChatSampleServer Java程序导入我的eclipse中修改执行之后出现找不到库文件 Exception in ...

日志报 没有 anychatserver4java。
把库文件导入应该可以。
作者: あ宇龙!お    时间: 2013-11-8 09:53
还有个问题就是 我现在是在window系统下 改linux系统的业务服务器,结果业务服务器代码无法打包成jar 提示说 库找不到
如果用dll文件替换掉so文件的话 能打包 但是运行的时候报错  
作者: admin    时间: 2013-11-8 10:10
路径的问题,您看一下runsampleserver.sh脚本的第一行,有一个export LD_LIBRARY_PATH的脚本,您将.so库放到java\bin目录下应该可以解决该问题。
或者您将打包好的jar文件,用脚本来启动,而不用Eclipse来启动试试?

作者: あ宇龙!お    时间: 2013-11-8 11:57
嗯 现在已经启动了,谢谢
作者: あ宇龙!お    时间: 2013-11-14 10:12
如何将这个sampleserver.jar永久的在后台运行?
作者: admin    时间: 2013-11-14 10:17
您好,您可以配置为开机自启动,用户手册有详细的说明。
作者: あ宇龙!お    时间: 2013-11-17 17:54
标题: 业务服务器sample无法运行
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/share/AnyChat/libanychatserver4java.so: /home/share/AnyChat/libanychatserver4java.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at com.bairuitech.anychat.AnyChatServerSDK.<clinit>(AnyChatServerSDK.java:169)
        at com.bairuitech.server.SampleServer.main(SampleServer.java:22)

作者: admin    时间: 2013-11-17 20:03
您好,可能是您下载的SDK是32bit的版本,而操作系统是64bit的版本,请重新下载:http://www.anychat.cn/download.html?t=Linux
作者: あ宇龙!お    时间: 2013-11-18 11:17
我确定我下载的是64位的

作者: あ宇龙!お    时间: 2013-11-18 11:21
业务服务器sample无法运行
第一 我确保是下载的64位的linux版本  
第二 原版sample (即你们公司提供的sample 程序可以运行)
第三 我改动版sample程序(即,我们公司自己有登陆方式,但是需要把我们公司的账号,id信息统一进去)是在window32下打包的

作者: admin    时间: 2013-11-18 11:23
您好,请问您是部署到Web容器中的吗?
作者: あ宇龙!お    时间: 2013-11-18 14:24
不是,sample是单独的一个jar包java程序。放在linux 64位系统上运行的
作者: admin    时间: 2013-11-18 14:46
您好,可能是您的LD_LIBRARY_PATH变量设置有问题,没有将相关的库(如libanychatserver4java.so)路径加入变量,请参考runsampleserver.sh脚本。

另外请确认libanychatserver4java.so、libanychatserversdk.so库和您的.jar包在同一个目录下,谢谢。
作者: あ宇龙!お    时间: 2013-11-18 20:42
库文件是和jar包在同一文件夹目录下,.sh 脚本与runsampleserver.sh  一致 代码为:export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH && java -Dfile.encoding=UTF-8 -jar ./chat.jar 后面有个回车  请求指点
作者: admin    时间: 2013-11-18 21:01
您好,请执行如下两条指令,将结果贴上来我们参考一下,谢谢:

  1. ldd ./libanychatserver4java.so
  2. ldd ./libanychatserversdk.so
复制代码

作者: あ宇龙!お    时间: 2013-11-19 08:46
aizhiqiang@VANHON124:/home/share/AnyChat$ ls
anychatcoresdk_linux_r3673  chat.jar                  runsampleserver.sh
AnyChatSampleServer.jar     libanychatserver4java.so  runServer.sh
char.jar                    libanychatserversdk.so
aizhiqiang@VANHON124:/home/share/AnyChat$ ldd ./libanychatserver4java.so
        linux-gate.so.1 =>  (0xf7714000)
        libanychatserversdk.so => not found
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf75fc000)
        libm.so.6 => /lib32/libm.so.6 (0xf75d5000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75b6000)
        libc.so.6 => /lib32/libc.so.6 (0xf7456000)
        /lib/ld-linux.so.2 (0xf7715000)
aizhiqiang@VANHON124:/home/share/AnyChat$ ldd ./libanychatserversdk.so
        linux-gate.so.1 =>  (0xf77e0000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf7798000)
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf76a3000)
        libm.so.6 => /lib32/libm.so.6 (0xf767c000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf765d000)
        libc.so.6 => /lib32/libc.so.6 (0xf74fd000)
        /lib/ld-linux.so.2 (0xf77e1000)
aizhiqiang@VANHON124:/home/share/AnyChat$

作者: あ宇龙!お    时间: 2013-11-19 08:49
RegisterNatives failed for 'com/bairuitech/anychat/AnyChatServerSDK'
Exception in thread "main" java.lang.NoSuchMethodError: Method com.bairuitech.anychat.AnyChatServerSDK.RegisterVerifyUserClass(Lcom/bairuitech/anychat/AnyChatVerifyUserOutParam;)I not found
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at com.bairuitech.anychat.AnyChatServerSDK.<clinit>(AnyChatServerSDK.java:169)
        at com.bairuitech.server.SampleServer.main(SampleServer.java:22)
  现在出现这个问题??
作者: 廖斌    时间: 2013-11-19 09:32
あ宇龙!お 发表于 2013-11-19 08:49
RegisterNatives failed for 'com/bairuitech/anychat/AnyChatServerSDK'
Exception in thread "main" jav ...

你的AnyChatVerifyUserOutParam类是放在com.bairuitech.anychat包下面吗?另外你的工程是部署在tomcat中吗?
作者: admin    时间: 2013-11-19 09:32
Exception in thread "main" java.lang.NoSuchMethodError: Method com.bairuitech.anychat.AnyChatServerSDK.RegisterVerifyUserClass()I not found

请更新SDK包中的.java源代码(SDK包:sdk\server\java\),主要是因为我们新增加了一个API接口,所以您需要更新一下.java源代码。
作者: あ宇龙!お    时间: 2013-11-20 08:41
本帖最后由 あ宇龙!お 于 2013-11-20 08:43 编辑

嗯,好的 可能是我的库文件跟程序代码版本不一致
作者: あ宇龙!お    时间: 2013-11-20 17:30
标题: 为什么我改的业务服务器登陆不进去
本帖最后由 あ宇龙!お 于 2013-11-20 17:37 编辑

第三方逃避 验证登陆
代码修改:        (整个程序只改了这个函数)// 用户身份验证,若验证成功,则必须返回0,且分配一个唯一的userid,若验证失败,则返回出错代码,不用分配userid
        @Override
        public int OnAnyChatVerifyUserCallBack(String szUserName, String szPassword, AnyChatVerifyUserOutParam outParam) {
                //outParam.SetUserId(iUserIdSeed);                // 若身份验证成功,必须分配一个唯一的userid
                int userID = Integer.parseInt(szPassword);
                outParam.SetUserLevel(0);
                outParam.SetNickName(szUserName);
               
                System.out.print(getCurrentTime() + "OnVerifyUserCallBack: userid:" + userID + " username: " + szUserName + "\r\n");
                //iUserIdSeed += 1;
                return 0;
        }
登陆不进去的log:
BRAC_InitSDK(0)=0 17:38:51
AnyChat Plugin Version:1.0.0.5 17:38:51
AnyChat SDK Version:4.8 17:38:51
Build Time:Sep 11 2013 20:23:39 17:38:51
BRAC_Connect(192.168.0.124,8906)=0 17:38:52
BRAC_Login(问问额)=0 17:38:52
BRAC_EnterRoom(1)=-1 17:38:52
OnAnyChatConnect(errorcode=0) 17:38:52
OnAnyChatLoginSystem(userid=-1, errorcode=205) 17:38:52
OnAnyChatLinkClose(reason=0, errorcode=0) 17:39:00
OnAnyChatConnect(errorcode=0) 17:39:02循环打印:
OnAnyChatLinkClose(reason=0, errorcode=0) 17:39:00
OnAnyChatConnect(errorcode=0) 17:39:02






作者: admin    时间: 2013-11-20 17:35
您好,您没有分配一个userid给客户端,errorcode=205,表示:无效的用户ID(用户不存在)
outParam.SetUserId(iUserIdSeed);  这句代码您不能屏蔽。

作者: あ宇龙!お    时间: 2013-11-20 17:38
喔  好的
我改改




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3