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
* 名称
*/
public String sayHelloToPerson(String name)
{
if (name == null || name.equals(""))
{
name = "nobody";
}
return "Hello " + name;
}
}
2、发布webserivce
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>
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));
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.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());
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。