java调用webservicejava 怎样调用本地webservice

java调用webservice  时间:2021-06-02  阅读:()

java 如何实现webservice 怎么调用接口

一、利用jdk?web服务api实现,这里使用基于SOAP?message的Web服务   ①.首先建立一个Web?services?EndPoint:package?Hello;  import?javax.jws.WebService;  import?javax.jws.WebMethod;  import?javax.xml.ws.Endpoint;   @WebService  public?class?Hello?{   @WebMethod  public?String?hello(String?name)?{  return?"Hello,?"?+?name?+?" ";  }   public?static?void?main(String[]?args)?{   //?create?and?publish?an?endpoint   Hello?hello?=?new?Hello(); Endpoint?endpoint?=?Endpoint.publish(" ,?hello);  }  }  ②.使用apt编译Hello.java(例:apt?-d?[存放编译后的文件目录]?Hello.java?)?, 会生成jaws目录  ③.使用java?Hello.Hello运行,然后将浏览器指向 就会出现下列显示  ④.使用wsimport生成客户端使用如下:   wsimport?-p?.?-keep? 这时,会在当前目录中生成如下文件:  ⑤.客户端程序: 1?class?HelloClient{ 2?public?static?void?main(String?args[])?{ 3?HelloService?service?=?new?HelloService(); 4?Hello?helloProxy?=?service.getHelloPort(); 5?String?hello?=?helloProxy.hello("你好"); 6?System.out.println(hello); 7?} 8?}以上方法还稍显繁琐,还有更加简单的方法   二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的利用xfire开发WebService,可以有三种方法: ? ?1. 一种是从javabean中生成;  2.?一种是从wsdl文件中生成; ? ?3. 还有一种是自己建立webservice   步骤如下:   用myeclipse建立webservice工程,目录结构如下:首先建立webservice接口, 代码如下: ????1?.myeclipse.wsExample;   2?//Generated?by?MyEclipse   3   4?public?interface?IHelloWorldService?{   5 ????6?public?String?example(String?message);   7   8?} 接着实现这个借口: ????1?.myeclipse.wsExample;   2?//Generated?by?MyEclipse   3   4?public?class?HelloWorldServiceImpl?implements?IHelloWorldService?{   5   6?public?String?example(String?message)?{   7?return?message;   8?}   9   10?}   修改 service.xml文件,加入以下代码:   1?<service>   2?<name>HelloWorldService</name>   3?<serviceClass>   .myeclipse.wsExample.IHelloWorldService   5?</serviceClass>   6?<implementationClass>   .myeclipse.wsExample.HelloWorldServiceImpl   8?</implementationClass>   9?<?style>wrapped</style>   10?<use>literal</use>   11?<scope>application</scope>   12  </service> 把整个项目部署到tomcat服务器中打开浏览器,输入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下: 然后再展开HelloWorldService后面的wsdl可以看到:  客户端实现如下:  ??1?.myeclipse.wsExample.client;   2   3?import?.MalformedURLException;   4?import?.URL;   5   6?.codehaus.xfire.XFireFactory;   7?.codehaus.xfire.client.Client;   8?.codehaus.xfire.client.XFireProxyFactory;   9?.codehaus.xfire.service.Service;  ??10?.codehaus.xfire.service.binding.ObjectServiceFactory;   11   12?.myeclipse.wsExample.IHelloWorldService;   13   14?public?class?HelloWorldClient?{   15?public?static?void?main(String[]?args)?throws?MalformedURLException,?Exception?{   16?//?TODO?Auto-generated?method?stub   17?Service?s=new?ObjectServiceFactory().create(IHelloWorldService.class);   18?XFireProxyFactory?xf=new?XFireProxyFactory(XFireFactory.newInstance().getXFire());   19?String?url="   20   21?try   22?{   23 ????24?IHelloWorldService?hs=(IHelloWorldService)?xf.create(s,url);   25?String?st=hs.example("zhangjin");     26?System.out.print(st);   27?}     28?catch(Exception?e)   29?{   30?e.printStackTrace();   31?}   32?}   33   34?}? ??有时候我们知道一个wsdl地址,比如想用java客户端引做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下: 1.?public?static?void?main(String[]?args)?throws?MalformedURLException,?Exception?{ 2.?//?TODO?Auto-generated?method?stub

Java中怎样口述 调用webservice接口(比如订单,天气),还有 树形结构菜单怎样口述

建立个普通的web工程就可以 服务器端首先需要导入对应的包,在web-inf下面建立server-config.wsdd,具体里面的内容大致如下 <ns1:deployment xmlns="/axis/wsdd/" xmlns:java="/axis/wsdd/providers/java" xmlns:ns1="/axis/wsdd/"> <ns1:globalConfiguration> <ns1:parameter name="sendMultiRefs" value="true"/> <ns1:parameter name="disablePrettyXML" value="true"/> <ns1:parameter name="adminPassword" value="admin"/> <ns1:parameter name="attachments.Directory" value=""/> <ns1:parameter name="dotNetSoapEncFix" value="true"/> <ns1:parameter name="enableNamespacePrefixOptimization" value="false"/> <ns1:parameter name="sendXMLDeclaration" value="true"/> <ns1:parameter name="sendXsiTypes" value="true"/> <ns1:parameter name="attachments.implementation" value=.apache.axis.attachments.AttachmentsImpl"/> <ns1:requestFlow> <ns1:handler type=".apache.axis.handlers.JWSHandler"> <ns1:parameter name="scope" value="session"/> </ns1:handler> <ns1:handler type=".apache.axis.handlers.JWSHandler"> <ns1:parameter name="scope" value="request"/> <ns1:parameter name="extension" value=".jwr"/> </ns1:handler> </ns1:requestFlow> </ns1:globalConfiguration> <ns1:handler name="URLMapper" type=".apache.axis.handlers.http.URLMapper"/> <ns1:handler name="LocalResponder" type=".apache.axis.transport.local.LocalResponder"/> <ns1:handler name="Authenticate" type=".apache.axis.handlers.SimpleAuthenticationHandler"/> <ns1:service name="AdminService" provider="java:MSG"> <ns1:parameter name="allowedMethods" value="AdminService"/> <ns1:parameter name="enableRemoteAdmin" value="false"/> <ns1:parameter name="className" value=.apache.axis.utils.Admin"/> <ns1:namespace>/axis/wsdd/</ns1:namespace> </ns1:service> <ns1:service name="Version" provider="java:RPC"> <ns1:parameter name="allowedMethods" value="getVersion"/> <ns1:parameter name="className" value=.apache.axis.Version"/> </ns1:service> <ns1:operation name="getTest" qname="ns1:getTest" returnQName="ns1:getTestReturn" returnType="xsd:string" soapAction="" xmlns:ns1="" xmlns:xsd="/2001/XMLSchema" xmlns:ns2="/axis/wsdd/"> <ns1:parameter qname="ns1:filetype" type="xsd:string"/> </ns1:operation> <ns1:parameter name="allowedMethods" value="*"/> <ns1:parameter name="typeMappingVersion" value="1.2"/> <ns1:parameter name="wsdlPortType" value="TestWebService"/> <ns1:parameter name="className" value=.test.web.TestWebService"/> <ns1:parameter name="wsdlServicePort" value="TestWebService"/> <ns1:parameter name="schemaQualified" value=""/> <ns1:parameter name="wsdlTargetNamespace" value=""/> <ns1:parameter name="wsdlServiceElement" value="TestWebServiceService"/> </ns1:service> <ns1:transport name="http"> <ns1:requestFlow> <ns1:handler type="URLMapper"/> <ns1:handler type=".apache.axis.handlers.http.HTTPAuthHandler"/> </ns1:requestFlow> <ns1:parameter name="qs:list" value=.apache.axis.transport.http.QSListHandler"/> <ns1:parameter name="qs:wsdl" value=.apache.axis.transport.http.QSWSDLHandler"/> <ns1:parameter name="qs.list" value=.apache.axis.transport.http.QSListHandler"/> <ns1:parameter name="qs.method" value=.apache.axis.transport.http.QSMethodHandler"/> <ns1:parameter name="qs:method" value=.apache.axis.transport.http.QSMethodHandler"/> <ns1:parameter name="qs.wsdl" value=.apache.axis.transport.http.QSWSDLHandler"/> </ns1:transport> <ns1:transport name="local"> <ns1:responseFlow> <ns1:handler type="LocalResponder"/> </ns1:responseFlow> </ns1:transport> </ns1:deployment> 里面定义了要调用的类的名称路径及其中方法,传入参数等 提供的类就是个普通的类文件 TestWebService { public String getTest(String filetype){ return "test"; } } 调用的类访问接口类似 public void getStr(){ try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new .URL("http://localhost:8090/test/services/TestWebService?wsdl")); call.setOperationName(new QName("", "getTestReturn")); call.addParameter("filetype", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN); .apache.axis.Constants.XSD_STRING); try { String ret = (String) call .invoke(new Object[] { "1",}); List list= xmlToList(ret); for(int i=0;i<list.size();i++){ System.out.println( ((String[])list.get(i))[0]); System.out.println( ((String[])list.get(i))[1]); } } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (ServiceException e) { e.printStackTrace(); } } 上述代码不保证能正确运行,是从能运行的版本修改的,最好再参照相应的资料进行理解

