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 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题. ...
 
随机推荐
- R语言-散点图进阶
			
1.分组散点图 ①xyplot()函数 > library(lattice) > xyplot(mpg~disp, #定义Y~X轴 + data=mtcars, + groups=cyl, ...
 - python--第十天总结(IO多路复用)
			
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking IO):默认创建的s ...
 - 关于前端设置cookie
			
cookie既可以后端设置也可以在前端设置,例如登陆/注册功能,每次都要向服务器请求用户数据,这种就可以把cookie放到前端储存起来. 当网页要发http请求时,浏览器会先检查是否有相应的cooki ...
 - CentOS_mini下安装docker之 安装 golang
			
取消挂载: 命令:umount /mnt/cdrom 下载 Go 语言文件 -bit Linux wget http://www.golangtc.com/static/go/go1.4.2.linu ...
 - slf4j 日志组件
			
slf4j:Simple Logging Facade for Java 官网:https://www.slf4j.org/
 - jdbc随笔
			
通过jdbc连接数据库的基本步骤: 导入jar包驱动类 jdbc语法:jdbc:子协议:厂商内容 对于mysql而言:jdbc:mysql://主机地址:端口号/库名 ...
 - 学习:java集合
			
java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, Jav ...
 - android 学习网站
			
菜鸟教程 http://www.runoob.com/android/android-tutorial.html Android基础入门教程 http://www.runoob.com/w3cnot ...
 - java内存模型和垃圾回收(收藏)
			
java内存模型: https://www.cnblogs.com/handsomeye/p/5442879.html java垃圾回收 http://www.cnblogs.com/handsome ...
 - async/await让你的代码更加优雅
			
一. 回调地狱:回调函数里面嵌套着回调函数嵌套着回调函数”,这就是被传说中的“回调地狱callbackHell () { const api = new Api() let user, friends ...