您好,欢迎访问三七文档
中国移动互联网研发培训专家例子创建一个服务代理\清单5.EmployeeSearchMethodSignature清单6.EmployeeSearchCallbacksuccess清单7.EmployeeSearchCallbackfailure清单8.方法定义的success和failure清单9.sendAsyncRequest的示例调用测试iPhoneApp结束语中国移动互联网研发培训专家本节通过集成开发人员提供的服务定义信息(稍后讨论)描述创建Objective-C业务对象的一般算法。通过服务接口(例如,OrganizationInterface)识别绑定到HTTP、您希望在代理客户中包含的JSON(例如,employeeSearch)。对于步骤1中的每一个方法,识别输入BO类型和输出BO类型(例如,SearchCriteriaBO和PageOfEmployeeBO)。中国移动互联网研发培训专家对于步骤2中识别的每一个BO:◦创建一个与扩展BaseBO的名称相同的接口(例如,如果服务接口中的BO称作EmployeeBO,那么就创建一个名为EmployeeBO的接口)。◦在接口文件中,为每个BO属性定义getters和setters。◦在实现文件中,按以下方式定义getters:对于Objective-C中简单的属性,比如NSString,返回该值本身。参见清单1中的例子。中国移动互联网研发培训专家-(NSString*)getFirstName{return[attributesvalueForKey:@”firstName”];}对于复杂类型,返回该类的一个新BO,该类由给定键的映射初始化(清单2)。中国移动互联网研发培训专家-(EmployeeBO*)getEmployeeBO{return[[EmployeeBOalloc]initWithDictionary:[attributesobjectForKey:@”employeeBO”]];}对于简单类型的数组,返回该数组。对于复杂类型的数组,循环每个对象,并创建指定类型的BO。向每个BO添加一个数组并返回该数组。◦在实现文件中,按以下方式定义setters:对于简单类型,您需要将值转化为一个String,然后在属性字典中设置该值(清单3)。中国移动互联网研发培训专家-(void)setFirstName:(NSString*)firstName{[attributessetValue:firstNameforKey:@”firstName”];}对于复杂类型,设置键的值为输入BO的属性(清单4)。中国移动互联网研发培训专家-(void)setEmployeeBO:(EmployeeBO*)employeeBO{[attributessetValue:[employeeBOattributes]forKey:@”employeeBO”];}对于复杂类型的一个数组,循环每个对象并将每个对象的属性添加到新数组中。之后,将键的值设置为建立的数组。中国移动互联网研发培训专家OrganizationInterface包含employeeSearch方法,该方法将SearchCriteriaBO作为输入,并返回一个PageOfEmployeeBO作为输出。查看PageOfEmployeeBO,可以发现它包含另一个名为EmployeeBO的复杂类型。因此,我们有三个BOs要创建。为加速整个流程,这些BOs已经被创建。我们只需将它们添加到已有项目即可。中国移动互联网研发培训专家右键单击iPhoneApp中的BusinessObjects组并选择Add-ExistingFiles。添加EmployeeBO.h、EmployeeBO.m、PageOfEmployeeBO.h、PageOfEmployeeBO.m、SearchCriteriaBO.h和SearchCriteriaBO.m。打开任何一个BO,看一下getters和setters是如何按照以上描述定义的。花点时间查看一下所有BOs。中国移动互联网研发培训专家客户创建中的最后一步是创建服务代理。该代理本质上是一个实现服务接口的Objective-C类。本节将描述创建代理的一般算法。创建一个与WebSphereIntegrationDeveloper中的服务接口文件名称相同的接口,比如OrganizationInterface。该接口必须扩展BaseService.h。在接口中,为上面“创建方法签名BOs”一节识别的每个方法定义方法签名(清单5)。中国移动互联网研发培训专家-(void)employeeSearch:(SearchCriteriaBO*)serachCriteriaBOdelegate:(id)del;我们注意到,每个方法的返回类型为空。delegate是实现success和failure回调方法的类的一个指针。在我们的例子中是iPhoneAppViewController(清单6)。中国移动互联网研发培训专家-(void)employeeSearch_CallbackSuccess:(PageOfEmployeeBO*)pageOfEmployeeBO{...}中国移动互联网研发培训专家-(void)employeeSearch_CallbackFailure:(NSError*)error{...}添加以下方法定义,如清单8所示。中国移动互联网研发培训专家-(void)success:(NSDictionary*)returnBOofMethod:(NSString*)mName;-(void)failure:(NSError*)errorofMethod:(NSString*)mName;为接口创建一个实现类:每个方法仅使用合适的参数调用BaseService的sendAsyncRequest(清单9)。中国移动互联网研发培训专家-(void)employeeSearch:(SearchCriteriaBO*)searchCriteriaBOdelegate:(id)del{callback=del;[supersendAsyncRequest:SERVICE_ENDPOINTtoMethod:EMPLOYEE_SEARCHbusinessObject:searchCriteriaBOdelegate:self];}◦定义success:ofMethod方法来处理在delegate上对正确的CallbackSuccess方法的调用。定义failure:ofMethod方法来处理delegate上对正确的CallbackFailure方法的调用。中国移动互联网研发培训专家OrganizationInterface包含一个employeeSearch方法,您必须为该方法提供一个代理。这个代理类已被创建,您只需将其添加到iPhoneApp即可。右键单击Services组并选择Add-ExistingFiles。选择添加OrganizationInterface.h和OrganizationInterface.m。打开OrganizationInterface.m并注意employeeSearch的实现。该方法利用一个常量SERVICE_ENDPOINT。您需要更改该常量的值使其匹配正在运行OrganizationInterface服务的WebSphereProcessServer实例。例如,在我们的开发环境中,我们将SERVICE_ENDPOINT设置为。中国移动互联网研发培训专家构建iPhoneApp并确保其无误。花点时间浏览一下OrganizationInterface.m代码,特别是success:ofMethod和failure:ofMethod方法,以了解iPhoneAppViewController中的emloyeeSearch_CallbackSuccess和employeeSearch_CallbackFailure方法如何得到调用。中国移动互联网研发培训专家在本节中,我们将运行iPhone仿真器上的iPhoneApp。您将了解搜索全名(比如JohnDoe)时如何异步调用后端服务并向iPhoneApp返回结果。打开XCode中的DebuggerConsole并单击BuildandGo(图13)。中国移动互联网研发培训专家在搜索栏中输入JohnDoe(图14)。图14.搜索JohnDoe中国移动互联网研发培训专家确保WebSphereIntegrationDeveloper中的WebSphereProcessServer本地测试环境在运行中且是同步的(图15)。图15.服务器准备中国移动互联网研发培训专家在IntegrationDeveloper中清除控制台输出。返回到iPhone仿真器并单击Search。注意ProcessServer控制台中的日志活动(图16)。图16.WebSphereProcessServer控制台输出中国移动互联网研发培训专家现在可以看到,有一列员工匹配您在iPhone仿真器上搜索的全名(图17)。图17.搜索结果中国移动互联网研发培训专家单击一个姓名,可以看到,EmployeeBO细节在用户接口
本文标题:iPhone开发教程之使用 WebSphere Process Server V6.2 为 iPho
链接地址:https://www.777doc.com/doc-2877748 .html