Spring.Net封闭业务类为WebService注意点和问题
最近遇到的一个项目中用到了标题所说的方法,用Spring.Net将业务类封闭成WebService供其它地方调用使用,感觉还是蛮新鲜的,于是在园子中搜了一篇园友写的文章(这里)自己也尝试着搭了一个环境,最后是顺利跑了起来,但是中间遇到了几个问题,这里记录一下。
具体的搭建方法不再赘述,上面的文章写的比较清楚了,主要问题:
1、配置文件引入方式
在配置文件web.config中引用spring.net的配置文件时,我并没有像上面文章中一样建了一个新的配置文件而是建了一个叫settings.xml的xml文件,但是效果是一样的,spring.net都能识别的,因为config文件本身就是一个xml文件。然后在web.confg文件中的context节点中引入配置文件,依照上面文章中的写法<resource uri="~/settings.xml"/>是没问题的,可以成功启动并完成封装,但是用另外一种方式时<resource uri="aeesmbly://Spring.Net/Spring.Net/settings.xml"/>(一般来说我们在实际的项目中会用这种方式,因为我们都会对项目进行分层,不同的层关注并处理不同的业务,上面那种方法适用于引用当前项目集中的配置文件,要引用其它项目集中的配置文件时就要用这种方式),出了问题,会抛出InputStream为null的错误,其实就是没有找到配置文件,原因是没有把settings.xml文件设置为“嵌入的文件”(在属性中设置)。
2、调用远程调用问题
启动成功后点击页面上的方法名然后点击调用按钮能看到返回结果,但是在另一个项目里用WebClient进行调用时却出了问题,抛出“远程服务器关闭了一个现有连接”,然后发现只能用点击调用按钮的方式才能看到结果,换个浏览器把地址复制进去回车也不能用。原因是没有在配置文件web.config添加远程调用协议,在system.web节点下添加如下代码即可。
<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>
3、返回值问题
使用这种方式封装的WebService有个问题目前我还未找到解决办法,就是返回值是xml类型的,不能通过在请求头信息里面设置类型的方式控制返回值类型(如json格式),都是xml类型的string字符串。
Spring.Net封闭业务类为WebService注意点和问题的更多相关文章
- Spring容器装饰者模式应用之实现业务类与服务类自由组合的解决方式
在不论什么一个项目中都不可或缺的存在两种bean,一种是实现系统核心功能的bean,我们称之为业务类,第二种是与系统核心业务无关但同一时候又提供十分重要服务bean,我们称之为服务类.业务类的bean ...
- 利用spring、cxf编写并发布webservice
配置文件spring-wsServer.xml <?xml version="1.0" encoding="UTF-8"?> <beans x ...
- Spring AOP 创建增强类
AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring支持5种类型的增强: 1)前置增强:org.springframework.aop.BeforeAd ...
- Quartz总结(二):定时任务中使用业务类(XXService)
零.引言 上一篇文章:讲到了Spring集成Quartz的几种基本方法. 在实际使用的时候,往往会在定时任务中调用某个业务类中的方法,此时使用QuartzJobBean和MethodInvokeJob ...
- spring 配置 Java配置类装配bean
https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...
- 使用Spring和Tomcat发布CXF SOAP WebService
上一节中使用代理工厂JaxWsProxyFactoryBean来发布WebService, 这种方式必须指定运行的端口,如果端口被占用,就会发布失败. cxf的WebService也可利用Tomcat ...
- Spring 的优秀工具类盘点
文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...
- Spring的StringUtils工具类
本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:<Spring的StringUtils工具类> org.springframework.util.StringU ...
- Spring 的优秀工具类盘点第 2 部分
特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题. ...
随机推荐
- [转]IIS应用程序池经典模式转集成模式解决方案
经典模式和集成模式的区别: IIS7.0中的Web应用程序有两种配置形式:经典形式和集成形式. 经典形式是为了与之前的版本兼容,运用ISAPI扩展来调用ASP.NET运转库,原先运转于IIS6.0下的 ...
- 《java与模式》阅读笔记02
java语言的接口 在之前的编程作业中,我或多或少都用到了java的接口,但是接口的具体意思是什么,又该如何更好的使用呢?这个确实一知半解,带着这个问题我读了关于这些内容的章节. 所谓接口(inter ...
- python 内置元祖子类
a = (zhangsan,20,nv,123@163.com) 输出姓名 a[0] 输出年龄 a[1] 输出性别 a[2] ..... 这样写可读性非常低 使用 内置元祖子类 from collec ...
- Linux进程的原理及与信号的联系
第1节 程序.进程.守护进程.僵尸进程的区别 程序.进程.守护进程.僵尸进程: 程序:c/php/java,代码文件,静态的,放在磁盘里的数据. 进程:正在内存中运行的程序,进程是动态的,会申请和使用 ...
- FOB cost---从工厂到码头的费用
1.主要是港杂费:陆运400元起,2个方450元,三个方500元,3个方以上按100元/方算起.
- kafka 学习笔记
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- Python学习笔记-常用内置函数
输出:print() 功能:输出打印 语法:print(*objects, sep=' ', end='\n', file=sys.stdout) 参数:objects----复数,表示可以一次输出多 ...
- 开启FIPS协议
Open the 'Run' menu by pressing the combination 'Windows Key + R'.Type 'secpol.msc' and press 'Enter ...
- tween 缓动动画
在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...
- 重写comparater比较器
TreeSet 能自动对对象进行排序,但是一般需要在类中重写比较方法 比较器介绍 在类中实现Comparable接口,并重写compareTo方法 排序对象类 package typing.overr ...