图3.2.2.1[4]
选择资源属性的信息提供者以及查询方式,点击Finish,如图3.2.2.1[5]。
图3.2.2.1[5]
至此,一个网格服务工程创建完毕。在Eclipse的各个工作区显示如图3.2.2.1[6]所示。
图3.2.2.1[6]
3.2.2 编写服务定义文件
在此部分中,主要是对要封装为服务的资源属性以及各种操作进行定义,并指明了收集资源属性信息的聚集源类型等相关信息。其具体过程是在文件Database.java中实现的,大致内容如下所示:
package org.globus.grid.database;
import de.fb12.gdt.GridService; import de.fb12.gdt.GridAttribute; import de.fb12.gdt.GridMethod;
import com.kuiyi.examples.database.*;
@GridService (name = “Database”, namespace = “http://globus.org/grid/Database”, targetPackage = “org.globus.grid.database”, serviceStyle = “SSTYLE_SIMPLE”, resourceStyle = “RSTYLE_GLOBUS”, operationProvider = “GetRPProvider, GetMRPProvider, QueryRPProvider”, loadOnStartup = true, filePersistentResource = false, hotLoadable = false, securityDesc = “[]”, clientSecurityDesc = “[]”, resourceSecurityDesc = “[]”) public @GridAttribute(mds_agg_type=“Query”,mds_renew=“300”,mds_term_time=“2008-08-08T00:00:00”,mds_query_type=“GetMultipleResourceProperties”,mds_query_poll=“100000”) private String ResourceType; //资源的属性
public String getResourceType() { //属性的set()和get()方法 return } public ResourceType = resourceType; } @GridMethod String[] result = null; DataSearch q = new DataSearch(); //引用业务逻辑类 result = q.SearchExpFromMaterial(type); return result; } @GridMethod String[] result = null; DataSearch q = new DataSearch(); //引用业务逻辑类 result = q.SearchExpFromSC(type, dimension); return result; } @GridMethod String[] result = null; DataSearch q = new DataSearch(); //引用业务逻辑类 result = q.SearchExpFromSCAndMaterial(materialtype, sctype, scdimension); return result; } } |
Database.java中可以只定义变量(资源属性)和方法(对外接口),具体的业务逻辑可以在生成的服务代码中添加。
编辑完Database.java文件后,点击保存按钮。保存成功后,GDT会自动根据编写的java文件生成服务代码、wsdl文件以及各种配置文件。在Eclipse的左侧工作区DatabaseService工程的目录如图3.2.2.2所示:
图3.2.2.2 工程目录
3.3 资源属性初始化及对外接口实现
在此部分,要做的工作有两项:一方面是在网格服务的资源文件DatabaseResource.java中初始化上一部分所定义属性;另一方面是在网格服务文件DatabaseService.java中实现了对外接口。
首先,对所定义属性的初始化方法如下所示:
/** * * */ public { this.propSet = new SimpleResourcePropertySet(RESOURCE_PROPERTIES); try { ResourceTypeRP = new SimpleResourceProperty(RP_RESOURCETYPE); this.ResourceTypeRP.add(new Object()); this.propSet.add(ResourceTypeRP); } catch (Exception e) { throw } // begin-user-code this.setResourceType(“DatabaseResource”); //将属性ResourceType初始化为DatabaseResource // end-user-code } |
其次,对外接口的实现方法如下所示:
/** * * */ public FindexpfrommaterialResponse findexpfrommaterial(Findexpfrommaterial complexType) throws RemoteException { FindexpfrommaterialResponse response = new FindexpfrommaterialResponse();
// begin-user-code String[] result = null; //对外接口1的初始化 DataSearch q = new DataSearch(); result = q.SearchExpFromMaterial(complexType.getType()); response.setFindexpfrommaterialReturn(result); // end-user-code return response; }
/** * * */ public FindexpfromscResponse findexpfromsc(Findexpfromsc complexType) throws RemoteException { FindexpfromscResponse response = new FindexpfromscResponse();
// begin-user-code String[] result = null; //对外接口2的初始化 DataSearch q = new DataSearch(); result = q.SearchExpFromSC(complexType.getType(), complexType.getDimension()); response.setFindexpfromscReturn(result); // end-user-code return response; } /** * * */ public FindexpfromscandmaterialResponse findexpfromscandmaterial(Findexpfromscandmaterial complexType) throws RemoteException { FindexpfromscandmaterialResponse response = new FindexpfromscandmaterialResponse();
// begin-user-code String[] result = null; //对外接口3的初始化 DataSearch q = new DataSearch(); result = q.SearchExpFromSCAndMaterial(complexType.getMaterialtype(), complexType.getSctype(), complexType.getScdimension()); response.setFindexpfromscandmaterialReturn(result); // end-user-code return response; } |
3.4 编译生成存根类及gar包
以上所有的操作都完成后,可以说网格服务已经开发完成了。接下来,还需要将生成把DatabaseService服务部署到GT4容器中去所需要的gar包。具体过程如下:
1、点击图标,编译生成存根类。在Console工作区显示如下结果时,表示编译成功。
此时,在Eclipse左侧的区域此项目的目录如图3.2.4[1]所示:
图3.2.4[1] 工程目录
2、点击图标,生成部署时需要用的gar包。在Console工作区显示如
以下文章点击率最高
Loading…