如何用jax-ws搭建webservicewsus服务器搭建

初学用jax-ws生成的天气预报客户端代码,执行之后报错为:
Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:38)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:133)
at javax.xml.ws.spi.Provider.provider(Provider.java:76)
at javax.xml.ws.Service.&init&(Service.java:57)
at com.weather.weatherforecast.Service.&init&(Service.java:48)
at com.weather.weatherforecast.ServiceHttpGet_ServiceHttpGet_Client.main(ServiceHttpGet_ServiceHttpGet_Client.java:46)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:34)
... 5 more
哪位大侠遇到过吗,请教了!
以下是客户端代码的片段:
public final class ServiceHttpGet_ServiceHttpGet_Client {
&&& private static final QName SERVICE_NAME = new QName("http://tempuri.org/", "Service");
&&& private ServiceHttpGet_ServiceHttpGet_Client() {
&&& }
&&& public static void main(String args[]) throws Exception {
&&&&&&& URL wsdlURL = Service.WSDL_LOCATION;
&&&&&&& if (args.length & 0) {
&&&&&&&&&&& File wsdlFile = new File(args[0]);
&&&&&&&&&&& try {
&&&&&&&&&&&&&&& if (wsdlFile.exists()) {
&&&&&&&&&&&&&&&&&&& wsdlURL = wsdlFile.toURI().toURL();
&&&&&&&&&&&&&&& } else {
&&&&&&&&&&&&&&&&&&& wsdlURL = new URL(args[0]);
&&&&&&&&&&&&&&& }
&&&&&&&&&&& } catch (MalformedURLException e) {
&&&&&&&&&&&&&&& e.printStackTrace();
&&&&&&&&&&& }
&&&&&&& }
&&&&&
&&&&&&& Service ss = new Service(wsdlURL, SERVICE_NAME);
&&&&&&& ServiceHttpGet port = ss.getServiceHttpGet();&
&&&&&&& {
&&&&&&& System.out.println("Invoking getSupportProvince...");
&&&&&&& com.weather.weatherforecast.ArrayOfString _getSupportProvince__return = port.getSupportProvince();
&&&&&&& System.out.println("getSupportProvince.result=" + _getSupportProvince__return);
&&&&&&& }
&&&&&&& {
&&&&&&& System.out.println("Invoking getSupportCity...");
&&&&&&& java.lang.String _getSupportCity_byProvinceName = "";
&&&&&&& com.weather.weatherforecast.ArrayOfString _getSupportCity__return = port.getSupportCity(_getSupportCity_byProvinceName);
&&&&&&& System.out.println("getSupportCity.result=" + _getSupportCity__return);
&&&&&&& }
&&&&&&& {
&&&&&&&
System.out.println("Invoking getWeatherbyCityName...");
&&&&&&&&&&& String _getWeatherbyCityName_theCityName = "北京";
&&&&&&&&&&& String _getWeatherbyCityName_theDayFlag = "1";
&&&&&&&&&&& ArrayOfString _getWeatherbyCityName__return = port.getWeatherbyCityName(_getWeatherbyCityName_theCityName, _getWeatherbyCityName_theDayFlag);
&&&&&&&&&&& List&String& stringWeatherInfo=_getWeatherbyCityName__return.getString();
&&&&&&&&&&& String city=stringWeatherInfo.get(1);
&&&&&&&&&&& String weather=stringWeatherInfo.get(2);
&&&&&&&&&&& String temperature=stringWeatherInfo.get(3);
&&&&&&&&&&& String wind=stringWeatherInfo.get(4);
&&&&&&&&&&& String date=stringWeatherInfo.get(5);
&&&&&&&&&&& String tempicurl=stringWeatherInfo.get(6);
&&&&&&&&&&&
&&&&&&&&&&& System.out.println("城市:"+city);
&&&&&&&&&&& System.out.println("天气:"+weather);
&&&&&&&&&&& System.out.println("温度:"+temperature);
&&&&&&&&&&& System.out.println("风向:"+wind);
&&&&&&&&&&& System.out.println("日期:"+date);
&&&&&&&&&&& System.out.println("天气图标地址:"+tempicurl);
&&&&&&&
System.out.println("getWeatherbyCityName.result=" + _getWeatherbyCityName__return);
&&&&&&& System.exit(0);
&&& }
问题补充:xfei6868 写道你使用的是java1.6吗?
问题补充:xfei6868 写道改成 1.6试试,好像是1.5还不支持
好像不是这个原因,试了下1.6的还是报这个问题
改成 1.6试试,好像是1.5还不支持
你使用的是java1.6吗?
已解决问题
未解决问题基于JAX-WS建立WebService对象传递的研究--《科技广场》2009年09期
基于JAX-WS建立WebService对象传递的研究
【摘要】:随着时代不断向前发展,高校中各种应用系统越来越多,经常都要把用不同语言编写的、在不同平台上运行的各种系统集成起来,而这种集成将花费很大的开发力量。各种应用系统往往因数据标准、开发环境、系统平台等不一致的因素而无法达到协同工作的结果。本文简单介绍了一个基于JAX-WS建立WebService传递对象的原理和实现过程,实现了不同系统之间的数据对象传递过程。
【作者单位】:
【关键词】:
【分类号】:TP311.52【正文快照】:
0引言随着计算机技术的不断发展,在计算机网络中各种应用系统越来越多,现实中经常都要把不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在主机上的程序中获取数据,或者把数据发送到主机或UNIX应用程序中去。即
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【共引文献】
中国期刊全文数据库
阳红,梁京章,熊小萍;[J];广西大学学报(自然科学版);2004年S2期
黄陈蓉;李铭;;[J];计算机工程;2005年23期
刘治理;马光文;戴露;;[J];计算机工程;2006年06期
方美玉,吴朝晖;[J];计算机应用研究;2004年08期
张实,肖卫东,唐九阳;[J];计算机应用研究;2004年10期
高璟,汪洪涛,王潜平,王茂光;[J];计算机应用与软件;2004年09期
林民;张丽萍;;[J];内蒙古师范大学学报(自然科学汉文版);2006年03期
张丽萍;林民;;[J];内蒙古师范大学学报(自然科学汉文版);2006年04期
杨志和;;[J];上海电机学院学报;2007年01期
李政伟,夏士雄,聂茹;[J];计算机工程与设计;2005年04期
中国重要会议论文全文数据库
张瑞斌;;[A];教育技术的创新、发展与服务——第五届教育技术国际论坛论文集(上册)[C];2006年
中国博士学位论文全文数据库
左维;[D];中国科学院研究生院(地球化学研究所);2004年
谢菊芳;[D];中国农业大学;2005年
汪勇;[D];武汉理工大学;2005年
詹骞;[D];中国地质大学(北京);2008年
中国硕士学位论文全文数据库
黄蓉;[D];北京工业大学;2003年
彭庆红;[D];武汉理工大学;2003年
李灏晨;[D];武汉理工大学;2003年
张红;[D];西南石油学院;2003年
李海江;[D];浙江工业大学;2004年
潘敏;[D];浙江大学;2004年
乌蓓华;[D];上海师范大学;2004年
查道鹏;[D];合肥工业大学;2004年
沈静;[D];华东师范大学;2004年
梁明;[D];华东师范大学;2004年
【相似文献】
中国期刊全文数据库
初蒙;[J];互联网周刊;2001年28期
邓倩妮,陆鑫达;[J];电子学报;2002年11期
王勇,刘文江;[J];化工自动化及仪表;2002年06期
王兴玲,杨崇俊;[J];计算机工程与应用;2002年22期
张文斌,陈恩红;[J];计算机应用;2002年05期
杨强,卢建军,唐善成;[J];计算机应用;2002年09期
吕曦,王化文;[J];计算机应用;2002年12期
程炜,杨宗凯,乐春晖;[J];计算机应用研究;2002年03期
栾新民,廖闻剑;[J];计算机应用研究;2002年10期
杨帮青,徐学洲,杜军朝;[J];计算机应用研究;2002年12期
中国重要会议论文全文数据库
许雷;郑俊辉;;[A];第九届全国青年通信学术会议论文集[C];2004年
林鹰;刘琼慧;邓仁明;;[A];中国自动化学会全国第九届自动化新技术学术交流会论文集[C];2004年
陈华鹏;沈音乐;;[A];首届泛珠三角先进制造技术论坛暨第八届粤港机电工程技术与应用研讨会论文专辑[C];2004年
王朝晖;张来斌;燕林;张利军;;[A];2004年石油装备年会暨庆祝江汉机械研究所建所40周年学术研讨会论文集[C];2004年
李智毅;;[A];第二届和谐人机环境联合学术会议(HHME2006)——第15届中国多媒体学术会议(NCMT'06)论文集[C];2006年
赵宏;吾守尔·斯拉木;;[A];2006年全国开放式分布与并行计算机学术会议论文集(三)[C];2006年
杨斌;;[A];广东省通信学会2006年度学术论文集[C];2007年
丁力;徐华;王家廞;;[A];2007年中国智能自动化会议论文集[C];2007年
毛静芳;;[A];中国烟草学会2006年学术年会论文集[C];2007年
刘大成;曹玲;许峰;王志坚;;[A];全面建设小康社会:中国科技工作者的历史责任——中国科协2003年学术年会论文集(上)[C];2003年
中国重要报纸全文数据库
MSDN/谢保华;[N];中国计算机报;2001年
南京邮电学院 李建忠;[N];计算机世界;2002年
卢山;[N];中国计算机报;2003年
;[N];中国计算机报;2003年
计世在线 孙永杰;[N];计算机世界;2003年
王辉;[N];通信产业报;2004年
;[N];电脑商报;2005年
凌太明;[N];人民邮电;2005年
刘天北 熊节;[N];中华读书报;2005年
木公 工业和信息化部电信研究院泰尔管理研究所
卢玥;[N];人民邮电;2010年
中国硕士学位论文全文数据库
罗荣阁;[D];大连理工大学;2002年
郑巍;[D];大连理工大学;2003年
郑少鹏;[D];广东工业大学;2003年
阳红;[D];广西大学;2003年
岳小婷;[D];新疆大学;2003年
施友松;[D];南京理工大学;2003年
黄泽纯;[D];西南交通大学;2003年
王旸;[D];对外经济贸易大学;2004年
李丽;[D];武汉理工大学;2004年
李珊珊;[D];华东师范大学;2004年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
同方知网数字出版技术股份有限公司
订购热线:400-819-82499
在线咨询:
传真:010-
京公网安备74号& webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
WEBSERVICE快速入门的示例:
首先定义接口:
[上一篇][下一篇]
最新文章随机精彩热门排行
日志总数:3717 篇
评论总数:123 评
标签数量:4396 个
链接总数:4 条
建站日期:
运行天数:611 天软件,还是开源的好
追梦,不轻言放弃!
JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JAX-RPC2.0标准发布不久后就被重命名为JAX-WS2.0.
JAX-WS2.0是Sun新的Web service协议栈,是一个完全基于标准实现的。在binding层,使用的是the Java Architecture for XML Binding(JAXB),在parsing层,使用的是the Streaming API for XML(StAX),同时它还完全支持schema规范。
SEI:Service Endpoint Interface
JAX:Java API for XML Web Servcie
JAX-WS RI:JAX-WS Reference Implementation
SAAJ:SOAP with Attachments API for Java
创建 Web Service方式
JAX-WS 2.0有两种创建Web Service的开发过程:自顶向下和自定向上。自顶向下方式指通过一个WSDL文件来创建Web Service;自底向上是从Java类出发创建Web Service。两种开发过程最终形成的文件包括:
SEI(对应WSDL中的一个Web Service port,在Java中表现为一个接口);
SEI实现类;
WSDL和XSD文件;
从Java开始的开发步骤:
声明某个类为@WebService,即将它声明为SEI实现类,然后对需要暴露的方法标注为@WebMethod;
运行wsgen命令生成其他所需文件;
发布Web Service;
最简单的SEI实现类:
package net.
import javax.jws.WebM
import javax.jws.WebS
@WebService
public class Hello {
@WebMethod
public String SayHello(String name){
return String.format("Hello,%s",name);
此时的目录结构如下:
使用wsgen命令生成所需文件
进入JAX-WS-Java-Server项目目录如:
D:\MyTemp\workspace\JAX-WS-Java-Server&
执行wsgen命令:
wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl net.oseye.Hello
执行中可能出现“directory not found: wsdl”,手动建立wsdl目录。
成功后可在bin、src目录的命名空间net.oseye里看到生成的jaxws文件夹,以及在wsdl目录中的HelloService.wsdl和HelloService_schema1.xsd。
此时的目录结构如下:
发布Web Service
在应用程序中发布,JDK停工非常方便的API:Enndpoint.publish
package net.
import javax.xml.ws.E
public class Main {
* @param args
public static void main(String[] args) {
Endpoint.publish("http://localhost:8808/HelloService", new Hello());
运行应用程序,地址栏输入:http://localhost:8808/HelloService,接客预览:
wsgen工具简介
wsgen 是在JDK的bin目录下的一个exe文件(Windows版),该命 令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen 还能辅助生成WSDL和相关的xsd文件。wsgen 从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。
命令参数说明:
-cp 定义classpath
-r 生成 bean的wsdl文件的存放目录
-s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
-d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
>> 博主下一篇:
<< 博主上一篇:

我要回帖

更多关于 jax ws配置 的文章

 

随机推荐