java如何调用webservice接口

简单来说就是你编写的webservice 是要有xml文件来进行配置的 你的接口名 方法名 这样就能向外发布接口,外面的接口也是通过配置你电脑或是服务器的ip地址加上你的接口名称就能调用你的webservice接口了。

java 怎样调用本地webservice

WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用。

WebService采用HTTP协议传输数据,采用XML格式封装数据,SOAP协议=HTTP协议+XML数据格式。

主要解决不了不同的系统或者调用分布部署的处理数据项目返回的接口。

第一种,采用httpclient请求,这种跟经常用的HTTP请求一样,结果可以是返回XML格式的字符串,比较容易对其进行解析,取得想要的数据。

触摸云 26元/月 ,美国200G高防云服务器

触摸云触摸云(cmzi.com),国人商家,有IDC/ISP正规资质,主营香港线路VPS、物理机等产品。本次为大家带上的是美国高防2区的套餐。去程普通线路,回程cn2 gia,均衡防御速度与防御,防御值为200G,无视UDP攻击,可选择性是否开启CC防御策略,超过峰值黑洞1-2小时。最低套餐20M起,多数套餐为50M,适合有防御型建站需求使用。美国高防2区 弹性云[大宽带]· 配置:1-16核· ...

搬瓦工香港 PCCW 机房已免费迁移升级至香港 CN2 GIA 机房

