webService怎么返回map类型

WebService开发 - CXF(4) - 服务端返回Map类型数据 博主个人教程地址 前言 之前说完了JavaBean的传递 今天来说一下Map类型的传递 Map类型传递 其实主要的还是针对的服务端的类型转换 所以主要修改的代码时在服务端的 我们还是按照正常的思路在扩充方法 来看一下会出现什么错误吧 还是在我们的接口中新增一个方法 返回一个Map类型的结构 代码如下 /* 获取所有用户角色 */ Map<String,List<Role>&g... 阅读详情
CXF形参、返回值
1. 当形参和返回值的类型是String、基本数据类型是,CXF肯定可以轻松处理
2.当形参和返回值的类型是javabean式的复合类(就是普通的POJO实体类)、List集合、数组等复杂类型时, CXF也可以很好处理。
3.还有一些像Map、非javabean式的复合类,CXF是处理不了的
   如果遇到系统无法自动处理的类型,就需要程序员自行处理,方法是提供一个转化器,该转化器负责把CXF不能处理的类型,转化为CXF能够处理的类型,具体过程如下:
(1) 使用注解 @XmlJavaTypeAdapter(java自身的注解,可在jdkAPI文档中查到)修饰CXF无法自动处理的类型,使用该Annotation时,通过value属性指定一个转换器(自己定义)。
@XmlJavaTypeAdapter (value="MyXmlAdapter.class") 


(2) 实现自己定义的转化器,实现转化器时,需要开发一个CXF能够处理的类型。


1. 注解@XmlJavaTypeAdapter标识返回值为Map的接口

  1. @WebService  
  2. public interface HelloWorld {  
  3.       
  4.     @XmlJavaTypeAdapter((XmlMapAdapter.class)) Map<String, String> getSpace(String deviceIp);  
  5.       
  6. }  

实现类保持不变:
  1. @Component("hello")  
  2. @WebService(endpointInterface = "demo.spring.service.HelloWorld")  
  3. public class HelloWorldImpl implements HelloWorld {  
  4.   
  5.     public Map<String, String> getSpace(String deviceIp) {  
  6.         // TODO Auto-generated method stub  
  7.         HashMap<String, String> test = new HashMap<String,String>();  
  8.         test.put("test",  "10.5");  
  9.         test.put("ip", deviceIp);  
  10.           
  11.         System.out.println("deviceIp: " + deviceIp);  
  12.           
  13.         return test;  
  14.     }  
  15. }  

     2.定义自行创建的XmlMapAdapter类型
  1. public class XmlMapAdapter extends XmlAdapter<MyStringMap, Map<String, String>> {  
  2.   
  3.     @Override  
  4.     public Map<String, String> unmarshal(MyStringMap v) throws Exception {  
  5.         // TODO Auto-generated method stub  
  6.           
  7.         Map<String, String> result = new HashMap<String, String>();  
  8.           
  9.         for (Entry entry : v.getEntries()) {  
  10.             result.put(entry.getKey(), entry.getValue());  
  11.         }  
  12.           
  13.         return result;  
  14.     }  
  15.   
  16.     @Override  
  17.     public MyStringMap marshal(Map<String, String> v) throws Exception {  
  18.         // TODO Auto-generated method stub  
  19.         MyStringMap msm = new MyStringMap();  
  20.         List<Entry> eList = new ArrayList<Entry>();  
  21.         for(String key : v.keySet()) {  
  22.               
  23.             Entry entry = new Entry();  
  24.             entry.setKey(key);  
  25.             entry.setValue(v.get(key));  
  26.             eList.add(entry);  
  27.         }  
  28.         msm.setEntries(eList);  
  29.         return msm;  
  30.     }    
  31.   
  32. }  

通过继承XmlAdapter<ValueType,BoundType>类型,便可已将CXF不能处理的类型进行转换。
jdkAPI中定义如下,valuType是能够处理的类型,boundType是不能处理的类型:
转化的实质是将不能处理的类型,如Map,将其值取出,赋予另一个实体类,这个类模拟Map,保存他的值,这样便是可以进行相互转化。为此,需要定义一个Map的模拟类,这样Map的key和value都保存在Entry类中(Entry自行定义,名字也可以随便,只要符合命名规范就行),所有的Entry保存在List中,这样一个Map集合就转化成了MyStringMap类,MyStringMap自然也可以转化为Map类:
  1. public class MyStringMap {  
  2.       
  3.     private List<Entry> entries;  
  4.   
  5.     /**  
  6.      * @return entries  
  7.      */  
  8.     public List<Entry> getEntries() {  
  9.         return entries;  
  10.     }  
  11.   
  12.     /**  
  13.      * @param entries the entries to set  
  14.      */  
  15.     public void setEntries(List<Entry> entries) {  
  16.         this.entries = entries;  
  17.     }  
  18.       
  19.     public static class Entry {  
  20.         private String key;  
  21.         private String value;  
  22.         /**  
  23.          * @return key  
  24.          */  
  25.         public String getKey() {  
  26.             return key;  
  27.         }  
  28.         /**  
  29.          * @param key the key to set  
  30.          */  
  31.         public void setKey(String key) {  
  32.             this.key = key;  
  33.         }  
  34.         /**  
  35.          * @return value  
  36.          */  
  37.         public String getValue() {  
  38.             return value;  
  39.         }  
  40.         /**  
  41.          * @param value the value to set  
  42.          */  
  43.         public void setValue(String value) {  
  44.             this.value = value;  
  45.         }  
  46.           
  47.           
  48.     }         
  49. }  


