我可以同时使用 SOAP Webservices 和 Spring MVC

2024-01-27

我有一个 Spring MVC 项目。我写了一段类似的代码

@Controller
@RequestMapping("CallBack")
@WebService(name = "NotificationToCP", targetNamespace = "http://SubscriptionEngine.ibm.com")
public class CallbackController {

    @RequestMapping("")
    @ResponseBody
    @WebMethod(action = "notificationToCP")
    @RequestWrapper(localName = "notificationToCP", targetNamespace = "http://SubscriptionEngine.ibm.com", className = "in.co.mobiz.airtelVAS.model.NotificationToCP_Type")
    @ResponseWrapper(localName = "notificationToCPResponse", targetNamespace = "http://SubscriptionEngine.ibm.com", className = "in.co.mobiz.airtelVAS.model.NotificationToCPResponse")
    public NotificationToCPResponse index(
            @WebParam(name = "notificationRespDTO", targetNamespace = "") CPNotificationRespDTO notificationRespDTO) {
        return new NotificationToCPResponse();
    }
}

我可以一起使用 Spring MVC + Webservices 吗?我想要的只是一个接受 SOAP 请求并处理它的控制器。 url 必须是 /CallBack。作为一个新手,我仍然感到困惑。像上面这样的东西会起作用吗?否则我该如何让它继续下去。


我不会将 Spring MVC 和 SOAP Webservice (JAX-WS) 混合在一起,因为它们有不同的用途。

更好的做法是将业务操作封装在服务类中,并使用 MVC 控制器和 JAX-WS 公开它。例如:

你好服务

@Service
public class HelloService {
    public String sayHello() {
        return "hello world";
    }
}

HelloController 通过自动装配注入了 HelloService 引用。这是标准 Spring MVC 控制器,它调用服务并将结果作为模型传递给视图(例如:hello.jsp 视图)

@Controller
@RequestMapping("/hello")
public class HelloController {
    @Autowired private HelloService helloService;

    @RequestMapping(method = RequestMethod.GET)
    public String get(Model model) {
        model.addAttribute("message", helloService.sayHello());
        return "hello";
    }
}

JAX-WS 端点也调用相同的服务。不同之处在于该服务作为 SOAP Web 服务公开

@WebService(serviceName="HelloService")
public class HelloServiceEndpoint {
    @Autowired private HelloService helloService;

    @WebMethod
    public String sayHello() {
        return helloService.sayHello();
    }
}

请注意,上面的 JAX-WS 样式 Web 服务不能保证在所有 Spring 部署中自动工作,特别是部署在非 Java EE 环境 (tomcat) 上时。可能需要额外的设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以同时使用 SOAP Webservices 和 Spring MVC 的相关文章