搬瓦工最新优惠码优惠码:BWH3HYATVBJW,节约6.58%,全场通用!搬瓦工关闭香港 PCCW 机房通知下面提炼一下邮件的关键信息,原文在最后面。香港 CN2 GIA 机房自从 2020 年上线以来,网络性能大幅提升,所有新订单都默认部署在香港 CN2 GIA 机房;目前可以免费迁移到香港 CN2 GIA 机房,在 KiwiVM 控制面板选择 HKHK_8 机房进行迁移即可,迁移会改变 IP...

gcorelabs:美国GPU服务器,8张RTX2080Ti,2*Silver-4214/256G内存/1T SSD/

gcorelabs提供美国阿什本数据中心的GPU服务器(显卡服务器),默认给8路RTX2080Ti,服务器网卡支持2*10Gbps(ANX),CPU为双路Silver-4214(24核48线程),256G内存,1Gbps独享带宽仅需150欧元、10bps带宽仅需600欧元,不限流量随便跑吧。 官方网站 :https://gcorelabs.com/hosting/dedicated/gpu/ ...

java调用webservice为你推荐
performclickC#中 键盘entre执行确定命令的代码是什么视频压缩算法MP4视频压缩,比特率如何计算。视频压缩算法视频压缩方式chrome系统Chrome OS是什么系统?virusscan已安全McAfee VirusScan 10.0 windows 还有安全报警扫图问个非常白痴的问题撒,扫图是什么意思?assemblyinfo什么是GAC熊猫烧香病毒下载熊猫烧香病毒?谷歌图片识别如何打开PICASA头像识别功能?网络备份win7中如何备份网络设置
ip查域名 企业域名备案 inmotionhosting vmsnap3 火车票抢票攻略 12306抢票助手 爱奇艺vip免费试用7天 电信虚拟主机 常州联通宽带 百度云空间 域名和主机 .htaccess 月付空间 防盗链 blaze 达拉斯 海尔t68驱动 海康流媒体服务器 ftp服务器架设 ibm服务器机柜 更多