3.部署项目到tomcat中,启动,如能访问到WSDL文件,WSDL发布成功。
4.使用命令生成客户端,具体方法见博文。
5.测试客户端:

  1. public static void main(String []args) {  
  2.        HelloWorldImplService service = new HelloWorldImplService();  
  3.         
  4.        HelloWorld hw = service.getHelloWorldImplPort();  
  5.         
  6.        MyStringMap msm = hw.getSpace("");  
  7.         
  8.        List<Entry> entries = msm.getEntries();  
  9.         
  10.        for (Entry e : entries) {  
  11.            System.out.println("key: " + e.getKey() + " " + "value: " + e.getValue());  
  12.        }  
  13.    }  

结果如下
  1. 2013-4-3 15:56:19 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL  
  2. 信息: Creating Service {http://service.spring.demo/}HelloWorldImplService from WSDL: http://192.168.1.133:8088/CXFUseCase/services/helloWorld?wsdl  
  3. key: test value: 10.5  
  4. key: ip value: 192.168.3.51  
webservice Xfire 调用 返回值类型为map时,数据为空的问题 关键的问题在于: 1、一定要使用ObjectServiceFactory的create(Class clazz, String name, String namespace, Map properties)方法,传递namespace参数。这个参数和services.xml中的namespace参数要一致。 2、一定要配置XXX.aegis.xml文件。虽然在参数和返回为集合时,在使用泛型的情况下,可以不用配置此文件,但是只要参数和返回值直接或间接的包括了Map,那么此map就在调用时就会为空。 阅读详情

相关推荐

433MHz无线通信

基本概念 工作频率:433.92MHz 调制方式:ASK/OOK,FSK,GFSK 现有遥控与接收器方案中,多数使用ASK/OOK调试方式。ASK即“幅移键控”又称为“振幅键控”,也有称为“开关键控”(通断键控)的,所以又记作OOK(On-Off keyed)信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,不同的是与载频信号相乘的是二进制数码。幅移就是把频...

沧海孤叶的博客 5万+

WebService响应报文转换为map(某些情况下)

文章目录转换webService响应报文为map示例 转换webService响应报文为map 最近项目组有需求调用其他系统webService服务,由于对方没有提供wsdl文件,无法通过axios自动生成相应的代码,就只好手动写一个实际上为xml报文转换为map的方法(适用于对方返回报文硬拼的情况): //首先格式化对方返回的报文结果 public static String formatXML(String unformatedXML) { if(StringUtils.isEmpty(unfor.

qq_39135880的博客 1060

关于使用vcpkg下载osgearth遇到的问题

注意--x-manifest-root=后面跟着的E:\gitproject\osgearth-osgearth-3.5\vcpkg是你下载的源码解压缩后vcpkg.json的文件地址,然后等待编译完成。安装vcpkg后使用vcpkg install osgearth:x64-windows安装好osgearth并且导入项目使用时,发现无法运行官方文档中示例的main.cpp。这里写一种自己用过的使用vcpkg安装osgearth3.5的方法,源码,打开vcpkg所在的命令行,执行。示例main.cpp。

m0_61776040的博客 1525

如何处理 WebService 中的 Map 对象?

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34144450的博客 342

华为云Stack应急预案实战:从IaaS到PaaS的故障场景与恢复指南

本文详细解析华为云Stack应急预案在IaaS到PaaS层的故障场景与恢复实践,涵盖计算节点故障、存储链路中断等典型问题。通过标准化操作流程和实战案例,帮助企业在突发故障时快速恢复业务,确保高可用性。华为云Stack的应急预案体系经过金融、政务等严苛场景验证,恢复时间指标(RTO)控制在30分钟以内。

weixin_33724059的博客 373

Python+Vue计算机毕业设计风电场监控系统的设计与实现7bd6i(程序+LW+源码+部署)

Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+Vue+Pychram社区版。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2.IDE环境:Python和Python 社区版都可以。Django + Vue +Python+Mysql 等等组成,B/S模式等等。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。1. 后端:Python、Vue、Django、Mysql。

华信计算机毕设源码程序 342

java 调用webservice 接口,并解析返回参数

【代码】java 调用webservice 接口,并解析返回参数。

weixin_47056195的博客 5216

OnePose++: Keypoint-Free One-Shot Object Pose Estimation without CAD Models

算法:首先采用LoFTR的细匹配模块,将粗匹配点周围的小窗口内,通过对比特征找到最相似的位置,细化当前特征点的位置。算法:PnP算法,利用3D点和2D投影点的对应关系,计算相机相对于物体的6D姿态(位置朝向)。算法:使用COLMAP,对2D粗匹配对(不依赖传统关键点匹配)进行特征轨迹计算并生成半稠密点云,每个3D点包含坐标和对应的2D投影点。算法:LoFTR粗匹配模块,将每一个像素点视为伪关键点,生成半稠密的2D匹配对。输入:优化后的3D、当前视图的2D特征点。输出:粗半稠密点云以及物体的特征轨迹。

雨落倾城的博客 886

Vue 高德地图(@amap/amap-jsapi-loader)的基本使用:添加标记、POI关键字搜索、路线规划...(方法一)

Vue高德地图的基本事件与使用(添加标记、POI关键字搜索、路线规划)地图鼠标点击点图,添加标记,POI关键字搜索,驾车路线规划(路线展示、途经点等)

qq_37831545的博客 1万+

航空电子系统标准全景图:ARP4754A、ARP4761、DO-178C、DO-254 的协同作用

通过 ARP4754A、ARP4761、DO-178C 和 DO-254 的相互配合,确保航空电子系统的安全性和功能性在开发过程中得到充分保障。每一个文件在不同层面发挥作用,共同构成了一个完整的、系统的开发和验证框架,确保航空电子设备达到适航要求。这些标准不仅帮助开发人员有条理地开发复杂的航空系统,还确保所有系统组件(软件和硬件)在整个生命周期内都能满足最严格的安全和可靠性要求。

qq_41854911的博客 1812

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

224

webservice返回值为Map类型的处理方法

在写一个webservice的时候,方法的返回值是一个复杂类型,处理方法是写一个结果类(Javabean)作为返回值。想着webservice方法返回值为Map的没写过,然后就试着写了一个简单的Demo。出错了...那我就来劲了,总有办法解决吧.... 通过百度(你有Google癖好就用Google吧)。。找到方法,通过前辈们的经验找到解决方法。 业内人士都懂!注重版权,奉上原文...

acgtsunzeshi0001的博客 763

【二】MADDPG多智能体算法实现(parl)【追逐游戏复现】

论文全称:Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments 论文原文:https://download.youkuaiyun.com/download/sinat_39620217/16203960 论文翻译:https://blog.youkuaiyun.com/qiusuoxiaozi/article/details/79066612 ...

丨汀、的博客 2万+

cxf spring webservice返回map类型

文章目录前言一、代码1.pom文件2. web.xml3. beans.xml4. log4j.properties5. StudentService6. StudentServiceImpl7. StudentVO8. Teacher总结 前言 是不是讨厌网上博客里main方法发布webserive接口,呢,实际公司中谁用那. 本片博客可食用知识点:1 cxf整合spring发布webservice接口 2 返回map数据 *为了防止你们食指滚不动了 本博主贴心的吧代码弄成一行了 * 一、代码 1.po

qq_42114504的博客 553

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

CXF2.7整合spring发布webservice,返回值类型是Map和List<Map>类型

     在昨天研究了发布CXF发布webservice之后想着将以前的项目发布webservice接口,可是怎么也发布不起来,服务启动失败,原来是自己的接口有返回值类型是Map。   研究了一番之后,发现:     webService可以处理Java 数据类型、JavaBean、List等,但是却不能处理Map数据类型,也不能返回List&lt;Map&gt;类型数据。于是做了两个研究:...

weixin_34232363的博客 265

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Apache CXF实战之八 Map类型绑定

本文链接:http://blog.youkuaiyun.com/kongxx/article/details/7544640Apache CXF实战之一 Hello World Web ServiceApache CXF实战之二 集成Sping与Web容器Apache CXF实战之三 传输Java对象 Apache CXF实战之四 构建RESTful Web Service Apache CXF实战之五 压缩

kongxx的专栏 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

关于C#访问JAVA中的map类型的体会

 最近,有个项目需要用到WebService的一些调用.对方的Webservice服务程序是用JAVA开发的,现在要在C#中调用.一般的类型数据还可以,但遇到了map类型的数据到是费了不少的周折,下面就将具体实现写出来与大家一起讨论.定义访问对象:UserService.FaxUserService service = new UserService.FaxUserService(); 验证:

wk99239的专栏 2415

mybatis返回值为int_mybatis 返回值类型是Map

SELECT member_id ,expireFROM member_key_make_upWHERE member_key = #{memberKey,jdbcType=VARCHAR}public interface MemberKeyMakeUpMapper {HashMap selectByMemberKey(@Param("memberKey")String memberKey);}p...

weixin_39864601的博客 1280

xfire webService返回Map<String,List<E>>嵌套复杂类型

做WebService接口时,需要返回的类型为Map>复杂类型。需要配置aegis.xml文件。配置文件如下所示: 说明: keyType代表Map的key的类型。 componentType代表Map的value的类型。value的类型为List,由于List使用了泛型类型,

qingmengwuhen1的博客 1590

CXF学习04---处理MAP等CXF无法自动转换的复合数据类型的形参和返回值

当在web 2014-5-2 17:11:38 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 信息: Creating Service {http://impl.cxf.ws.onyas.com/}HelloWorldWs from class com.onyas.ws.

奋斗、 2612
上一篇: 关于powerdesigner conntion not test 问题解决方案
下一篇: js实现图片轮播
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值