Andy  
一个快乐的码农,专注于NET平台技术(WPF/WCF/EF....)

Net做客户端,调用Java开发的Axis2 WebService

1. 打开Eclipse新建一个工程DBws,然后再src文件夹添加类db,保存生产db.class文件

 1 public class db {
 2      private static List<String> mNameList = new ArrayList<String>();
 3         
 4         public void AddUser(String name){
 5             mNameList.add(name);
 6         }
 7         
 8         public void RemoveUser(String name){
 9             for(int i = 0 ; i < mNameList.size();i++){
10                 if(name == mNameList.get(i)){
11                     mNameList.remove(i);
12                 }
13             }
14         }
15         
16         public String GetUser(){
17             int cnt = mNameList.size();
18             String s = "";
19             for( int i = 0 ; i < cnt ; i++ )
20             {
21                 s+= mNameList.get(i);
22             }
23             return s;
24         }
25 }


2. 通过Eclipse将编写好的db.class发布成db.aar文件,通过Axis2 Service Archiver发布(这里需要下载两个用于Eclipse中发布axis2的插件,参见axis2官方网站)

3. 将生成的db.aar文件配置到Tomcat,置于路径:"你安装的路径"\Apache Software Foundation\Tomcat 7.0\webapps\axis2\WEB-INF\services下

4.然后可以通过浏览器输入http://localhost:8080/axis2/services/listServices 查看下服务

5. 新建一个NET工程,添加服务引用,这里通过获取wsdl,例如本例:http://localhost:8080/axis2/services/BDws?wsdl

6.NET客户端添加三个按钮,分别用于添加,移除,列出用户名称

 1   private void btnInvoke_Click(object sender, RoutedEventArgs e) {
 2             //ServiceReference1.wsPortTypeClient client = new ServiceReference1.wsPortTypeClient("wsHttpSoap12Endpoint");
 3             //string strName = string.Empty;
 4            
 5             //strName = client.SayHello("Andy");
 6             //MessageBox.Show(strName);
 7             if (client != null)
 8                 client.RemoveUser("andy");
 9             
10         }
11         private ServiceReference2.BDwsPortTypeClient client = null;
12         private void Button_Click(object sender, RoutedEventArgs e) {
13             client = new ServiceReference2.BDwsPortTypeClient("BDwsHttpSoap11Endpoint");
14             
15             client.AddUser("andy");
16             client.AddUser("eangel");
17             client.AddUser("mrkrcl");
18         }
19 
20         private void Button_Click_1(object sender, RoutedEventArgs e) {
21             if (client != null) {
22                 txt.Text = client.GetUser();
23             }
24 
25         }

7. 一个简单的C#调用AXIS2 Webservice例子完成,这里只是一个简单的演示,没有涉及太多的基础概念知识,在NET客户端调用时候设置需要注意的就是采用的

soap版本是1.1还是1.2

 

posted on 2013-01-08 00:02  mrkrcl  阅读(744)  评论(0)    收藏  举报