客户数据模型(CDM)
客户端数据模型用于保存所有Teamcenter业务模型对象(ModelObject)。
该数据存储是服务操作返回的所有数据的累积。由于不同的服务操作返回相同对象实例(由UID标识)的副本,该存储中的该对象的单个实例将被更新。
只有当客户端应用程序进行显式调用以删除数据或服务器使用DeleteObjectEvent标记对象时,才会从该存储区删除对象。
ModelObject (com.teamcenter.soa.client.model)
这是存储在CDM中的对象的基本java类
该对象是TC服务器对象的客户端表示
对于松散类型的CDM,这个类用于表示任何TC服务器对象
对于强类型CMD,这个类是TC服务器对象的基类
Property(com.teamcenter.soa.client.model)
属性接口表示一个CMD对象上的单个属性。
通常,只有使用松散类型CDM的客户端应用程序才会使用这个接口。
强类型CDM将在ModelObject扩展的特定getXXX方法后面隐藏属性。
每个TC SOA服务客户端程序必须包含以下构建块
(都来自com.teamcenter.soa.client包)
CredentialManager
允许用户提供用户名和密码
CredentialManager只是一个接口。
实现接口的自定义类必须被实现(例如。通过在控制台上请求用户名和密码,如我们的程序中所示)
在HelloTeamcenter中,AppXCredentialManager是CredentialManager的实现
连接
使用指定的协议(HTTP、IIOP、TCCS)建立到指定服务器的连接
这个类通常只是实例化和进一步使用。
连接在AppXSession类中实例化,并在HelloTeamcenter程序执行过程中进一步使用
ModelManager
包装清洁发展机制
当创建Connection对象时,ModelManager会自动创建。
它存储ModelObject实例
提供向对象上发生的各种事件注册自定义监听器的可能性。
ModelEventListener
监听模型对象中的更改
例如,localObjectChange方法在加载的对象发生改变时被调用(作为调用某些服务操作的结果)。
类似地,当加载的对象被删除时,将调用localObjectDeleted。
AppXModelEventListener实现了ModelEventListener(在控制台显示事件)
PartialErrorListener
监听在调用服务操作时发生的部分错误。
这在日志记录中非常有用。
否则,对服务操作的调用可能会在调用操作的代码中本地处理部分错误。
AppXPartialErrorListener实现了PartialErrorListener(向控制台显示错误)
ExceptionHandler
处理InternalServerException类型的异常
ConnectionException表示服务器关闭
ProtocolException通常是由于程序代码中的错误——错误的HTTP报头,编组)
CanceledOperationException通常来自于登录操作
AppXExceptionHandler实现ExceptionHandler
对于ConnectionException,它询问用户是否想重试最后一次服务调用
对于其他异常,它将向控制台显示错误消息并重新抛出RuntimeException,这将导致程序HelloTeamcenter程序退出
调用SOA服务操作需要以下典型步骤。
1)获取服务实例
每个服务类(例如SessionService)都提供了一个静态方法来获取单例
2)准备操作的输入
输入的准备可能很简单,也可能相当复杂。
有些操作接受单个字符串,其他操作接受包含数组的结构体。
3)调用服务操作
调用操作通常不需要try-catch块,因为错误通常存储在ServiceData中。
因此,捕获异常的唯一地方是ExceptionHandler,它处理低级别的问题(例如服务器暂时关闭等)。
4)处理结果(检查部分错误或对结果做一些事情)
操作的通常结果是一个包含实际结果(例如String, ModelObject)的结构,以及ServiceData对象的实例。ServiceData对象还包含一个已创建、更新和删除的对象列表。