最近遇到的一个项目中用到了标题所说的方法,用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注意点和问题的更多相关文章

  1. Spring容器装饰者模式应用之实现业务类与服务类自由组合的解决方式

    在不论什么一个项目中都不可或缺的存在两种bean,一种是实现系统核心功能的bean,我们称之为业务类,第二种是与系统核心业务无关但同一时候又提供十分重要服务bean,我们称之为服务类.业务类的bean ...

  2. 利用spring、cxf编写并发布webservice

    配置文件spring-wsServer.xml <?xml version="1.0" encoding="UTF-8"?> <beans x ...

  3. Spring AOP 创建增强类

    AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring支持5种类型的增强:     1)前置增强:org.springframework.aop.BeforeAd ...

  4. Quartz总结(二):定时任务中使用业务类(XXService)

    零.引言 上一篇文章:讲到了Spring集成Quartz的几种基本方法. 在实际使用的时候,往往会在定时任务中调用某个业务类中的方法,此时使用QuartzJobBean和MethodInvokeJob ...

  5. spring 配置 Java配置类装配bean

    https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...

  6. 使用Spring和Tomcat发布CXF SOAP WebService

    上一节中使用代理工厂JaxWsProxyFactoryBean来发布WebService, 这种方式必须指定运行的端口,如果端口被占用,就会发布失败. cxf的WebService也可利用Tomcat ...

  7. Spring 的优秀工具类盘点

    文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...

  8. Spring的StringUtils工具类

    本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:<Spring的StringUtils工具类> org.springframework.util.StringU ...

  9. Spring 的优秀工具类盘点第 2 部分

    特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题. ...

随机推荐

  1. java正则表达式 需要转义的字符

    特别字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或‘\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子 ...

  2. R语言-线图(二)

      1.线图示例 plot()为高水平作图命令,axis().lines().legend()都为低水平作图命令 > rain<-read.csv("cityrain.csv&q ...

  3. 2019.3.28 S21 day02pyth笔记总结

    昨日内容补充: 1.字符串:'中国'    'Hello' 字符:中是一个字符,e是一个字符 字节:中是3个字节,e是1个字节 位:01010101是8位,其中0或1分别是1位 unicode用于内存 ...

  4. Mysql连接数太多ERROR 1040 (HY000): Too many connections

    数据库连接报错:ERROR 1040 (HY000): Too many connections   1.查看连接数 /usr/local/mysql/bin/mysqladmin -h host - ...

  5. 秦殇 xbm buffer

    秦殇的图片是封装在lib文件中的, 而且格式为xbm, xbm具体的结构

  6. RESTful API格式 图片验证码接口

    之前公司写图片验证码时用的是session 后来写接口时也想用session存验证码  不过领导说RESTful API 写接口 没有session这一说 于是就用了redis 存验证码 还有就是接口 ...

  7. c# NPOI 导出EXCEL (在下方显示图片)

    需要引入dll文件 也可以在NuGet里面管理(推荐) 比较方便 . using System; using System.Collections.Generic; using System.Linq ...

  8. JS游戏控制时间代码

    var canvas = new HGAME.canvas();var testBox=document.getElementById('boxRender');testBox.appendChild ...

  9. HTML中的Meta标签详解

    emta标签的组成:meta标签分两大部分:HTTP-EQUIV和NAME变量. HTTP-EQUIV:HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显 ...

  10. Yii2增删改查

    Controller <?php namespace frontend\controllers; use frontend\models\User; use yii\data\Paginatio ...