加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Eclipse插件开发指南

Eclipse插件开发指南.pdf

Eclipse插件开发指南

ilovejsj
2010-03-20 0人阅读 举报 0 0 暂无简介

简介:本文档为《Eclipse插件开发指南pdf》,可适用于IT/计算机领域

EclipseEclipseEclipseEclipse插件开发指南插件开发指南插件开发指南插件开发指南目目目目录录录录第第第第章章章章Eclipse概述概述概述概述Eclipse简介简介简介简介Eclipse的历史的历史的历史的历史Eclipse的优势与技术特征的优势与技术特征的优势与技术特征的优势与技术特征安装安装安装安装Eclipse安装的软硬件环境要求安装的软硬件环境要求安装的软硬件环境要求安装的软硬件环境要求安装安装安装安装EclipseEclipse插件的安装方法插件的安装方法插件的安装方法插件的安装方法第三方插件第三方插件第三方插件第三方插件SWTDeginer的下载与安装的下载与安装的下载与安装的下载与安装Eclipse中文包的安装中文包的安装中文包的安装中文包的安装(以以以以Eclipse为例为例为例为例)第第第第章章章章Eclipse的使用的使用的使用的使用Eclipse常用技巧和设置常用技巧和设置常用技巧和设置常用技巧和设置创建一个新的项目创建一个新的项目创建一个新的项目创建一个新的项目运行项目运行项目运行项目运行项目代码格式化及注释的设置代码格式化及注释的设置代码格式化及注释的设置代码格式化及注释的设置使用使用使用使用Eclipse强大的重构功能强大的重构功能强大的重构功能强大的重构功能任务任务任务任务(TODO)的设定的设定的设定的设定程序代码的追踪程序代码的追踪程序代码的追踪程序代码的追踪在代码中搜索关键字在代码中搜索关键字在代码中搜索关键字在代码中搜索关键字打开类型层次结构打开类型层次结构打开类型层次结构打开类型层次结构调试器的使用调试器的使用调试器的使用调试器的使用Eclipse中中中中CVS的使用的使用的使用的使用CVS简介简介简介简介CVS服务器端的安装服务器端的安装服务器端的安装服务器端的安装、、、、配置与使用配置与使用配置与使用配置与使用安装安装安装安装CVS服务器服务器服务器服务器新建一个新建一个新建一个新建一个CVS项目项目项目项目CVS在服务器端的常用操作在服务器端的常用操作在服务器端的常用操作在服务器端的常用操作CVS客户端的配置与使用客户端的配置与使用客户端的配置与使用客户端的配置与使用连接的设置连接的设置连接的设置连接的设置导入导入导入导入、、、、导出项目导出项目导出项目导出项目文件提交与更新的方法文件提交与更新的方法文件提交与更新的方法文件提交与更新的方法提交与更新文件提交与更新文件提交与更新文件提交与更新文件当文件冲突时的解决办法当文件冲突时的解决办法当文件冲突时的解决办法当文件冲突时的解决办法其它使用注意事项其它使用注意事项其它使用注意事项其它使用注意事项Eclipse中中中中JUnit的使用的使用的使用的使用JUnit简介简介简介简介JUnit的的的的HelloWorld在实际项目中使用在实际项目中使用在实际项目中使用在实际项目中使用JUnit的注意事项的注意事项的注意事项的注意事项第第第第章章章章实战实战实战实战SWTSWT概述概述概述概述SWT简介简介简介简介SWT起步起步起步起步::::用用用用SWTDeginer写一个写一个写一个写一个HelloWorld使用使用使用使用SWTDeginer的界面开发流程的界面开发流程的界面开发流程的界面开发流程4444使用使用使用使用SWTDeginer进行界面开发的注意事项进行界面开发的注意事项进行界面开发的注意事项进行界面开发的注意事项SWTJFace中的事件模型中的事件模型中的事件模型中的事件模型事件的两种常用写法事件的两种常用写法事件的两种常用写法事件的两种常用写法常用事件介绍常用事件介绍常用事件介绍常用事件介绍编写事件代码的注意事项编写事件代码的注意事项编写事件代码的注意事项编写事件代码的注意事项SWT常用控件类常用控件类常用控件类常用控件类按钮按钮按钮按钮、、、、复选框复选框复选框复选框、、、、单选框单选框单选框单选框((((Button类类类类))))标签标签标签标签((((Label类类类类))))文文文文本框本框本框本框((((Text类类类类))))下拉框下拉框下拉框下拉框((((Combo类类类类))))列表框列表框列表框列表框((((List类类类类))))一个多控件组合应用的综合实例一个多控件组合应用的综合实例一个多控件组合应用的综合实例一个多控件组合应用的综合实例容器类容器类容器类容器类面板面板面板面板((((Composite类类类类))))分组框分组框分组框分组框((((Group类类类类))))属性页属性页属性页属性页((((TabFolder类类类类))))分割栏分割栏分割栏分割栏((((SashForm类类类类))))一个综合实例一个综合实例一个综合实例一个综合实例布局管理器布局管理器布局管理器布局管理器填充式填充式填充式填充式((((FillLayout类类类类))))行列式行列式行列式行列式((((RowLayout类类类类))))网格式网格式网格式网格式((((GridLayout类类类类))))堆栈式堆栈式堆栈式堆栈式((((StackLayout类类类类))))表格式表格式表格式表格式((((FormLayout类类类类))))一个复杂布局的综合实例一个复杂布局的综合实例一个复杂布局的综合实例一个复杂布局的综合实例其它其它其它其它SWT控件控件控件控件工具栏工具栏工具栏工具栏((((ToolBar类类类类、、、、ToolItem类类类类))))动态工具栏动态工具栏动态工具栏动态工具栏((((CoolBar类类类类、、、、CoolItem类类类类))))进度条进度条进度条进度条((((ProgressBar类类类类))))刻度条刻度条刻度条刻度条((((Scale类类类类))))滑动条滑动条滑动条滑动条((((Slider类类类类))))画布画布画布画布((((Canvas类类类类))))一个综合完整的应用程序一个综合完整的应用程序一个综合完整的应用程序一个综合完整的应用程序((((Application))))实例实例实例实例第第第第章章章章JFace常用控件常用控件常用控件常用控件::::实例步步深入实例步步深入实例步步深入实例步步深入表格表格表格表格((((TableViewer类类类类))))表格简介表格简介表格简介表格简介前期准备前期准备前期准备前期准备::::实例所用数据模型说明实例所用数据模型说明实例所用数据模型说明实例所用数据模型说明让数据在表格中显示出来让数据在表格中显示出来让数据在表格中显示出来让数据在表格中显示出来使用内容器使用内容器使用内容器使用内容器((((ITreeContentProvider接口接口接口接口))))和标签器和标签器和标签器和标签器((((ITableLabelProvider接口接口接口接口))))加上右键快捷菜单加上右键快捷菜单加上右键快捷菜单加上右键快捷菜单(Action类类类类、、、、IMenuManager接口接口接口接口)实现点击表头排序的功能实现点击表头排序的功能实现点击表头排序的功能实现点击表头排序的功能((((ViewerSorter类类类类))))加工具加工具加工具加工具栏栏栏栏::::实现翻页实现翻页实现翻页实现翻页、、、、删除删除删除删除、、、、刷新功能刷新功能刷新功能刷新功能((((ToolBarManager类类类类))))创建一个带复选框的表格创建一个带复选框的表格创建一个带复选框的表格创建一个带复选框的表格((((CheckboxTableViewer类类类类))))表格的其它使用技巧表格的其它使用技巧表格的其它使用技巧表格的其它使用技巧表格使用的注意事项表格使用的注意事项表格使用的注意事项表格使用的注意事项树树树树((((TreeViewer类类类类):):):):用实例步步深入用实例步步深入用实例步步深入用实例步步深入树简介树简介树简介树简介前期准备前期准备前期准备前期准备::::实例所用数据模型说明实例所用数据模型说明实例所用数据模型说明实例所用数据模型说明让数据在树中显示出来让数据在树中显示出来让数据在树中显示出来让数据在树中显示出来给树加上内容器和标签器给树加上内容器和标签器给树加上内容器和标签器给树加上内容器和标签器加上右键快捷菜单并用加上右键快捷菜单并用加上右键快捷菜单并用加上右键快捷菜单并用ActionGroup类来集中管理类来集中管理类来集中管理类来集中管理如何捕捉树中不如何捕捉树中不如何捕捉树中不如何捕捉树中不同结点的值同结点的值同结点的值同结点的值创建一个带复选框的树创建一个带复选框的树创建一个带复选框的树创建一个带复选框的树树的其它使用技巧树的其它使用技巧树的其它使用技巧树的其它使用技巧树使用应注意事项树使用应注意事项树使用应注意事项树使用应注意事项对话框对话框对话框对话框((((Dialog类类类类):):):):用实例步步深入用实例步步深入用实例步步深入用实例步步深入对话框简介对话框简介对话框简介对话框简介对话框的对话框的对话框的对话框的HelloWorld给对话框设置初始值给对话框设置初始值给对话框设置初始值给对话框设置初始值取得对话框中的数据取得对话框中的数据取得对话框中的数据取得对话框中的数据自定义对话框的按钮自定义对话框的按钮自定义对话框的按钮自定义对话框的按钮带提示栏的对话框带提示栏的对话框带提示栏的对话框带提示栏的对话框((((TitleAreaDialog类类类类))))对话框使用的注意事项对话框使用的注意事项对话框使用的注意事项对话框使用的注意事项向导式对话框向导式对话框向导式对话框向导式对话框((((WizardDialog类类类类))))向向向向导式对话框简介导式对话框简介导式对话框简介导式对话框简介向导式对话框实例向导式对话框实例向导式对话框实例向导式对话框实例向导式对话框使用的注意事项向导式对话框使用的注意事项向导式对话框使用的注意事项向导式对话框使用的注意事项进度条对话框进度条对话框进度条对话框进度条对话框((((ProgressMonitorDialog类类类类))))进度条对话框简介进度条对话框简介进度条对话框简介进度条对话框简介进度条对话框实例进度条对话框实例进度条对话框实例进度条对话框实例进度条对话框使用的注意事项进度条对话框使用的注意事项进度条对话框使用的注意事项进度条对话框使用的注意事项自制界面控件自制界面控件自制界面控件自制界面控件绘图包绘图包绘图包绘图包DrawD简介简介简介简介一个一个一个一个DrawD的简单的实例的简单的实例的简单的实例的简单的实例跟我一步步来写个实用的界面控件跟我一步步来写个实用的界面控件跟我一步步来写个实用的界面控件跟我一步步来写个实用的界面控件第第第第章章章章Eclipse插件开发插件开发插件开发插件开发Eclipse插件开发概述插件开发概述插件开发概述插件开发概述Eclipse插件开发简介插件开发简介插件开发简介插件开发简介Eclipse插件开发的优势和不足插件开发的优势和不足插件开发的优势和不足插件开发的优势和不足插件的插件的插件的插件的HelloWorld使用向导一步步创建使用向导一步步创建使用向导一步步创建使用向导一步步创建以空白项目为基础手工创建以空白项目为基础手工创建以空白项目为基础手工创建以空白项目为基础手工创建构建插件项目时的注意事项构建插件项目时的注意事项构建插件项目时的注意事项构建插件项目时的注意事项常用插件扩展点实战常用插件扩展点实战常用插件扩展点实战常用插件扩展点实战(pluginxml)扩展点简介扩展点简介扩展点简介扩展点简介在在在在Eclipse中加入一个透视图中加入一个透视图中加入一个透视图中加入一个透视图往透视图中加入视图往透视图中加入视图往透视图中加入视图往透视图中加入视图(views)如何在两个视图之间的实现事件监听如何在两个视图之间的实现事件监听如何在两个视图之间的实现事件监听如何在两个视图之间的实现事件监听主菜单主菜单主菜单主菜单(actionSets)编编编编辑器辑器辑器辑器(editors)首选项和属性首选项和属性首选项和属性首选项和属性(preferencePages)帮助帮助帮助帮助(contexts)编写扩展点的注意事项编写扩展点的注意事项编写扩展点的注意事项编写扩展点的注意事项Eclipse插件开发项目的国际化插件开发项目的国际化插件开发项目的国际化插件开发项目的国际化国际化简介国际化简介国际化简介国际化简介创建一个国际化项目创建一个国际化项目创建一个国际化项目创建一个国际化项目使用使用使用使用Eclipse的向导功能进行国际化的向导功能进行国际化的向导功能进行国际化的向导功能进行国际化国际化的注意事项国际化的注意事项国际化的注意事项国际化的注意事项为项目制作帮助为项目制作帮助为项目制作帮助为项目制作帮助帮助简介帮助简介帮助简介帮助简介项目帮助的制作实例项目帮助的制作实例项目帮助的制作实例项目帮助的制作实例帮助中的高级特性的使用帮助中的高级特性的使用帮助中的高级特性的使用帮助中的高级特性的使用项目打包与发行项目打包与发行项目打包与发行项目打包与发行插件项目的打包与发行插件项目的打包与发行插件项目的打包与发行插件项目的打包与发行应用程序项目的打包与发行应用程序项目的打包与发行应用程序项目的打包与发行应用程序项目的打包与发行第第第第章章章章报表报表报表报表::::用用用用POI包与包与包与包与MSOffice交互交互交互交互POI概述概述概述概述POI简介简介简介简介POI的下载与安装的下载与安装的下载与安装的下载与安装将数据导出成将数据导出成将数据导出成将数据导出成Excel的实例的实例的实例的实例更多高级的用法更多高级的用法更多高级的用法更多高级的用法设置页眉页脚设置页眉页脚设置页眉页脚设置页眉页脚浮动文字框浮动文字框浮动文字框浮动文字框冻结和分割窗冻结和分割窗冻结和分割窗冻结和分割窗在表中画图在表中画图在表中画图在表中画图打印的相关设置打印的相关设置打印的相关设置打印的相关设置第第第第章章章章项目实战项目实战项目实战项目实战::::一个实际一个实际一个实际一个实际Eclipse插件项目插件项目插件项目插件项目项目概述项目概述项目概述项目概述项目简介项目简介项目简介项目简介项目的总体构思项目的总体构思项目的总体构思项目的总体构思项目前期项目前期项目前期项目前期项目的需求分析项目的需求分析项目的需求分析项目的需求分析项目的技术选型项目的技术选型项目的技术选型项目的技术选型项目过程控制的管理方案项目过程控制的管理方案项目过程控制的管理方案项目过程控制的管理方案项目的数据建模项目的数据建模项目的数据建模项目的数据建模::::基于面向对象的系统分析基于面向对象的系统分析基于面向对象的系统分析基于面向对象的系统分析项目中期项目中期项目中期项目中期::::代码实现代码实现代码实现代码实现项目起步项目起步项目起步项目起步创建一个空白项目创建一个空白项目创建一个空白项目创建一个空白项目创建透视图并加入视图创建透视图并加入视图创建透视图并加入视图创建透视图并加入视图主界面构建主界面构建主界面构建主界面构建::::导航栏及编辑器导航栏及编辑器导航栏及编辑器导航栏及编辑器(Editor)本模块的设计及数据模型本模块的设计及数据模型本模块的设计及数据模型本模块的设计及数据模型主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读用户管理及权限管理模块用户管理及权限管理模块用户管理及权限管理模块用户管理及权限管理模块权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型权限管理的设计及数据模型主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读消息通知模块消息通知模块消息通知模块消息通知模块消息通知的设计及数据模型消息通知的设计及数据模型消息通知的设计及数据模型消息通知的设计及数据模型主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读系统日志模块系统日志模块系统日志模块系统日志模块系统日志的设计及数据模型系统日志的设计及数据模型系统日志的设计及数据模型系统日志的设计及数据模型主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读报表模块报表模块报表模块报表模块系统日志的设计及数据模型系统日志的设计及数据模型系统日志的设计及数据模型系统日志的设计及数据模型主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读主体代码的具体实现与程序导读项目的后期完善项目的后期完善项目的后期完善项目的后期完善创建系统的首选项设置创建系统的首选项设置创建系统的首选项设置创建系统的首选项设置创建帮助创建帮助创建帮助创建帮助对整个项目进行国际化对整个项目进行国际化对整个项目进行国际化对整个项目进行国际化((((英英英英、、、、中中中中、、、、繁繁繁繁))))打包和发行打包和发行打包和发行打包和发行第第第第篇篇篇篇SOAPSOAPSOAPSOAP的的的的HelloWordHelloWordHelloWordHelloWord实例实例实例实例前言前言前言前言公司开会并分给我一个任务:写一个程序从福建移动的BOSS系统取出一些相关数据。我得到的资料只有一个“福建移动BOSS与业务增值平台接口规范V(新)doc”这个规范页数不多一下就浏览完了。但之后依然不知所措感觉到了一条河边河前有一条大道(就是这份文档)能让我直达目的地但却找不到过河的桥。这份文档只给出了数据的格式编码规范但没有告诉你用什么技术怎么去取这些数据甚至连一个数据格式的XML例子文件也没有。里面只有这样几句话:“交易消息(包括请求和应答)是以XML格式表达的包括两个部分:MessageHeader(消息头)与ServiceContent(交易业务内容)。”“接口协议使用HTTP协议落地方为发起方提供访问的URL发起方使用HTTPPOST方法发送请求报文并得到应答报文发起方作为落地方的HTTP客户端落地方作为发起方的HTTP服务器。因此各个参与方需要同时实现HTTP客户端以及服务器的功能。”这里面有两个关键字:XML、HTTP再加上老大说用SOAP我想这个BOSS系统和外界的信息交换技术也是基于SOAP实现的吧。于是我上网搜索了一些资料始有此文。SOAPSOAPSOAPSOAP简介简介简介简介企业系统内部各个系统之间的信息交换一直是一个难题在过去有DCOM、CORBA等解决方案但都不是很完美不是太复杂就是有缺陷。现在则较流行SOAP(全称:SimpleObjectAccessProtocol简单对象访问协议)。SOAP和WebService和ApacheSOAP这些新概念(应该也不算新了)常搞的人头昏。我是这么理解的Webservice(也称Web服务)是一个大的概念范畴它表现了一种设计思想。SOAP是Webservice的一个重要组成部份如果把Webservice比喻成Internet那么SOAP就可以比喻成TCPIP。SOAP是一种协议而非具体产品微软也有自己的SOAP实现产品而Java下比较流行的SOAP实现产品就是ApacheSOAP不过它的下一个版本已经改名成AXIS了。SOAP是通过XML文件来做为数据转输的的载体走HTTP的线路一般企业的防火墙都开放HTTP的端口所以SOAP不会被防火墙阻断这算是SOAP的一个优点。信息转输的双方都要求支持SOAP服务因为XML文件发过去则对方需要有SOAP服务来接收然后对方会有反馈也是XML文件这时你也需要安装SOAP服务来接收如下图所示:XML文件XML文件转输到SOAP中SOAP服务还会有一些内部处理它具体的处理过程就暂时不管这么多了下面先来写一个HelloWorld实例感受一下先。下载下载下载下载一共要下载四个软件包它们都是开源免费的。其中前两个是Apache的后两个是SUN网站如下所示:�SOAP:http:apachefreelampcomwssoapversion�Xerces:http:xmlapacheorgdistxercesj�JavaMail:http:javasuncomproductsjavamaildownloadsindexhtml�JAF:http:javasuncomproductsjavabeansglasgowjafhtml具体怎么下载就不说了说说要注意的事项:尽量用IE的“目标另存为”的来下载有些用FlashGet是无法下载的。下载之前先不要关闭网页。下载后的版本是:JAFJavaMailSOAPXerces如下图所示。下载后将它们分别解压缩。其中soap包有些怪异第一次解压得到的是一个没有扩展名的文件soapbin要将这个文件加一个ZIP或JAR后缀名然后再解压一次。安装及编写安装及编写安装及编写安装及编写HelloWorldHelloWorldHelloWorldHelloWorld实例实例实例实例((((CVSCVSCVSCVS::::VVVV版版版版))))本机安装环境:WindowsXPJDKTomcatSOAP复制复制复制复制JARJARJARJAR文件文件文件文件、安装JDK和Tomcat。这样的文章网上遍地都是本文不再细述。它们的安装也很简单:安装JDK基本是一直单击“下一步”装完后我没有设置任何环境变量就也可以用了Tomcat也基本是单击“下一步”就能安装完成。、分别在这四个包的解压目录中找到:xercesjar、soapjar、mailjar、activationjar(jaf的)将它们复制到Tomcat的“Tomcatcommonlib”目录下这个目录是Tomcat的默认包目录在这个目录中的所有包在Tomcat启动时都会被自动加载。、将c:jdklib路径下的toolsjar也复制到Tomcat的“Tomcatcommonlib”目录下。注:在显示SOAP的管理页面需要用到这个包设置classpath指向c:jdklibtoolsjar是没有用的我也从来没有将toolsjar包加入到classpath中也没有设置JDKHOME也没有将c:jdkbin加入到path路径中基本我安装JDK时什么都没有做。、将soap解压目录的webapps目录下的soapwar文件复制到Tomcat的“Tomcatwebapps”目录下这个目录是Tomcat的WEB应用所在目录soapwar是SOAP的网站如下图所示:、重启Tomcat服务。这时Tomcat会将“Tomcatcommonlib”目录下新加入的包加载到内存中。编写编写编写编写SOAPSOAPSOAPSOAP程序程序程序程序编写SOAP程序分三大步:�编写服务器端的程序此程序和普通程序没有什么区别�配置SOAP将相关请求指向到服务器端的程序�编写客户端的程序客户端的程序带有很深的SOAP的烙印里面会用到很多SOAP包的类和方法。由于我习惯用Eclipse来写程序以后项目也是用Eclipse来开发所以这里的SOAP程序也是用Eclipse来写的。当然你也可以用记事本+JDK也编写SOAP程序。、配置mysoap项目的库引用。将下图所示的四个JAR包加入到项目的库引用中。关于库引用的设置这里是用“用户库”的方式具体操作可以参阅这篇文章:http:blogcsdnnetglchengangarchiveaspx。在完成库引用之后Eclipse编写的SOAP程序时才能使用soap相关的类。、创建一个新的java项目mysoap在项目里创建一个包“cncomchengangsoaphello”然后在包中创建两个Java文件如下图所示:()HelloWorldServicejava是服务器端的程序其代码如下。这个程序中只有一个方法和其他Java程序没有什么差别该方法也也很简单就是返回一个HelloWorld字符串packagecncomchengangsoaphellopublicclassHelloWorldService{publicStringgetMessage(){return"HelloWorld!"}}()HelloWorldClientjava是客户端的访问程序其代码如下:packagecncomchengangsoaphelloimportjavanetURLimportorgapachesoapConstantsimportorgapachesoapFaultimportorgapachesoaprpcCallimportorgapachesoaprpcParameterimportorgapachesoaprpcResponsepublicclassHelloWorldClient{publicstaticvoidmain(Stringargs)throwsException{StringendPoint="http:localhost:soapservletrpcrouter"Callcall=newCall()创建一个RPCCallcallsetTargetObjectURI("urn:HelloWorldService")远程的服务名callsetMethodName("getMessage")访问方法callsetEncodingStyleURI(ConstantsNSURISOAPENC)设置编码风格URLurl=newURL(endPoint)SOAP服务的网址开始发送RPC请求并返回服务器端的应答Responseresp=callinvoke(url,"")检查应答报文中是否有错有错就打印出错信息没错就打印到正确的返回值HelloWorldif(respgeneratedFault()){Faultfault=respgetFault()Systemoutprintln("TheFollowingErrorOccured:")Systemoutprintln("FaultCode="faultgetFaultCode())Systemoutprintln("FaultString="faultgetFaultString())}else{Parameterresult=respgetReturnValue()Systemoutprintln(resultgetValue())}}}这个程序的用到了很多SOAP的类。注意:如果是两台电脑的话那么HelloWorldServicejava和HelloWorldClientjava是分别独立安装在两台电脑上的HelloWorldClient中的程序代码就是通过SOAP服务来调用HelloWorldService中的getMessage方法。、将HelloWorldServicejava的编译文件HelloWorldServiceclass复制到Tomcat中操作步骤如下:()在“导航器”视图的bin目录下找到HelloWorldServiceclass文件。()在“Tomcatcommonclasses”路径下新建一个“cncomchengangsoaphello”目录结构这个目录结构要和HelloWorldServiceclass的所在包名一样的。然后将HelloWorldServiceclass文件复制到此目录下如下图所示。注:还有一种方法是比较普遍使用的就是将所有服务器端的class文件打成一个JAR包然后将这个JAR包放在“Tomcatcommonlib”目录下。、重启Tomcat。这一步不要忘记了只有重启Tomcat才能将common下新加入的JAR包或class文件加载到内存中。发布发布发布发布SOAPSOAPSOAPSOAP服务器端的程序服务器端的程序服务器端的程序服务器端的程序::::HelloWorldServicejavaHelloWorldServicejavaHelloWorldServicejavaHelloWorldServicejava有多种方法可让HelloWorldService这个程序注册到SOAP服务中本文介绍的是编写XML文件来注册SOAP服务的方法()HelleWorldxml文件。此文件可以放置到任何地方它和HelloWorldServicejava的位置没有必然的关系。<xmlversion=""><isd:servicexmlns:isd="http:xmlapacheorgxmlsoapdeployment"id="urn:HelloWorldService"><isd:providertype="java"scope="Request"methods="getMessage"><isd:javaclass="cncomchengangsoaphelloHelloWorldService"static="false"><isd:provider><isd:service>代码说明:�urn:HelloWorldService是服务名它要求系统唯一。这里是取成和类名相同你也可以取其他名称。�getMessage是提供的服务方法也就是类HelloWorldService的方法名�<isd:javaclass=要求填入全类名(包名+类名)()设置两个环境变量。之所以要设置这两个变量是因为接下来的发布命令的需要。TOMCATHOME=E:ProgramFilesApacheSoftwareFoundationTomcatclasspath=TOMCATHOMEcommonlibsoapjarTOMCATHOMEcommonlibmailjarTOMCATHOMEcommonlibactivationjarTOMCATHOMEcommonlibxercesjar()进入DOS窗口并定位到HelloWorldxml所在的目录然后运行如下命令(一行)。如果执行正确则应该没有任何显示如果命令错误则会输出错误信息。javaorgapachesoapserverServiceManagerClienthttp::soapservletrpcrouterdeployHelloWorldxml另外再介绍其他两个常用的命令:显示已经注册的SOAP服务:javaorgapachesoapserverServiceManagerClienthttp::soapservletrpcrouterlist取消发布:javaorgapachesoapserverServiceManagerClienthttp::soapservletrpcrouterundelpoy"urn:HelloWorldService"命令的执行过程如下:(我把xml文件放在e:soaptest目录下该目录就这一个文件)你也可以进入SOAP网站的去看看是否注册成功了。运行客户端运行客户端运行客户端运行客户端在Eclipse中将HelloWorldClientjava象一个普通Java应用程序那样运行得到如下结果:可见客户端程序HelloWorldClient通过SOAP服务调用了HelloWorldService的getMessage方法并得到了一个返回结果。在这里我们并没有编写传输的XML文件(前面的XML是注册服务用的不是一回事)这是因为SOAP包已经为我们自动完成了生成XML并传输到服务器的过程。带参数的方法调用带参数的方法调用带参数的方法调用带参数的方法调用((((CVSCVSCVSCVS::::VVVV版版版版))))上面的HelloWorld的实例中getMessage方法是没有参数的这一节我们来加一个参数。()将HelloWorldServicejava修改如下:packagecncomchengangsoaphellopublicclassHelloWorldService{publicStringgetMessage(){return"HelloWorld!"}publicStringgetMessage(Stringstr){return"HelloWorld!"str}publicStringgetMessage(Stringstr,Stringstr){return"HelloWorld!"str""str}}()将HelloWorldServiceclass复制到Tomcat的“Tomcatcommonclassescncomchengangsoaphello”目录下覆盖原来的HelloWorldServiceclass。()重启Tomcat服务。()修改HelloWorldClient程序如下(红字部份是新加的):packagecncomchengangsoaphelloimportjavanetURLimportjavautilVectorimportorgapachesoapConstantsimportorgapachesoapFaultimportorgapachesoaprpcCallimportorgapachesoaprpcParameterimportorgapachesoaprpcResponsepublicclassHelloWorldClient{publicstaticvoidmain(Stringargs)throwsException{StringendPoint="http:localhost:soapservletrpcrouter"Callcall=newCall()创建一个RPCCallcallsetTargetObjectURI("urn:HelloWorldService")远程的服务名callsetMethodName("getMessage")访问方法callsetEncodingStyleURI(ConstantsNSURISOAPENC)设置编码风格Vectorparams=newVector()Parameterp=newParameter("name",Stringclass,"陈刚",)Parameterp=newParameter("name",Stringclass,"陈勇",)paramsaddElement(p)paramsaddElement(p)callsetParams(params)URLurl=newURL(endPoint)SOAP服务的网址开始发送RPC请求并返回服务器端的应答Responseresp=callinvoke(url,"")检查应答报文中是否有错有错就打印出错信息没错就打印到正确的返回值HelloWorldif(respgeneratedFault()){Faultfault=respgetFault()Systemoutprintln("TheFollowingErrorOccured:")Systemoutprintln("FaultCode="faultgetFaultCode())Systemoutprintln("FaultString="faultgetFaultString())}else{Parameterresult=respgetReturnValue()Systemoutprintln(resultgetValue())}}}()在Eclipse中运行HelloWorldClient得到如下效果参考资料参考资料参考资料参考资料http:blogcsdnnetcaiyiarchiveaspxhttp:blogcsdnnetcaiyiarchiveaspxhttp:blogcsdnnetcaiyiarchiveaspxhttp:blogcsdnnetmadfoolarchiveaspxEclipse插件开发简介插件的概念读者应该很熟悉象MP播放软件WINAMP的皮肤插件、WindowsMediaPlayer的众多的外观插件、音效插件等等。但如果你以为插件只能做成为原软件的边角料那是可以理解的因为你还没有看到

用户评价(1)

  • 10.69.3.32 很搞笑,目录看起来像回事,可内容独缺插件开发的第五章,耍人呢

    2013-04-18 06:35:46

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/27

Eclipse插件开发指南

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利