Java 简单webservice 数据传输/webservice入门教程 详细 axis入门

Java简单webservice 数据传输

一、Axis安装
1、到 http://ws.apache.org/Axis/网站下载Axis安装包 axis-bin.zip
2、解压缩安装包,将axis-bin\axis\webapps\下的Axis包拷贝到TOMCAT_HOME\webapps\下,以下约定Axis_HOME为该TOMCAT_HOME\webapps\axis目录
3、启动tomcat,访问http://localhost:8080/axis页面可连通则安装成功

二、服务器端编程
1.编写服务端程序Hello.java
public class Hello {
public String hello(String name) {
if (name == null){
name = "";
}
return "你好" + name + ",欢迎来到Web服务的世界!";
}
} 
2、将源码拷贝到Axis_HOME下,重命名为 Hello.jws
3、访问连接http://localhost:8080/axis/Hello.jws?wsdl,页面显示Axis自动生成的wsdl

三、编写访问服务的客户端 testHello.java
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class testHello {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/axis/Hello.jws?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setOperationName(new QName(endpoint, "hello"));
call.setTargetEndpointAddress(new URL(endpoint));
String ret = (String) call.invoke(new Object[] { "孟伟" });
System.out.println("返回的数据是:" + ret);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

四、小结
(1)[解决]Unable to find required classes (javax.activation.DataHandler
and javax.mail.internet.MimeMultipart). Attachment support is disabled
参见http://www.cppblog.com/wform/archive/2006/04/27/mail_activation_jar.html
主要就是下载这两个jar包,并拷贝到lib中
(2)[解读]testHello.java的call需要两个设置方法。
call.setOperationName内部的QName需要传入访问地址和访问方法;
call.setTargetEndpointAddress需要传入地址

五、在Eclipse开发Axis
1、新建一个dynamic web project,项目名称为test_axis
2、拷贝axis-bin解压后的jar包到WebContent/WEB-INF/lib目录下
3、拷贝axis-bin解压后的web.xml、user.lst到WebContent/WEB-INF目录下
4、拷贝server-config.wsdd模版到WebContent/WEB-INF目录下
5、新建Hello.java内容同第二部分Hello.jws源码,但放入com.mfanw包内
6、新建testHello.java内容同第三部分testHello.java源码,但放入com.mfanw包内
7、server-config.wsdd中增加Hello.java的配置项,如下




8、启动项目服务器,访问http://localhost:端口/test_axis/services
可见hello (wsdl) 点击可以访问hello,则表示配置正确。
9、运行testHello.java查看输出结果。注明:testHello.java可以在其他机器正常访问输出结果。

你可能感兴趣的:(java)