- 浏览: 1285873 次
文章分类
最新评论
-
极限_裁决:
第一题,a 没有定义全局变量不属于 window
第二题,由于 ...
你真懂JavaScript吗? -
netsupper:
1)a=1,答错了."a" in wind ...
你真懂JavaScript吗?
http://www.javaeye.com/topic/308452
http://www.javaeye.com/topic/308452
服务接口,就是用来调用的,所以客户端显得尤为重要,xfire客户端对返回list很挑剔,所以需要使用泛型。
如何建立webservice client
步骤1,建立webservice project
下一步
下一步,默认
选择xfire包
finish, 这样,webservice项目就完成了
接下来是如何进行客户端开发.
在项目中右键,new webservice client
接着,选择你服务文件,wsdl
完成。
这样在你的项目中,会根据wsdl服务文件,生成客户端所需要的内容。
自动生成文件,下去就细细体会,给出一个测试代码
- packagecom.seavision.huayi2.service;
- importjava.net.MalformedURLException;
- importjava.util.Collection;
- importjava.util.HashMap;
- importjava.util.List;
- importjavax.xml.bind.JAXBElement;
- importjavax.xml.namespace.QName;
- importorg.codehaus.xfire.XFireRuntimeException;
- importorg.codehaus.xfire.aegis.AegisBindingProvider;
- importorg.codehaus.xfire.annotations.AnnotationServiceFactory;
- importorg.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations;
- importorg.codehaus.xfire.client.XFireProxyFactory;
- importorg.codehaus.xfire.jaxb2.JaxbTypeRegistry;
- importorg.codehaus.xfire.service.Endpoint;
- importorg.codehaus.xfire.service.Service;
- importorg.codehaus.xfire.soap.AbstractSoapBinding;
- importorg.codehaus.xfire.transport.TransportManager;
- importcom.seavision.huayi2.domain.ArrayOfTBusinsessLog;
- importcom.seavision.huayi2.domain.TBusinsessLog;
- importcom.seavision.huayi2.domain.TStationMonthReport;
- publicclassIWebserviceClient{
- privatestaticXFireProxyFactoryproxyFactory=newXFireProxyFactory();
- privateHashMapendpoints=newHashMap();
- privateServiceservice0;
- publicIWebserviceClient(){
- create0();
- EndpointIWebservicePortTypeLocalEndpointEP=service0.addEndpoint(newQName("http://service.huayi2.seavision.com","IWebservicePortTypeLocalEndpoint"),newQName("http://service.huayi2.seavision.com","IWebservicePortTypeLocalBinding"),"xfire.local://IWebservice");
- endpoints.put(newQName("http://service.huayi2.seavision.com","IWebservicePortTypeLocalEndpoint"),IWebservicePortTypeLocalEndpointEP);
- EndpointIWebserviceHttpPortEP=service0.addEndpoint(newQName("http://service.huayi2.seavision.com","IWebserviceHttpPort"),newQName("http://service.huayi2.seavision.com","IWebserviceHttpBinding"),"http://localhost:8080/seavision/services/IWebservice");
- endpoints.put(newQName("http://service.huayi2.seavision.com","IWebserviceHttpPort"),IWebserviceHttpPortEP);
- }
- publicObjectgetEndpoint(Endpointendpoint){
- try{
- returnproxyFactory.create((endpoint).getBinding(),(endpoint).getUrl());
- }catch(MalformedURLExceptione){
- thrownewXFireRuntimeException("InvalidURL",e);
- }
- }
- publicObjectgetEndpoint(QNamename){
- Endpointendpoint=((Endpoint)endpoints.get((name)));
- if((endpoint)==null){
- thrownewIllegalStateException("Nosuchendpoint!");
- }
- returngetEndpoint((endpoint));
- }
- publicCollectiongetEndpoints(){
- returnendpoints.values();
- }
- privatevoidcreate0(){
- TransportManagertm=(org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager());
- HashMapprops=newHashMap();
- props.put("annotations.allow.interface",true);
- AnnotationServiceFactoryasf=newAnnotationServiceFactory(newJsr181WebAnnotations(),tm,newAegisBindingProvider(newJaxbTypeRegistry()));
- asf.setBindingCreationEnabled(false);
- service0=asf.create((com.seavision.huayi2.service.IWebservicePortType.class),props);
- {
- AbstractSoapBindingsoapBinding=asf.createSoap11Binding(service0,newQName("http://service.huayi2.seavision.com","IWebservicePortTypeLocalBinding"),"urn:xfire:transport:local");
- }
- {
- AbstractSoapBindingsoapBinding=asf.createSoap11Binding(service0,newQName("http://service.huayi2.seavision.com","IWebserviceHttpBinding"),"http://schemas.xmlsoap.org/soap/http");
- }
- }
- publicIWebservicePortTypegetIWebservicePortTypeLocalEndpoint(){
- return((IWebservicePortType)(this).getEndpoint(newQName("http://service.huayi2.seavision.com","IWebservicePortTypeLocalEndpoint")));
- }
- publicIWebservicePortTypegetIWebservicePortTypeLocalEndpoint(Stringurl){
- IWebservicePortTypevar=getIWebservicePortTypeLocalEndpoint();
- org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
- returnvar;
- }
- publicIWebservicePortTypegetIWebserviceHttpPort(){
- return((IWebservicePortType)(this).getEndpoint(newQName("http://service.huayi2.seavision.com","IWebserviceHttpPort")));
- }
- publicIWebservicePortTypegetIWebserviceHttpPort(Stringurl){
- IWebservicePortTypevar=getIWebserviceHttpPort();
- org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
- returnvar;
- }
- publicstaticvoidmain(String[]args){
- IWebserviceClientclient=newIWebserviceClient();
- //createadefaultserviceendpoint
- IWebservicePortTypeservice=client.getIWebserviceHttpPort();
- /**
- *使用ObjectFactory插入
- **/
- com.seavision.huayi2.domain.ObjectFactorycfactory=newcom.seavision.huayi2.domain.ObjectFactory();
- com.seavision.huayi2.domain.TStationMonthReportnewTStationMonthReport=cfactory.createTStationMonthReport();
- newTStationMonthReport.setStationMonthReportId(cfactory.createTStationMonthReportStationMonthReportId("123465464864"));
- //
- /**
- *使用JAXBElement插入
- **/
- //JAXBElement<String>id=newJAXBElement<String>(new
- //QName("http://domain.huayi2.seavision.com","stationMonthReportId"),String.class,"gefa");
- //newTStationMonthReport.setStationMonthReportId(id);
- service.insertYueJiHua(newTStationMonthReport);
- /**
- *测试返回list结果
- **/
- ArrayOfTBusinsessLogaot=service.getYeWuList();
- Listlist=aot.getTBusinsessLog();
- System.out.println(list.size());
- for(inti=0;i<list.size();i++){
- TBusinsessLogtlog=(TBusinsessLog)list.get(i);
- System.out.println(i+"++++++"+tlog.getLogContent().getValue());
- }
- //TODO:Addcustomclientcodehere
- //
- //service.yourServiceOperationHere();
- System.out.println("testclientcompleted");
- System.exit(0);
- }
- }
package com.seavision.huayi2.service; import java.net.MalformedURLException; import java.util.Collection; import java.util.HashMap; import java.util.List; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; import org.codehaus.xfire.XFireRuntimeException; import org.codehaus.xfire.aegis.AegisBindingProvider; import org.codehaus.xfire.annotations.AnnotationServiceFactory; import org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.jaxb2.JaxbTypeRegistry; import org.codehaus.xfire.service.Endpoint; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.soap.AbstractSoapBinding; import org.codehaus.xfire.transport.TransportManager; import com.seavision.huayi2.domain.ArrayOfTBusinsessLog; import com.seavision.huayi2.domain.TBusinsessLog; import com.seavision.huayi2.domain.TStationMonthReport; public class IWebserviceClient { private static XFireProxyFactory proxyFactory = new XFireProxyFactory(); private HashMap endpoints = new HashMap(); private Service service0; public IWebserviceClient() { create0(); Endpoint IWebservicePortTypeLocalEndpointEP = service0 .addEndpoint(new QName("http://service.huayi2.seavision.com", "IWebservicePortTypeLocalEndpoint"), new QName("http://service.huayi2.seavision.com", "IWebservicePortTypeLocalBinding"), "xfire.local://IWebservice"); endpoints.put(new QName("http://service.huayi2.seavision.com", "IWebservicePortTypeLocalEndpoint"), IWebservicePortTypeLocalEndpointEP); Endpoint IWebserviceHttpPortEP = service0 .addEndpoint(new QName("http://service.huayi2.seavision.com", "IWebserviceHttpPort"), new QName("http://service.huayi2.seavision.com", "IWebserviceHttpBinding"), "http://localhost:8080/seavision/services/IWebservice"); endpoints.put(new QName("http://service.huayi2.seavision.com", "IWebserviceHttpPort"), IWebserviceHttpPortEP); } public Object getEndpoint(Endpoint endpoint) { try { return proxyFactory.create((endpoint).getBinding(), (endpoint).getUrl()); } catch (MalformedURLException e) { throw new XFireRuntimeException("Invalid URL", e); } } public Object getEndpoint(QName name) { Endpoint endpoint = ((Endpoint) endpoints.get((name))); if ((endpoint) == null) { throw new IllegalStateException("No such endpoint!"); } return getEndpoint((endpoint)); } public Collection getEndpoints() { return endpoints.values(); } private void create0() { TransportManager tm = (org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager()); HashMap props = new HashMap(); props.put("annotations.allow.interface", true); AnnotationServiceFactory asf = new AnnotationServiceFactory(new Jsr181WebAnnotations(), tm, new AegisBindingProvider(new JaxbTypeRegistry())); asf.setBindingCreationEnabled(false); service0 = asf.create((com.seavision.huayi2.service.IWebservicePortType.class), props); { AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://service.huayi2.seavision.com", "IWebservicePortTypeLocalBinding"), "urn:xfire:transport:local"); } { AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://service.huayi2.seavision.com", "IWebserviceHttpBinding"), "http://schemas.xmlsoap.org/soap/http"); } } public IWebservicePortType getIWebservicePortTypeLocalEndpoint() { return ((IWebservicePortType)(this).getEndpoint(new QName("http://service.huayi2.seavision.com", "IWebservicePortTypeLocalEndpoint"))); } public IWebservicePortType getIWebservicePortTypeLocalEndpoint(String url) { IWebservicePortType var = getIWebservicePortTypeLocalEndpoint(); org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); return var; } public IWebservicePortType getIWebserviceHttpPort() { return ((IWebservicePortType)(this).getEndpoint(new QName("http://service.huayi2.seavision.com", "IWebserviceHttpPort"))); } public IWebservicePortType getIWebserviceHttpPort(String url) { IWebservicePortType var = getIWebserviceHttpPort(); org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); return var; } public static void main(String[] args) { IWebserviceClient client = new IWebserviceClient(); //create a default service endpoint IWebservicePortType service = client.getIWebserviceHttpPort(); /** * 使用ObjectFactory插入 * */ com.seavision.huayi2.domain.ObjectFactory cfactory=new com.seavision.huayi2.domain.ObjectFactory(); com.seavision.huayi2.domain.TStationMonthReport newTStationMonthReport = cfactory.createTStationMonthReport(); newTStationMonthReport.setStationMonthReportId(cfactory.createTStationMonthReportStationMonthReportId("123465464864")); // /** * 使用JAXBElement插入 * */ // JAXBElement<String> id = new JAXBElement<String>(new // QName("http://domain.huayi2.seavision.com", "stationMonthReportId"),String.class,"gefa"); // newTStationMonthReport.setStationMonthReportId(id); service.insertYueJiHua(newTStationMonthReport); /** * 测试返回list结果 * */ ArrayOfTBusinsessLog aot = service.getYeWuList(); List list = aot.getTBusinsessLog(); System.out.println(list.size()); for(int i=0;i<list.size();i++){ TBusinsessLog tlog = (TBusinsessLog) list.get(i); System.out.println(i+"++++++"+tlog.getLogContent().getValue()); } //TODO: Add custom client code here // //service.yourServiceOperationHere(); System.out.println("test client completed"); System.exit(0); } }
注意以下内容,1:返回list内容,先存放入Arrayof**对象当中,再进行list遍历。
2: 对象属性取值,getValue();
3:对象属性封装,通过JAXBElement进行封装后,放入对象。
相关推荐
本附件下载自 http://www.javaeye.com/topic/626010
原址:http://www.javaeye.com/topic/211875 其他:http://www.17ext.com/showtopic-2753.aspx 欢迎加入QQ群:62150370 进行extjs的讨论 如果你没有安装mysql5.0,在安装数据库时,请把root密码设置为neostudio 如果已...
原址:http://www.javaeye.com/topic/211875 其他:http://www.17ext.com/showtopic-2753.aspx 欢迎加入QQ群:62150370 进行extjs的讨论 如果你没有安装mysql5.0,在安装数据库时,请把root密码设置为neostudio 如果已...
原址:http://www.javaeye.com/topic/211875 其他:http://www.17ext.com/showtopic-2753.aspx 讨论Q_群:62150370(群1) 76202406(群2) 91986229(群3) 一起讨论 如果你没有安装mysql5.0,在安装数据库时,请把root密码...
http://www.javaeye.com/topic/52975 只不过有些不同: 1. 我的spring使用myeclipse向导加入的2.5版本 (附件中不包含) 2. 我加入的是(源代码中已存在): acegi-security-1.0.7.jar 加入了数据库驱动(mysql5...
---javaeye相关地址:http://www.javaeye.com/topic/379655 ---Java版山寨星际 做了一大堆J2EE WEB应用之后,闲来无事决定研究一下桌面应用程序开发。 想了一下干脆做个Java版的星际,研究的对象就是星际的JS山寨版...
详情请参考 http://www.javaeye.com/topic/170187
http://www.javaeye.com/topic/372233
Hibernate 缓存详细介绍http://www.javaeye.com/wiki/topic/571245
网上看到一个有关SQL*PLUS的文章,比较不错。在这里与大家分享。 原作者网址:http://www.javaeye.com/topic/423094
从javaeye上下载别人的例子,感觉不错 另外在这里有详细介绍 http://www.javaeye.com/topic/100499?page=1
刚翻译完成的 Mootools v1.11 中文文档(完整版,文档格式CHM) 转自 http://www.javaeye.com/topic/126290
xfire+weblogic8+jdk1.4所需要的jar包,包括客户端开发所需要的jar包,使用说明请见http://www.javaeye.com/topic/361269
转自 http://www.javaeye.com/topic/890512 MyEclipse6.5的反编译插件的安装 我的MyEclipse6.5的安 装目录是D:\MyEclipse 6.5,以下仅供参考 第一步: 下载jad.exe(Jad v1.5.8g版本)和net.sf.jadclipse_3.3.0.jar;...
Flexigrid-Web2.0 jQuery表格插件 Flexigrid 是一个轻量级的Web2.0 jQuery插件。它包含很多非常Cool的特性,如主题定制、分页、工具栏、搜索、排序、ajax读取数据源、调整列宽...http://www.javaeye.com/topic/414611
ruby勇士,初学者边游戏边学习ruby的好玩的东西。具体玩法在 http://www.javaeye.com/topic/383938,或者Google一下“ruby勇士”。因为下载游戏的网站有时访问不了,上传一下提供下载。
http://www.javaeye.com/topic/128973 1 struts2表单标签 1 1、struts资源文件中文解决方法 1 2、开发struts2流程 1 3、创建拦截器: 2 4.标签中引用资源文件内容 3 5.创建资源文件 3 6.Action中访问servlet API 3...
http://www.javaeye.com/topic/80620?page=1 的帖子有讨论的这个问题。可能是由于这些框架会动态class,而且jvm的gc是不会清理PemGen space的,导致内存溢出。 这一个一般是加大-XX:PermSize -XX:MaxPermSize 来...
Web Chart Flot - Flot 为 jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域等)。 ... • AmCharts - AmCharts ... GoogleChart - http://www.javaeye.com/topic/219853
前言:本资源来自于javaeye,原资源链接地址:http://www.javaeye.com/topic/67398 原文如下: 以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的...