webservice例子了
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
一、编写DII(Dynamic Invocation Interface)方式web服务
1.编写服务端程序DIIService
public class DIIService {
public String getName(String name) {
System.out.println("=====DIIService=====");
return "The " + name + " return from the DIIService" ;
}
}
2、将源码拷贝到Axis_HOME下,重命名为 DIIService.jws
3、访问连接http://localhost:8080/Axis/DIIService.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 DIIClient.java
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
public class DIIClient {
public static void main(String[] args) throws ServiceException,
MalformedURLException, RemoteException {
String endpoint = "http://localhost:8090/axis/DIIService.jws";
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setOperationName(new QName(endpoint, "getName"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
// call.addParameter("param1", XMLType.XSD_STRING, ParameterMode.IN);
// call.setReturnType(XMLType.XSD_STRING);
String ret = (String) call.invoke(new Object[] { "zhangsan" });
System.out.println("return value is ==> " + ret);
}
}
二、编写Dynamic Proxy方式访问服务
1、编写部署服务端程序DPService
public class DPService {
public String getName(String name) {
System.out.println("=====DPService=====");
return "The " + name + " return from the DPService";
}
}
2、编写代理接口
import java.rmi.Remote;
public interface DPServiceInterface extends Remote {
public String getName(String name) throws java.rmi.RemoteException;
}
3、编写并执行客户端程序DPClient.java
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import java.net.URL;
import javax.xml.namespace.QName;
public class DPClient {
public static void main(String[] args) {
try {
String wsdlUrl = "http://localhost:8090/axis/DPService.jws?wsdl";
String nameSpaceUri = "http://localhost:8090/axis/DPService.jws";
String serviceName = "DPServiceService";
String portName = "DPService";
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service afService = serviceFactory.createService(new URL(wsdlUrl),
new QName(nameSpaceUri, serviceName));
DPServiceInterface proxy = (DPServiceInterface) afService
.getPort(new QName(nameSpaceUri, portName),
DPServiceInterface.class);
System.out.println("return value is " + proxy.getName("john"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
四、编写stubs方式web服务
1、
public class StubsService {
//转到AXIS目录下的WEB-INF子目录
//Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/StubsService.jws?wsdl
public String getName(String name) {
System.out.println("=====StubsService=====");
return "The " + name + " return from the StubsService";
}
}
2、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下.转到AXIS目录下的WEB-INF子目录执行Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/StubsService.jws?wsdl
执行后会在WEB-INF\localhost\axis\StubsService_jws生成
StubsService.java,StubsServiceService.java,StubsServiceServiceLocator.java,StubsServiceSoapBindingStub.java
3、编写并执行客户端程序
package localhost.axis.StubsService_jws;
public class Main {
public static void main(String[] args) throws Exception
{
StubsServiceService service = new StubsServiceServiceLocator();
StubsService stubs = service.getStubsService();
System.out.println("Response:"+stubs.getName("BeatBLOG"));
}
}
分享到:
相关推荐
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
而部署到服务器上的业务逻辑一般用webservice实现。开发webservice可以使用java、也可以使用c#。由于国内大多数计算机安装的是Windows系列操作系统,所以使用c#开发webservice不仅开发效率高,而且部署和维护很方便...
调用服务器的webservice接口,实现从Android上传图片到服务器,然后从服务器下载图片到Android客户端 从Android端用io流读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数...
.NET Webservice Studio是一种以交互方式调用Web方法的工具。 用户可以提供WSDL端点。 单击按钮获取工具获取WSDL,从WSDL生成.NET代理并显示可用方法列表。 用户可以选择任何方法并提供所需的输入参数。 在单击...
webservice
springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用
首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写...
springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口
webservice远程调用,返回String数据并生成xml文件到本地工程,在通过SAX解析器把数据解析出来。这是webservice应用的一个简单的例子。根据该例子的思想,可以实现很多功能了。例如把client工程的sayHello方法改为...
这是本人写的一个基于WebService的Java项目,采用Spring框架,实现了对远程数据的访问,教你怎样配置和访问WebService服务器,让你不再为写数据访问接口而烦恼。下载解压后直接导入MyEclipse中,启动Tomcat服务器,...
c++调用webservice(包括静态和动态以及webservice源码)
WebService教程+实例+代码提示功能WebService实例.rar
本实例包含php调用webservice及myeclipse创建webservice实例全部代码,简单易懂,运行绝对没有问题,文件齐全,导入即可运行,适合webservice初学者
java webservice实例教程ppt,共15讲,java webservice实例教程适合对象:想要学习SOA面向服务编程思想,学习Webservice技术,希望学习系统间通信设计的Java设计开发人员。java webservice实例教程适合于各个层次的...
通过idea实现webservice
.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子
java android 调用webservice,java android 调用webservice