随机推荐

  • 迭代c中的结构体

    我正在编写一个与此代码类似的单元测试 并且我正在尝试在设置值时测试它们 以便我知道发生了什么 当我运行以下代码时 我不明白为什么 ptr 值没有设置为 1 相反 当我运行它时 它给出的输出为 10 64 0 0 任何解释或建议将不胜感激 i
  • VBS 中的 MSGbox 根据变量值进行更新

    只是想知道我如何拥有一个 MSgbox 来显示不断变化的变量值 基本上 一个数字每次循环时都会添加一个 我想在不必打开一百万个窗口的 MSGbox 中显示它 解决方法是使用PopUp Set objShell WScript CreateO
  • 如何将值查询集的值追加到数组?

    我的观点 py from django db models import Count def test1 request states Loksabha objects values state distinct state terms L
  • Ionic 导航栏:标题未在 Android 设备上居中

    我对 Ionic 很陌生 但我已经喜欢它了 我想用nav bar所以我实现了以下index html
  • 编写不使用循环索引的 for 循环的 Pythonic 方法[重复]

    这个问题在这里已经有答案了 这与以下代码有关 该代码使用 for 循环生成一系列随机偏移量以供程序中其他地方使用 该 for 循环的索引未使用 这导致 Eclipse PyDev 将 有问题的 代码突出显示为警告 def RandomSam
  • 如何在 Actionscript 3 中将十六进制转换为十进制?

    如何在 Actionscript3 中将十六进制 字符串 转换为十进制 int Number int and uint类有toString 接受的方法radix作为参数 radix指定用于数字到字符串转换的数字基数 从 2 到 36 如果不
  • 如何从 DOM 中删除 element.nativeElement?

    我尝试了这样的方法 ViewChild draggable private draggableElement ElementRef this draggableElement nativeElement remove HTML div Bl
  • MVC3 ajax 将多个复选框值发送到控制器

    我正在尝试使用 MVC3 来完成以下任务 我有一个包含多个值的表 使用ajax我希望能够选择作为表一部分的删除复选框 对于任意数量的行 使用ajax将结果发布到控制器进行处理 我目前遇到的问题是我无法让控制器接受来自 ajax post 的
  • Websocket 因 1006 错误而断开连接,无原因

    我正在我的网页游戏中记录断开连接 似乎 75 的会话因代码 1001 正常 而断开连接 25 的会话因代码 1006 错误 而断开连接 https www rfc editor org rfc rfc6455 https www rfc e
  • 五个不同的 GAE 站点可以共享一个公共数据存储吗?

    除了特定站点的数据存储之外 您是否还可以在所有网站之间共享一个数据存储 比如连接到与主 MySQL 数据库不同的 MySQL 数据库 并不真地 两种解决方法 使用同一应用程序的五个 版本 而不是五个不同的应用程序 他们将共享相同的数据存储
  • 将 python django 项目 1.3 升级到 1.5

    目前我有一个使用 django 版本 1 3 的 python 项目在 Mountain Lion OS 上运行 现在我想将其升级到 django 1 5 但是当我把它放在尝试做的时候python manage py runserver我收
  • 具有 SFINAE 虚拟参数的不明确模板

    考虑一种需要验证类型的情况T与另一个模板g 可能是一些enable if表达式 例如 在另一个模板的虚拟参数内 如下所示 template
  • ConnectionString 属性尚未初始化

    我查看了不同论坛上的很多帖子 其他人也收到了同样的错误 大多数人表示他们没有正确引用 web config 文件中的连接字符串 或者他们在设置连接字符串之前尝试打开连接 好吧 如果对我来说是这种情况 那么它如何在两个不同的系统上工作 但在第
  • 如何在 CertCreate 自签名证书函数中指定密钥大小

    我正在使用该功能证书创建自签名证书 https msdn microsoft com en us library windows desktop aa376039 v vs 85 aspx生成证书 我需要指定密钥大小2048 我不知道如何提
  • javascript按索引号进行字符串分配怪癖

    a 12345 a 2 3 a 2 9 console log a gt 12345 到底是怎么回事 这个怪癖导致我痛苦地调试了1个小时 如何以明智的方式避免这种情况 不能使用方括号重写字符串中的各个字符 仅 getter 即读取 访问可用
  • Github 操作 `on` 中没有定义事件触发器

    我创建了一个管道 我想在每次推送任何分支时触发 有我的default yml name default on push branches jobs build runs on macOS latest steps uses actions
  • 模板类的 typedef?

    是否有可能typedef使用模板的长类型 例如 template
  • 反应本机要求不适用于图像源

    给出下面的代码 反应本机抱怨 Requiring unknown module images Foo png If you are sure the module is there try restarting the packager o
  • 在 Android 中使用 OpenCV 检测图像中的圆圈

    我正在开发一个安卓应用程序其中我必须检测现有图像上的圆圈 从图库浏览或从相机捕获 浏览 捕获的图像将显示在 ImageView 上 顺便说一句 我正在使用OpenCV Android 库我正确地编译了它 对我的 Android 应用程序有任
  • 我可以同时使用 SOAP Webservices 和 Spring MVC

    我有一个 Spring MVC 项目 我写了一段类似的代码 Controller RequestMapping CallBack WebService name NotificationToCP targetNamespace http S