`

web service 发布

阅读更多

1.使用elicpse工具,建立一个MyWebService项目:

创建包package pack.java.web.service , 创建类WebServiceWSDD,

package pack.java.web.service;

public class WebServiceWSDD {
 private int result;
 private String name;
 
 public String hello(String a,int b){
  System.out.println("this is my hello method.");
  System.out.println("a="+a);
  System.out.println("b="+b);
  result = b++;
  System.out.println("result="+this.result);
  return a+b;
 }
 
 public int add(int a,int b){
  System.out.println("this is my add method.");
  return a+b;
 }
}

 把这个包和类生成的.class文件 拷贝到F:\apache-tomcat-6.0.20\webapps\axis\WEB-INF \Classes\目录中.

 

 

2.编辑webservice deploy.wsdd文件,然后拷贝到F:\apache-tomcat-6.0.20\webapps\axis\WEB-INF ,

deploye.wsdd 的文件内容如下:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="WebServiceWSDD" provider="java:RPC">
   <parameter name="className" value="pack.java.web.service.WebServiceWSDD" />
   <parameter name="allowedMethods" value="*"/>
   <parameter name="scope" value="request"/>
  </service>
</deployment>

 

 

 

<service name="WebServiceWSDD" provider="java:RPC">

简要说明以下的作用,name 是web service的名称. java:PRC,则是指定的是服务的类型. 主要包括4中服务类型,PRC,Document,Message,Wrapped.几种.

 

<parameter name="className" value="pack.java.web.service.WebServiceWSDD" />

这个很好理解,就是 包和类的名称.

 

<parameter name="allowedMethods" value="*"/>
name所有方法名,也可以指定某一个方法,  当前的配置,允许调用所有public的方法,. value 当然也可以自己指定,

 

<parameter name="scope" value="request"/>
请求范围: request,session,application。

 

运行cmd命令 在dos窗口中输入:

F:\apache-tomcat-6.0.20\webapps\axis\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:9999/axis/services/WebServiceWSDD deploy.wsdd

 

 

1.首先进入到你的F:\apache-tomcat-6.0.20\webapps\axis\WEB-INF 目录,

2.输入 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:9999/axis/services/WebServiceWSDD  命令,

 

注意的地方是,在运行命令之前,确保tomcat服务正常启动成功.

 

 

运行结果:表示发布成功.
Processing file deploy.wsdd
<Admin>Done processing</Admin>

 

3.编辑客户端Client代码:

package pack.java.web.service.client;

import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class MyWebServiceClient {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String url="http://localhost:9999/axis/services/WebServiceWSDD";
  Service service=new Service();
  try {
   Call call=(Call) service.createCall();
   call.setTargetEndpointAddress(url);
   
   //调用hello 方法;
   //call.setOperationName(new QName(url,"hello"));
   //调用add  方法;
   call.setOperationName(new QName(url,"add"));
   try {
    //调用web Service上面的hello方法,并且传递两个参数,返回其结果.
    //String result=(String) call.invoke(new Object[]{"my webService",123});
    //System.out.println(result);
    //调用add 方法,并且传递参数,返回结果.
    int num =(int)(Integer)call.invoke(new Object[]{1,2});
    System.out.println("add :"+num);
   } catch (RemoteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  } catch (ServiceException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

  

运行结果:

add :3.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics