您的位置:首页 > 其它

ICE常见编译和运行(异常)错误

2009-09-10 13:06 351 查看
在编译和

Ice

应用相关的文件中,经常因为

ice

相关的文件包含关系而导致编译无法通过,此时的错误一般提示和

handle.h

相关。然而想要解决这样的错误,一般只需要把在无法编译成

.o

文件的

.cpp

文件中和

ice

文件相关的头文件放在该

.cpp

文件的起始行即可。也就是说,根据提示,把

.cpp

文件中最早提示导致出错的

.h

文件放在起始行。

ICE

的常见运行错误

(

异常

):

1

使用的地址错误

,IP

并非本地

IP:

发生在初始化服务器时

,

没办法初始化

adapter.

错误信息

:

(IP

错误

)

./test: Network.cpp:475: Ice::SocketException:

socket exception: Cannot assign requested
address

另外

:

已经启动服务器后又重新启动

:

发生在初始化服务器时

,

没办法初始化

adapter.

错误信息

: (port

已经被使用

)

./server: Network.cpp:475:
Ice::SocketException:

socket exception: Address already in use

///stringtoProxy

对于任何

string

都是有效的

,

均可以生成相应代理

,

但是该代理是否有效是无法保证的

.

如果代理无效

,

也就是说根本就没有这样的

adapter

或者对象

,

那么使用

Checkcast

或直接用该代理调用相应对象接口均会抛异常

.

下面对每种情况加于分析

.

2

使用的代理

IP

错误

:

发生在使用代理调用接口的时候

原因

:

根本就没有相应的通讯器存在

.

错误信息

:

(

使用的代理

IP

错误

)

抛出异常

: Ice::ConnectFailedException
(

需要几秒

,

需要进行搜索

)

3

使用的代理端口错误

,

两边不一致

:

发生在使用代理调用接口的时候

原因

:

存在通讯器

,

但是不存在相应的对象适配器

.

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

,

端口没有被启用引起的

,

无人监听该端口

)

4

使用的对象名字不正确

:

发生在使用代理调用接口的时候

原因

:

能够找到相应的对象适配器

,

但是该对象适配器中无法找到相应的对象

错误信息

:

抛出异常

: Ice::ObjectNotExistException
(

很快

)

5

对方程序没用启用

,

也就是服务器没有启用

:

发生在使用代理调用接口的时候

原因

:

根本就没有相应的通讯器存在

.

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

6

连接突然断开

(

比如对方因为段错误而程序停止

,

或者在连接过程中正常关闭

) :

发生在使用代理调用接口的时候

(

连接丢失

)

原因

:

已经建立连接的对方突然断开

错误信息

:

warning: connection exception:

TcpTransceiver.cpp:217:
Ice::ConnectionLostException:

connection lost: recv() returned
zero

local address = 10.0.0.4:10050

remote address = 10.0.0.200:33412

(

服务器端的错误

,

使用

createObjectAdapter()

创建对象适配器

)

7

服务器端没有指定

adapter

的端口和

ip,

仅仅随便给了一个名字

,

并使用该名字从配置文件中读取信息

:

启动服务器时没有问题正常

,

但是客户端无法连接

原因

:

对象适配器无效

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

8

启动服务器时

,

给定的

adapter

的名字和配置文件中使用的不一致

:

启动服务器时没有问题正常

,

但是客户端无法连接

(

无法从配置文件中获取所需要的信息

port



ip)

原因

:

对象适配器无效

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

9

配置文件中的名字和程序中给定的

adapter

名字一致

,

也就是说缺少

Endpoints,

作为后缀

.

启动服务器时没有问题正常

,

但是客户端无法连接

(

无法从配置文件中获取所需要的信息

port



ip)

原因

:

对象适配器无效

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

10

配置文件中的名字后缀

Endpoints

写错

,

比如

Endpoint.

启动服务器时没有问题正常

,

但是客户端无法连接

(

无法从配置文件中获取所需要的信息

port



ip)

原因

:

对象适配器无效

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

11

程序中给定的

adapter

名字多了后缀

Endpoints(

或者其他字符

,

甚至是

”.”).

启动服务器时没有问题正常

,

但是客户端无法连接

(

无法从配置文件中获取所需要的信息

port



ip)

原因

:

对象适配器无效

错误信息

:

抛出异常

: Ice::ConnectionRefusedException
(

很快

)

(

说明

:

也就是说配置文件中必须有

Endpoints

作为后缀

,

而在程序中给定

adapter

的名字是一定不能带该后缀

,

不然服务器无法正常工作

)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: