Portal Webservices编写简单指南.docx
Portlet+WebServices编写简单指南byshootsoftShootSoftChina:ShootSOftnet本文包含以下内容:1 .起步11.1 环境搭建11.2 导入Portlet工程11.3 部署Helk)WoHdPOrtlet12 .创立自己的PortaI33 .参加WebServices34 .如何打包45 .可能出现的部署错误提示51 .起步1.1 环境搭建开发工具:MyEclipse5.5/6.0完整版效劳器:PhnoLI.4完整版下载地址::apache.mirror.Dhpchina/portals/DIUto/BINARIES%E1.4/DlUto-1.1.4-bundle.zip同时还要下载Pluto的官方例子HelloWorldPortlet:Wiki.aDachc.org/DortaIsPlutoPIU.IEXamDIePOrdel注意:你的WebSerViCeS必须已经可以正常访问才可以。本文将不涉及到WebSerViCeS编写问题。只会阐述如何通过MyEclipse自带的XFire来访问WebServices。1.2 导入POrtIet工程首先需要导入官方的HelloWorldPortlet到Eclipse里面来为一个工程。操作步骤如下:1) 解压缩HelloWorldPortlet.zip到一个文件夹,比方c:HelloWorldPortlet2) 在Eclipse的ProjectExplorer里单击鼠标右键,选择ImportKMyEclipse6.0需要在子菜单里再选IImPoru)3) 选择ExistingProjectsintoWorkspace)4) 浏览到c:HelloWorldPortlet(也有可能是c:HelloWorldPortletHelloWorldPortlet),在Projects列表内可以看到HelloWorklPorUet,选中,再选中列表下方的ICOPyProjectsintoWorkSPace,点击Finish|按钮。5) HelloWorldPortIet已经成功导入。1.3 HelloWorIdPortIet1)官方的例子中已经包含了一个打包好的HelloworldPortlel.War文件。建议删除自己打包一次!否那么以后自己编写的POrUet打包会出现问题。2)在工程中的build.xml上单击鼠标右键选择RunAsAntBuild。如果出现错误提示:BUILDFAILEDD:shootsoftworkspaceHelloWorldPortletbuild.xml:109:ThefolioWingerroroccurredWhiIeexecutingthisline:java.lang.NociassDefFoundError:orgapachexml/serialize/XMLSeriaIizer这时候需要下载一个补丁包:Jmiors.24-7-把压缩包内的4个jar文件拷贝到HelloWorldPortlet目录的Iib目录下,比方我的是:D:shootsoftworkspaceHelloWorldPortletlib在Eclipse里面的ProjeclEXPlorer里面的HelloWorldPortIet工程上单击鼠标右键。首先选择Refersh刷新一下这个工程。然后再选择工程的Properties。在弹出的配置窗口中选择IJavaBuildPath,切换到Libraries页卡,点击第一个按钮AddJARs,在HeHoWOrldPOrllei工程的Iib目录下可以看到刚刚拷贝过来的四个jar文件(如果看不到,关闭属性窗口,刷新一下工程即可),将其选中,点击OK按钮。然后再次执行build.xml就不会出错了。3)启动PlUto效劳器(双击binsta11up.bat即可)。访问如下:IoCalhoSI:8080/manager/html/输入用户名:tomcal密码:tomcal4)在页面下方的IWARfiIetOdePIoy中点击浏览按钮,选择刚刚打包好的War文件,点击Deploy按钮,稍微等待片刻,就可以在上方的4pp"caf2,s列表中看到我们部署成功的HelloWorldPortlet了。ApplicationsPathDisplayName/WelcometoTomcatGP6PlatformHelloWorldPortletGP6PlatformClient/HelloWorIdPortIet/balancerTomcatSimpleLoadBalancerExampTerviCcAACrfc-crACCI5) Helk)WrokIPOnlel部署成功后可以看一下这个POrue3访问如下:loCaIhOSt:8080/DlUtO/portal如果需要登录请输入用户名:tOmCal密码:tomcal6)访问PlutoAdmin页,在最下方的PortletApplications的下拉列表里就可以看到刚刚部署的HelloWorldPortIet,依次选择/HelloWorkiPorueUHelloWorldPortlel,然后在PortalPages选择一个页面,比方IAboUlAPaehePlUto,然后点击【AddPortlel按钮。!/HelloWorIdPortIetHelloWorldPortletAddPortlet7)接下来访问AboutApachePluto就可以看到刚刚部署成功的HelloWorldPortlel了。HelloWorldPortletHelloWorld!2 .创立自己的Portal因为Portal打包步骤有点稍微复杂,所以我们直接在HelloWorldPortlet工程上动手术修改即可。1)在Helk)WOrklPOrUet工程上单击鼠标右键,依次选择RefaciorRename,然后输入新的工程名称,比方:GP6PlalformClien02)新建包:edu.pku.group6.protal<>在此包下新建一个名称为EHOenSlPonIeI的类。类的内容可以完全参照HelloWorldPortlet.3)翻开GP6PlatformClientsrcmainWeb叩p/WEB-INF目录下的portlet.xmlo将HelloWorldPortlet相关信息全部改成EHoenstPortleto4)再次打包发布即可。5)如果想编写复杂一点的PortleI,可以参考::baidu/s?tn=searchesdg&ie=gb2312&bs=POrtal&sr=&z=&cl=3&k8&wd=POrdet&ct=O推荐一个Portal资料的论坛:DOrtaIfan/要注意:如果调用外部jsp文件的话,jsp文件中需要声明portlet标签库:<?tagliburi=:/java.sun/portlet'*prefix=portlet',;>表单的提交地址应当为:<portlet:actionURL>如果是想链接到自身页面,可以这样处理<portlet:actionURLportletMode=,<PortletMode.VIEW.toString()>"var=,url,><portlet:actionURL><ahref=,<url>',>Back<a><br/>3 .参加WebServices新建包:edu.pku.group6.client在此包上单击鼠标右键,新建一个访问WebSerViCeS的客户端,具体操作是在包上单击鼠标右键,选择NewIolhers,在文木框内输入ICliem,就可以看到WebServiceClient的项,选中,点击Next。客户端选项设定如下:注意::/localhost:8080/GP6Platfbrm/services/EHonestService?wsdl是我的WebService的wsdl文件的访问路径。依次Nexl,最后就可以得到WebSerViCe的客户端了。有了客户端就可以在Portlet中参加访问WebService的代码了。在此具体代码请参考我给出的例如代码。因为那局部不是我要讲的重点。4 .如何打包生成了可以访问WebSerViCeS的客户端之后,此时工程会自动引入三个类库:XFire1.2CoreLibrariesXFire1.2ClientLibrariesXFire1.2JAXB2ClientLibraries如果你再次运行build.xml那么可能会出错。提示一些XFire的包不存在,这是因为以上三个包并没有放在Iib目录下,而是外部引用。这时候需要我们手动将这三个包剔除,然后翻开MyEclipse安装目录的myeclipseeclipsepluginscom.genuitec.eclipse.ws.xfire_5.5.0daUi1.2lib目录,然后把所有的jar包拷贝到工程Iib目录下。使用类似1.3节中使用过的方法将这而包引入。再次运行build.xml就不会出错了。5 .可能出现的部署错误提示因为官方的例子是使用Maven来进行部署操作的。Eclipse的maven插件安装视频教程如下:Jm2ediDse.codehaus.orgInStaHingMaVen2.0DIUginforEdiDsehml因为我安装后总是提示那个脚本出错,但是部署可以手动解决,所以没有深入研究。