Axis2WebService(配置、发布、调用)(2012-10-0702:48:32)转载▼标签:it分类:工作准备工作1、下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip下载地址:、环境变量设置AXIS2_HOMEE:\research\axis2-1.5.4-bin\axis2-1.5.4JAVA_HOMEC:\ProgramFiles\Java\jdk1.6.0_213、axis2-1.5.4-war.zip解压,将压缩包内的axis2.war部署到%TOMCAT-HOME%/webapps下,启动tomcat,访问看是否正常。点击Service会进入Service列表页面,当前只有一个Version服务。、下载axis2-eclipse-codegen-plugin-1.5.4.zip,axis2-eclipse-service-plugin-1.5.4.zip解压后将plugins复制到�LIPSE_HOME%\plugins。://安装完插件后,IDE中选择new-other会看到下面界面如果安装Axis2插件之后,在eclipse中没有出现界面,就换一个eclipse版本在版本比较新的eclipse中,安装Axis插件,是把jar复制到�LIPSE_HOME%\dropins目录下,而不是plugins目录AXIS2发布WebServices一、工程文件1、新建Axis2Service1java工程。2、新建\Axis2Service1\src\ws\TestWs.javapackagews;publicclassTestWs{publicStringshowName(Stringname){returnname;}publicStringgetName(){returnAxis2ServiceSample;}}二、arr部署方式1、手动打包新建\Axis2Service1\deploy文件夹,将\Axis2Service1\bin下的class文件复制过来。新建\Axis2Service1\deploy\META-INF\services.xml文件AxisServicews.TestWsclass=org.apache.axis2.rpc.receivers.RPCMessageReceiver/class=org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver/生成aar包\Axis2Service1\deployjarcvfAxisService.aar.(注意带.号)2、插件打包IDE中选择New-other-Axis2ServiceArchiver,点击Next;ClassFileLocation:选择Axis2Service1\bin目录,点击Next;勾选SkipWSDL,点击Next;ServiceArchiver选择jar位置,如果没有jar包就直接点击Next;勾选Generatetheservicexmlautomatically自动生成XMLfile文件,点击Nextservicename,输入:AxisService,然后在classname中填写要发布的类(全路径),点击load。勾选Searchdeclaredmethodsonly。点击nextoutputFilelocation,输入:D:\;outputFileName,输入artiver文件的名称AxisService。点击finish。提示ServiceArchviegeneratedsuccessfully!注册表明,生成成功。3、发布AxisServiceAxisService.aar复制到%TOMCAT-HOME%/webapps/axis2/WEB-INF/services下。(不打aar包,\Axis2Service1\deploy下面复制过去也是可以)打开看到三、独立部署1、新建javawebproject工程。2、文件复制%TOMCAT-HOME%\webapps\axis2\WEB-INF\lib复制到\Axis2Service2\WebRoot\WEB-INF\lib下,并加入工程引用。%TOMCAT-HOME%\webapps\axis2\WEB-INF\conf复制到\Axis2Service2\WebRoot\WEB-INF\conf%TOMCAT-HOME%\webapps\axis2\WEB-INF\modules复制到\Axis2Service2\WebRoot\WEB-INF\modules3、web.xml代码如下:xsi=:schemaLocation=://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdAxisServletorg.apache.axis2.transport.http.AxisServlet1AxisServlet/services/*2、新建\Axis2Service2\src\ws\TestWs.javapackagews;publicclassTestWs{publicStringshowName(Stringname){returnname;}publicStringgetName(){returnAxis2ServiceSample;}}3、新建\Axis2Service2\WebRoot\WEB-INF\services目录。4、新建一个AxisService服务AxisService\META-INF\services.xmlAxisServicews.TestWsclass=org.apache.axis2.rpc.receivers.RPCMessageReceiver/class=org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver/启动tomcat后,访问看是否正常。AXIS2调用WebServices一、客户端stub文件生成1、脚本生成方式去AXIS2的解压目录下bin(%AXIS2_HOME%\bin\)下执行下面语句wsdl2java-uri参数指定了生成的Java类的包名-o参数指定了生成的一系列文件保存的根目录在stub\src\ws自动生成AxisServiceStub.java2、插件生成方式IDE中选择New-other-Axis2CodeGenerator,点击Next;勾选GenerateJavasourcecodefromaWSDLfile,点击Next;WSDLfilelocation,输入:点击Next;如果路径不对会提示:SpecifiedWSDLisinvalid!,Pleaseselectavalidated*.wsdl/*.xmlfileonpreviouspage.正确的话界面如下,点击next;指定输入路径,点击Next提示:Alloperationscompletedsuccessfully!生成成功。在D:\src\ws自动生成了stub一系列文件,其中ws是包名。上面2种方式生成的stub类有点不一样,脚本生成方式是单一文件,插件生成方式生成的一系列文件。二、客户端调用脚本生成方式为例子,插件生成的类似。1、新建java工程Axis2Client新建\Axis2Client\lib文件夹将%AXIS2_HOME%\lib\下的jar包复制到\Axis2Client\lib,并加入工程引用中将通过脚本生成的单一AxisServiceStub.java文件加入到src\ws下2、新建test.TestWs.java主要代码如下//初始化Sub类AxisServiceStubstub=newAxisServiceStub();//传递AxisServiceStub.ShowName对象,相关参数在这边赋值。AxisServiceStub.ShowNamecommand=newAxisServiceStub.ShowName();command.setName(Hello!);//取得返回值Stringname=stub.showName(command).get_return();System.out.println(name);调用成功后控制台输出:Hello!上面代码展示了如何从webservice中调用方法。