用wsdd来开发web services

用wsdd(服务部署描述语言),主要是编写java文件和编写wsdd文件。
1。编写java文件,最好是定义在某一个包下,否则便以后直接放到/WEB-INF/classes下,有时会出错,原因是在用deploy.wsdd部署时映射不对。然后直接包对应的包放到/WEB-INF/classes中。HelloWorldG.java文件:
    package test.gaolong;
public class HelloWorldG{
  public String sayHelloG(String name){
         return "HelloG "+name;
         }
      }
2。编写wsdd文件,根据wsdd文件的规范编写相关文档。例如:(deploy.wsdd)
   <--命名空间-->
  <-服务名-->
    <--对应的主类--->
    <---注册相应的方法,如果只有一个方法,可以直接注册方法名--->
    <--定义用户认证--->
    <-用户认证的描述文件-->
  
  
 

 


3。部署wsdd文件:打开命令口,切换到deploy.wsdd目录下,运行java org.apache.axis.client.AdminClient即可完成部署。
      这儿可能出错,正确的显示:
D:/bea/user_projects/domains/mydomain/applications/axis/WEB-INF/classes>java org.apache.axis.client.AdminClient  -p 7001  deploy.wsdd
Processing file deploy.wsdd
Done processing
      当在wsdl中使用deploy.wsdd来部署时,对于服务器是要打开的,而且当服务器的端口不是8080时,采用要求java org.apache.axis.client.AdminClient -p deploy.wsdd 来指定并进行服务部署。
4。打开server-config.wsdd会发现增加了语句描述:
 
  
  
 

 
 
 
 

其实直接到该文件中增加该内容,不必用org.apache.axis.client.AdminClient来部署描述。
打开IE,可以在http://127.0.0.1:7001/axis/servlet/AxisServlet看到该服务部署到服务列表上。
5。编写测试application客户端,其代码如下:
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.namespace.QName;

public class ServiceClient{
 public static void main(String[] args) throws Exception{
  String endpoint="http://127.0.0.1:7003/axis/services/HelloWorldG";
  String name="gaong1";
  Service service=new Service();
  Call call=(Call) service.createCall();//回调服务
  call.setUsername("gaolong1");
  call.setPassword("8001");//用户认证
  call.setTargetEndpointAddress(new java.net.URL(endpoint));
 // call.setOperationName("sayHelloG");
  call.setOperationName(new QName("http://gaolong.test", "sayHelloG"));//设置指定的命名空间,根据wsdl文件来决定
  call.addParameter("name",XMLType.XSD_STRING,ParameterMode.IN);
  call.setReturnType(XMLType.XSD_STRING);//XMLType.XSD_STRING);
  String ret=(String)call.invoke(new Object[] {name});
  System.out.println(ret);
 }
}
 运行之后有关的显示。
6。通过tcpmonitor来监听的soap消息如下:
请求soap:


     
              gaolong1
     


回应soap:


 
      HelloG gaolong1
     

 

你可能感兴趣的:(Web,Services技术)