首页 > 代码库 > java中使用axis发布和调用webService
java中使用axis发布和调用webService
工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService。
需要的jar包:
发布webService:
package com.xzh.webservice; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class MyWebService { public String hello(String name) { System.out.println("hello:" + name); return "hello:" + name; } @WebMethod(exclude=true) public String hello2(String name){ System.out.println("hello2:" + name); return "hello2: "+name; } public static void main(String[] args) { /** * 参数1:服务的发布地址 参数2:服务的实现者 */ Endpoint.publish("http://localhost:8080/transcode", new MyWebService()); System.out.println("webservice start success"); } }
访问webService:
package com.xzh.webservice; 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.XMLType; public class MyWebClient { public static void main(String[] args) { try { // new 一个服务 Service sv = new Service(); // 创建一个call对象 Call call = (Call) sv.createCall(); // 设置要调用的接口地址 call.setTargetEndpointAddress("http://localhost:8080/transcode"); // 设置要调用的接口方法 call.setOperationName(new QName("http://webservice.xzh.com/", "hello")); // 设置参数,在设定参数时,不使用服务端定义的参数名,而是arg0~argN来定义 call.addParameter("arg0", XMLType.XSD_STRING, ParameterMode.IN); // 返回参数类型 call.setReturnType(XMLType.XSD_STRING); Object result = call.invoke(new Object[]{"jason"}); System.out.println(result); } catch (ServiceException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } }
日志截图:
java中使用axis发布和调用webService
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。