1、开发webservice 服务器端
1.1建立一个javabean
package com.sinosoft.bean;
public class User
{
private String name;
private String pwd;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPwd()
{
return pwd;
}
public void setPwd(String pwd)
{
this.pwd = pwd;
}
}
这是一个很普通的javabean到时用于webservice参数
1.2写webservcie方法
package com.sinosoft.webservice;
import com.sinosoft.bean.User;
public class EntityAgres
{
public User mYUser(User user)
{
User u=new User();
u.setName(user.getName());
u.setPwd(u.getPwd());
return u;
}
}
//这个方法是webserivce 传递的参数和返回的参数都是javabean形式
1.3、些方法是传递的接收的都是普通的参数形式
package com.sinosoft.webservice;
public class HelloService
{
/** *//**
* 不带参数的函数
*
* @return 返回Hello字符串
*/
public String sayHello()
{
return "Hello";
}
/** *//**
* 带参数的函数
*
* @param name
* 名称
* @return 返回加上名称的欢迎词
*/
public String sayHelloToPerson(String name)
{
if (name == null || name.equals(""))
{
name = "nobody";
}
return "Hello " + name;
}
}
2、发布webserivce
2.1、新建一个文件夹在里面新建deploy.wsdd文件和deploywebservice.bat批处理文件,
deploy.wsdd内容如下
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloServices" provider="java:RPC">
<parameter name="className" value="com.sinosoft.webservice.HelloService"/>
<parameter name="allowedMethods" value="*"/>
</service>
<service name="HelloServicesEntity" provider="java:RPC">
<parameter name="className" value="com.sinosoft.webservice.EntityAgres"/>
<parameter name="allowedMethods" value="*"/>
<beanMapping qname="myNS:User" xmlns:myNS="urn:AnalyzUser" languageSpecificType="java:com.sinosoft.bean.User"/>
</service>
</deployment>
2.2 deploywebservice.bat 文件内容如下
java -cp axis-ant.jar;axis-schema.jar;axis.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;wsdl4j-1.5.1.jar;xmlsec-1.3.0.jar org.apache.axis.client.AdminClient -lhttp://localhost:8080/ws/services/AdminService deploy.wsdd pause
3、客户端
package com.sinosoft.test;
}
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
public class TString {
private static final String HELLO_SERVICE_ENDPOINT = "http://127.0.0.1:8080/ws/services/HelloServices?wsdl";
/**
* @param args
*/
public static void main(String[] args) {
//callSayHello();
TBean();
// TODO Auto-generated method stub
}
public static void callSayHello() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(
HELLO_SERVICE_ENDPOINT));
//下面名字查询的http://121:8080/WebServiceTest/services/HelloServices?wsdl文件里有
call.setOperationName(new QName("http://webservice.sinosoft.com",
"sayHello"));
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
//远程调用发布的方法
String ret = (String) call.invoke(new Object[] {});
System.out.println("The return value is:" + ret);
return;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
public static void TBean() {
Service service = new Service();
Call call;
try {
call = (Call) service.createCall();
QName qn = new QName("urn:AnalyzUser","User");
call.registerTypeMapping(User.class,qn,
new BeanSerializerFactory(User.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(User.class, qn));
call.setTargetEndpointAddress("http://localhost:8080/ws/services/HelloServicesEntity?wsdl");
call.setOperationName(new QName("EntityAgresService","mYUser"));
call.addParameter("user",qn, ParameterMode.IN);
call.setReturnClass(User.class);
User u=new User();
u.setName("11111");
u.setPwd("11111");
User s= (User) call.invoke(new Object[]{u});
System.err.print(s.getName());
}catch(Exception e) {
System.out.println( "Error : " + e.toString());
}
}