




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近开发开始学习Web Service,如果你是大神,请路过!谢谢!遵循前辈大神们的教导,内事不决问度娘,外事不决问谷歌(现在谷歌已经不能用了),只能问度娘了!上网一百度,套用周董的一句歌词,霍,霍,霍,霍,这么多的套路(axis,axis2,XFire,CXF等),我到底选择哪一个?因为要和Spring进行对接,看了一下,CXF与Spring的耦合度最好,于是就选择了CXF。上官网下jar包,下了最新的apache-cxf-3.1.4.zip包。解压出来,看看里面的最简单的实例,apache-cxf-3.1.4samplesjava_first_jaxws,本着你快乐所以我快乐加上不要脸的原则,我抄抄抄,改了一下名字,开发环境jdk1.6, jdk1.5没试过,上眼呐!新建工程mywbs,导入jar包cxf-core-3.1.4.jarjetty-continuation-9.2.11.v20150529.jarjetty-http-9.2.11.v20150529.jarjetty-io-9.2.11.v20150529.jarjetty-server-9.2.11.v20150529.jarjetty-util-9.2.11.v20150529.jarwsdl4j-1.6.3.jarxmlschema-core-2.2.1.jar一、接口类IHelloWorld.javapackage com.ws.hello;import java.util.List;import javax.jws.WebService;import com.ws.entity.Users;WebServicepublic interface IHelloWorld public String sayHello(String name);public String getUserName(Users user);public List getListUser();二、实现类(说明endpointInterface = com.ws.hello.IHelloWorld,IHelloWorld类加上路径,此处注意)HelloWorldImpl.javapackage com.ws.hello;import java.util.ArrayList;import java.util.List;import javax.jws.WebService;import com.ws.entity.Users;WebService(endpointInterface = com.ws.hello.IHelloWorld,serviceName = IHelloWorld, portName=IHelloWorldPort)public class HelloWorldImpl implements IHelloWorld Overridepublic String sayHello(String name) return name + : 您好啊!;Overridepublic String getUserName(Users user) return user.getName();Overridepublic List getListUser() System.out.println(getListUser called);List list = new ArrayList();list.add(new Users(2,张三);list.add(new Users(3, 十八罗汉);list.add(new Users(4,五王);return list;三、实体类Userspackage com.ws.entity;import java.io.Serializable;public class Users implements Serializableprivate static final long serialVersionUID = -5031894017095689998L;private Integer id;private String name;public Integer getId() return id;public void setId(Integer id) this.id = id;public String getName() return name;public void setName(String name) = name;public Users(Integer id, String name) super();this.id = id; = name;public Users() super();Users类如果不写默认构造方法,将报如下异常:Exception in thread main javax.xml.ws.WebServiceException: Unable to create JAXBContextat ernal.ws.model.AbstractSEIModelImpl.createJAXBContext(Unknown Source)at ernal.ws.model.AbstractSEIModelImpl.postProcess(Unknown Source)at ernal.ws.model.RuntimeModeler.buildRuntimeModel(Unknown Source)at ernal.ws.server.EndpointFactory.createSEIModel(Unknown Source)at ernal.ws.server.EndpointFactory.createEndpoint(Unknown Source)at ernal.ws.api.server.WSEndpoint.create(Unknown Source)at ernal.ws.api.server.WSEndpoint.create(Unknown Source)at ernal.ws.transport.http.server.EndpointImpl.createEndpoint(Unknown Source)at ernal.ws.transport.http.server.EndpointImpl.publish(Unknown Source)at ernal.ws.spi.ProviderImpl.createAndPublishEndpoint(Unknown Source)at javax.xml.ws.Endpoint.publish(Endpoint.java:220)at com.ws.deploy.DeployHelloWorldService.(DeployHelloWorldService.java:14)at com.ws.deploy.DeployHelloWorldService.main(DeployHelloWorldService.java:23)Caused by: java.security.PrivilegedActionException: ernal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptionscom.ws.entity.Users does not have a no-arg default constructor.this problem is related to the following location:at com.ws.entity.Usersat public java.util.List com.ws.hello.jaxws.GetListUserResponse._returnat com.ws.hello.jaxws.GetListUserResponseat java.security.AccessController.doPrivileged(Native Method). 13 moreCaused by: ernal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptionscom.ws.entity.Users does not have a no-arg default constructor.this problem is related to the following location:at com.ws.entity.Usersat public java.util.List com.ws.hello.jaxws.GetListUserResponse._returnat com.ws.hello.jaxws.GetListUserResponseat ernal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source)at ernal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source)at ernal.bind.v2.runtime.JAXBContextImpl.(Unknown Source)at ernal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source)at ernal.bind.v2.ContextFactory.createContext(Unknown Source)at ernal.bind.api.JAXBRIContext.newInstance(Unknown Source)at ernal.ws.developer.JAXBContextFactory$1.createJAXBContext(Unknown Source)at ernal.ws.model.AbstractSEIModelImpl$1.run(Unknown Source)at ernal.ws.model.AbstractSEIModelImpl$1.run(Unknown Source). 14 more晕了,真是崩溃了,就写了这么几句话!错误代码比正常代码还要多!真是婶婶能忍叔叔不能忍,虽然英语很烂,连猜带蒙吧,看黑色的一句话,大概似乎是告诉我们Users类中没有默认的构造方法,果断加上,错误消失!此处应有掌声!鼓掌!四、DeployHelloWorldService.javapackage com.ws.deploy;import javax.xml.ws.Endpoint;import com.ws.hello.HelloWorldImpl;public class DeployHelloWorldService protected DeployHelloWorldService() throws Exception System.out.println(Starting Server); HelloWorldImpl implementor = new HelloWorldImpl();/工程名 String address = http:/localhost:8080/mywbs; Endpoint.publish(address, implementor); /* * param args * throws Exception */public static void main(String args) throws Exception new DeployHelloWorldService(); System.out.println(Server ready.); Thread.sleep(5 * 60 * 1000); System.out.println(Server exiting); System.exit(0);点击运行,正常的话会有Starting ServerServer ready.在IE地址栏中输入:http:/localhost:8080/mywbs?wsdl什么你不知道IE地址栏在哪里,对不起,大哥,地球是危险的,你回火星去吧!如果正常的话呢,大约在网页上会出现下面的信息,只截取一部分,注意画粗红线的地方,下面我们用的到。五、客户端类(/,这个就是上面画粗红线的地方)package com.ws.client;import .URL;import space.QName;import javax.xml.ws.Service;import javax.xml.ws.soap.SOAPBinding;import com.ws.entity.Users;import com.ws.hello.HelloWorldImpl;import com.ws.hello.IHelloWorld;public final class Client private static final QName SERVICE_NAME = new QName(/, IHelloWorld); private static final QName PORT_NAME = new QName(/, IHelloWorldPort);private Client() public static void main(String args) throws Exception Service service = Service.create(SERVICE_NAME); String endpointAddress = http:/localhost:8080/mywbs; service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress); IHelloWorld hw = service.getPort(IHelloWorld.class); System.out.println(hw.sayHello(张述飞);/*URL url = new URL(http:/localhost:8080/mywbs?wsdl); Service service = Service.create(url,SERVICE_NAME); IHelloWorld hw = service.getPort(IHelloWorld.class); System.out.println(hw.sayHello(张述飞); System.out.println(hw.getUserName(new Users(1,kaka);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上饶预制化粪池施工方案
- 卸车指挥工设备维护与保养考核试卷及答案
- 中药灸熨剂工三级安全教育(班组级)考核试卷及答案
- 药械科不良安全事件培训课件
- 信息传播策略优化分析报告
- 2025版司法局《涉嫌抢劫罪的法律意见书》(空白模板)
- 精密过滤器施工方案
- 门面装饰工程施工方案
- 咨询公司项目规划方案
- 城市建筑纸浆配送方案设计
- 大学语文(第三版)课件 渔父
- 队列训练齐步的行进与立定
- 人教版小学六年级数学上册单元课后练习题 全册
- 初中九年级英语课件宾语从句 公开课比赛一等奖
- 【放心签】家政服务电子版合同范本(仅供参考)正规范本(通用版)
- 景区不锈钢浮雕施工方案
- 造价咨询部工作手册
- 立法学 第五版 课件 第1-8章 绪论-立法准备
- 湖北省行政区划代码
- 数字电路逻辑设计(第3版)PPT全套完整教学课件
- FREE高考英语核心词汇1783
评论
0/150
提交评论