`
fxly0401
  • 浏览: 144320 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MyEclipase在原有web工程中进行axis2接口开发

阅读更多
由于axis2高版本存在种种未知问题,本文引用的是axis2.1.4的jar包。

开发服务端web service服务
1. 创建web工程,在com.*.webservice包下创建接口实现类
public class Calculate {
	public int sum(int num1, int num2) {
		return num1 + num2;
	}
}

2. 下载axis2-1.4.1-war.zip,链接:
http://ishare.iask.sina.com.cn/f/17037679.html?from=like
解压到文件夹axis2-1.4.1,将lib下的所有jar包拷贝到工程lib目录下,并导入工程

3. 将文件夹axis2-1.4.1下的axis2.war包再次解压,将解压目录下的conf、modules和services文件夹拷贝到web工程的WEB-INF目录下,清空services目录下的内容,创建/myservices(此名称随便)/META-INF/目录,并在此目录下创建services.xml文件,具体路径:WEB-INF/services/myservices/META-INF/services.xml
内容如下:
<service name="AxisService"><!-- web service名称-->
	<description>Axis Service Description</description><!-- 接口描述-->
	<parameter name="ServiceClass">com.sinosure.webservice.Calculate</parameter><!-- 接口实现类-->
	<operation name="sum"><!-- 接口名称-->
		<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
	</operation>
</service>

4. 修改web.xml文件,内容如下:
……
……
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
		<servlet-name>AxisServlet</servlet-name>
		<servlet-class>
			org.apache.axis2.transport.http.AxisServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
</web-app>

5. 运行工程,查看接口描述文件wsdl:http://localhost:8080/###(工程名)/services/AxisService(接口名)?wsdl

在myeclipse中安装axis2客户端代码生成插件Codegen
6. 下载jar包,链接:
http://download.csdn.net/download/Awx/2826319

7. 下载的压缩包里包含Axis2_Codegen_Wizard_1.4.0和Axis2_Service_Archiver_1.3.0这两个文件夹,将其导入%MyEclipse%\Genuitec\MyEclipse 8.x Latest\dropins\目录下,重启MyEclipse,点击new,即可看到下图
[img]

[/img]

8. 重新运行web工程,启动完成后,点击“new”,点击“Axis2 Code Generator”,选择通过wsdl文件产生客户端代码,可选择将axis2的jar一起打包进去,选择生成目录,finish,完成。

测试接口
9. 创建测试java工程,将axis2的jar包导入,将生成的客户端代码文件AxisServiceCallbackHandler.java和AxisServiceStub.java拷贝到java工程中,创建Test类,代码如下:
public static void main(String[] args) {
		try {
			AxisServiceStub stub = new AxisServiceStub("http://localhost:8080/(工程名)/services/AxisService?wsdl");
			AxisServiceStub.Sum sum = new AxisServiceStub.Sum();
			sum.setNum1(1);
			sum.setNum2(2);
			System.out.println(stub.sum(sum).get_return());
		} catch (AxisFault e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}


测试完成。

  • 大小: 73 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics