怎么让群名片qq别人艾特你反转代码的时候是反的

2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。webservice(4)
& & 使用webservice开发,我们可以调用很多第三方开发的webservice服务,我们可以将这些服务功能集成到我们的web项目中,最近学习别人的webservice开发接触了一些应用。将第三方开发出来的功能显示到我们的应用中。跟着别人的学习轨迹记录一下自己的开发流程。
& & 下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明。气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client)。
& & 1:调用第三方webservice天气预报信息接口
& & 访问天气预报接口,如图所示:
& & 我们查看服务说明,或者访问.cn/WebServices/WeatherWS.asmx?WSDL查看wsdl文件了解支持的服务接口。
& & 2:创建java客户端访问第三方提供的WebService服务
& &(1)借助wsimport命令工具自动生成客户端代码
& & 创建一个webservice项目如图所示:
& &&打开命令行窗口,切换到项目的src目录下,执行&wsimport
-keep&&生成客户端代码,如下图所示:
& & 我们会发现在执行命令之后报错,运行结果显示,使用wsimport工具直接生成客户端代码会抛异常,
无法生成客户端代码,&只是因为我们要调用WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:
& & (1)首先我们将网页打开的wsdl文件保存到本地,修改后缀名为wsdl
& & (2)修改wsdl文档的部分内容:将&&s:element
ref=&s:schema& /&&s:any /&&替换成&&s:any
minOccurs=&2& maxOccurs=&2&/&
& &注:wsdl文件共有三处修改,替换的时候切记全部替换,否则执行会报错。
& (3)再次执行wsimport生成代码,这次使用保存在本地的WeatherWS.wsdl文件来进行生成,如下图所示:
& & (4)刷新我们的webservice项目,就可以自动生成代码,如图所示:
& & (5)编写测试请求代码:
& & 代码编写到webservice的服务端,我们可以新建一个webservice的服务端
import java.util.L
.webxml.ArrayOfS
.webxml.WeatherWS;
.webxml.WeatherWSS
public class WeatherWSClient {
public static void main(String[] args) {
//创建一个WeatherWS工厂
WeatherWS factory = new WeatherWS();
//根据工厂创建一个WeatherWSSoap对象
WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap();
//调用WebService提供的getWeather方法获取南宁市的天气预报情况
ArrayOfString weatherInfo = weatherWSSoap.getWeather(&广州&, null);
List&String& lstWeatherInfo = weatherInfo.getString();
//遍历天气预报信息
for (String string : lstWeatherInfo) {
System.out.println(string);
System.out.println(&------------------------&);
}& & 执行代码,这样我们就成功调用第三方webservice服务了。
& &网上常用免费WebServices集合&
天气预报Web服务,数据来源于中国气象局 公用事业
中国股票行情分时走势预览缩略图&
中国股票行情数据&WEB 服务(支持深圳和上海股市的基金、债券和股票)
国内飞机航班时刻表&WEB 服务 公用事业
中国电视节目预告(电视节目表) WEB 服务 公用事业
火车时刻表&&&(第六次提速最新列车时刻表) 公用事业
中文 &-& 英文双向翻译&WEB 服务 获得标准数据
验证码图片&WEB 服务 支持中文、字母、数字 图像和多媒体
中国邮政编码&&-& 地址信息双向查询/搜索 WEB 服务 获得标准数据
IP地址来源搜索&WEB 服务(是目前最完整的IP地址数据) 获得标准数据
国内手机号码归属地查询
外汇-人民币即时报价
腾讯QQ在线状态&WEB 服务
中文简体字&-&繁体字转换&WEB 服务
IP地址搜索&WEB 服务包含中国和国外已知的IP地址数据,是目前最完整的IP地址数据,记录数量现已超过37万条并还在不断更新和增加中
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:34028次
积分:1249
积分:1249
排名:千里之外
原创:80篇
转载:64篇
(30)(24)(9)(3)(10)(9)(22)(27)(2)(1)(1)(1)(1)(1)(8)用cxf发布和调用web service - 女儿3岁了还是要继续钻研技术 - ITeye技术网站
博客分类:
最近我们的系统需要和一个第三方系统对接,对接的方式是通过web service,所以就学习了一下这方面的东西
用CXF来做web service是比较简单的,本文就简单介绍一下如何一步步发布web service,以及调用现有的web service。另外如果系统已经使用了Spring MVC,那么引入CXF需要额外的步骤,见本人另外一篇博客/blog/1432920。如果展现层没有用spring mvc,而是用struts2之类的,可以省去这一步
首先介绍怎么发布web service:
第1步是创建一个普通的java接口,然后用@WebService注解声明这是一个web service
package com.huawei.framework.
import javax.jws.WebS
import com.huawei.framework.model.U
@WebService
public interface HelloWorld {
String sayHi(User user);
可以看到,这个接口非常普通,不需要继承什么额外的接口,只需要注解一个@WebService就可以
第2步当然是需要给这个接口提供一个实现类
package com.huawei.framework.
import com.huawei.framework.model.U
public class HelloWorldImpl implements HelloWorld {
public String sayHi(User theUser) {
return "Hello " + theUser.getName() + " ,your age is "
+ theUser.getAge();
这个类更加简单,连注解都省了,但是如果这个类实现了不止一个接口,那么就需要加上@WebService注解,不过一般不会这样
第3步就到了cxf出场的时候了,需要在spring配置文件中加上cxf的配置
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd"&
&import resource="classpath:META-INF/cxf/cxf.xml" /&
&import resource="classpath:META-INF/cxf/cxf-servlet.xml" /&
&jaxws:endpoint id="helloWorld"
implementorClass="com.huawei.framework.webservice.HelloWorldImpl"
address="/HelloWorld" /&
这里只写了CXF所需的配置,spring配置文件的其他内容已省略。用到的元素是&jaxws:endpoint&,implementorClass属性就是我们提供的实现类,然后address属性是这个web service对外暴露的路径
最后第4步是在web.xml中加载cxf
&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/xml/ns/javaee"
xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"
id="MyFramework" version="3.0"&
&display-name&MyFramework&/display-name&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&
WEB-INF/beans.xml,
WEB-INF/cxf.xml
&/param-value&
&/context-param&
&listener&
&listener-class&
org.springframework.web.context.ContextLoaderListener
&/listener-class&
&/listener&
&servlet-name&framework&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&WEB-INF/spring-mvc.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&framework&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&servlet-name&CXFServlet&/servlet-name&
&servlet-class&org.apache.cxf.transport.servlet.CXFServlet&/servlet-class&
&load-on-startup&2&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&CXFServlet&/servlet-name&
&url-pattern&/webservice/*&/url-pattern&
&/servlet-mapping&
&/web-app&
这里写的比较复杂,是为了兼容spring mvc。这里把/webservice/*作为对外暴露的路径,和上面的web service address要结合起来,比如说http://ip:port/app_name/webservice/HelloWorld,就会指向这个例子里声明的web service接口
通过以上4步,就发布了一个web service,在浏览器里输入http://ip:port/app_name/webservice,就会看到这个sayHi的web service了,并且cxf已经自动生成了wsdl文件
然后介绍一下怎么通过cxf调用已有的web service
第1步是需要“获得”web service的对应接口类,这里的“获得”有多种情况。在条件允许的情况下,比如2个子系统都是自己项目组开发的,或者对方愿意提供,那么直接拷贝过来就可以了。但一般是没有这么方便的。。那么这种情况下,就是wsdl发挥作用的时候了。只要对方发布了web service,就一定会有一个wsdl文件,那么可以根据这个wsdl文件来手写还原java接口类和所需的实体类(比如本例中的User模型类),还有一个办法就是用wsdl2java工具,生成所需的类
在这个例子中,我直接把HelloWorld.java拷贝过来就行了,注意拷贝过来的时候,@WebService注解还是需要的
第2步是配置cxf,这里用到的是&jaxws:client&元素,和上面的&jaxws:endpoint&是对应的
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd"&
&bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&
&property name="locations"&
&value&classpath:webservice_address.properties&/value&
&/property&
&jaxws:client id="helloClient" serviceClass="com.huawei.webservice.client.HelloWorld"
address="${helloworld}" /&
其中serviceClass属性,就是指向HelloWorld所在的位置,address是目标web service的地址,也就是http://ip:port/app_name/webservice/HelloWorld
这里有一个额外的东西,就是把所有的address,放在单独的webservice_address.properties文件里管理,这样如果用到的web service比较多时,可以集中维护,不需要修改spring配置文件
第3步就是执行,十分简单
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"cxf.xml");
HelloWorld client = (HelloWorld) context.getBean("helloClient");
User user = new User();
user.setName("zhengshengdong");
String message = client.sayHi(user);
System.out.println(message);
上面可以看到,首先是启动Spring容器,然后像获取普通的bean一样,用getBean()方法实例化HelloWorld接口,然后直接在其上调用sayHi()方法即可
在这个过程中,CXF对底层的复杂操作进行了封装,包括将实体数据封装成soap格式的消息,然后塞到http的request post里,发送到目标web service。然后从返回的http response中取出soap格式的消息,再反向解析,生成实体对象
浏览 15497
论坛回复 /
(0 / 1837)
浏览: 968414 次
来自: 深圳
赞!!!!!!
请问你装的是哪个版本的oepnssl?
kyfxbl 写道呵呵,不是知识面广,而是瞎折腾浪费了很多时间 ...
哥,我想知道这些你都实现了吗?现在是日
通俗易懂,很直观,喜欢!&&&&ABAP调用外部(第三方系统)WebService
ABAP调用外部(第三方系统)WebService
基础知识 3
创建WebService使用者 4
创建RFC目的 9
创建逻辑端口 11
创建ABAP程序调用WebService 13
嵌到我的页面
<input type="text" readonly="true" value="">
若举报审核通过,可奖励20下载分
被举报人:
saptianyuan
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行

我要回帖

更多关于 qq群名片不让管理员改 的文章

 

随机推荐