`
demon3780
  • 浏览: 84317 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

基于jax-ws webservice开发中spring与axis2整合问题

阅读更多

最近做一个联通彩信接入的上行模块开发时碰到的问题。

需求描述:开发一个webservice接收来自彩信中心的消息(MO)

使用框架:spring2.5.3 + axis2 1.4.1 (jax-ws2.0) + mina

问题描述:由于是使用jax-ws技术因此根据WSDL生成的代码为annotation的,因此无需配置即可在axis2中发布,所以问题出现:

1、想通过配置来对象注入到service中无法实现(在此时没找到解决此问题的部分)。

2、在serivce中使用axis2 api读取soap消息,消息始终为null。

 

(如果不使用annotation来描述webservice,是可以使用配置来注入bean的,在server端也能正常的读取soap消息。)

 

解决办法:(既然是使用annotation来描述webservice,那当然得用spring annotation来注入了。读取soap消息也一样)

1、用@Autowired来修饰需注入的bean,目标类需继承SpringBeanAutowiringSupport(这个功能应该是在2.5.3的版本中增加的)。

2、使用@Resource来修饰需要捕获的soap消息。

 

代码:

import java.util.Map;

import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

@WebService(targetNamespace = "http://www.demon.service",serviceName = "HelloService", name = "demon")
public class Hello extends SpringBeanAutowiringSupport{
    /**
     * Logger for this class
     */
    private static final Logger logger = Logger.getLogger(Hello.class);
    @Autowired
    private XXBean bean;//此处的bean的名称要与spring中bean的id一致。   
   
    @Resource
    WebServiceContext wsContext;
   
    @WebMethod(operationName = "sayHello")
    public String sayHello(String name){
    javax.xml.ws.handler.MessageContext context = wsContext.getMessageContext();

    }

}

参考资料:http://docs.huihoo.com/spring/2.5.x/zh-cn/remoting.html

https://jax-ws.dev.java.net/articles/MessageContext.html

1
1
分享到:
评论
2 楼 stevendu 2011-12-26  
bean注入失败,始终为null。
1 楼 liberD 2010-11-19  
把例子写的更全面一些吧。O(∩_∩)O哈哈~

相关推荐

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    maven-spring-mybatis-webservice整合

    在本项目中,可能是通过JAX-WS或者CXF等实现。开发者可以创建SOAP(Simple Object Access Protocol)服务,对外提供API,允许其他系统调用,实现跨平台的数据交换。Spring框架也提供了对WebService的支持,可以方便...

    springboot+axis1.4

    1. **Spring Boot与Web服务**:Spring Boot支持多种Web服务技术,包括JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。由于题目提及的是Axis1.4,这是一个基于JAX-RPC的Web...

    webservice

    2. **Spring WS**:Spring 框架的一部分,Spring WS 提供了一种简洁的方式来创建 Webservice 应用。它与 Spring 生态系统的其他组件紧密结合,可以轻松地与其他 Spring 组件集成。 3. **JAX-WS (Java API for XML ...

    WebService大讲堂之Axis2系列教程

    2. **JAX-RPC与JAX-WS**:了解这两种不同的Web服务编程模型,JAX-RPC是早期的Web服务标准,而JAX-WS则是基于WS-I基本绑定的现代Web服务API,提供了更高效、更符合标准的处理方式。 3. **复杂类型传输**:学习如何...

    WebService详细解析(axis,xfire,cxf,授权认证加密解密)

    CXF是Apache基金会的一个项目,它整合了XFire和Axis2的优势,提供了一站式的解决方案,支持SOAP、REST、WS-*标准等。 4. CXF特性 - 强大的工具集,包括WSDL-to-Java和Java-to-WSDL工具。 - 对WS-Security、WS-...

    WebService之Axis2教程

    - **Axis2定义**:Axis2是一款高性能、轻量级且灵活的Web服务引擎,它基于Apache软件基金会开发,作为Apache Axis 1.x的下一代产品,不仅支持SOAP 1.1和SOAP 1.2标准,还兼容RESTful Web服务。 - **应用场景**:广泛...

    用axis2搭建webservice

    【描述】:虽然有多种Web服务技术,如XFire、CXF和JAX-WS,但Axis2以其易用性和与Spring的无缝集成而备受青睐。通过 Axis2,开发者可以快速地创建和部署Web服务,同时利用Spring的强大功能进行依赖注入和事务管理。 ...

    axis webservice开发包

    在本篇中,我们将深入探讨Axis在Webservice开发中的重要性、使用方法以及如何将提供的"axis开发包"整合到你的项目中。 1. **什么是Web服务?** Web服务是一种通过互联网交换业务逻辑和数据的方法。它们基于开放...

    Axis2学习教程-全面学习AXIS

    课程内容包括了Axis2的基础知识讲解,如以多种方式编写和发布WebService、JAX-RPC、JAX-WS的使用、复杂类型的传输、WebService会话管理和Axis2模块等关键概念。此外,教程通过三个实际项目加深理解,涵盖了使用Java ...

    axis2-1.8.0apache-cxf-3.4.4.rar

    在实际开发中,开发者通常会使用Axis2来创建服务,然后使用CXF来提供更高级的功能,如REST支持和与其他系统的互操作性。 在压缩包文件名称列表中,我们只看到了"axis2-1.8.0apache-cxf-3.4.4",这意味着压缩包内...

    JAVA常用框架发布WebService

    Axis1主要基于JAX-RPC,而Axis2则升级为基于JAX-WS的标准。Axis2提供了更好的性能和模块化设计,支持多种传输协议(如HTTP、HTTPS、SMTP),并且集成了MTOM和SwA优化机制,用于处理大型二进制数据。 4. Axis2详解:...

    webservice所需lib开发包

    标题中的"webservice所需lib开发包"指的是为了进行Web服务开发,开发者需要的一系列Java库文件。这些库文件包含了实现Web服务功能的各种API和工具,它们是开发者构建Web服务客户端或服务端应用程序的基础。 描述中...

    webservice整合spring的需要的jar(在项目的lib里)

    标题中提到的"webservice整合spring的需要的jar(在项目的lib里)",意味着在构建一个整合了Spring和Web服务的项目时,需要在项目的库(lib)目录下包含特定的JAR文件。这些JAR文件通常包含了实现Web服务调用和...

    webService(基于cxf)的完整例子

    2. **JAX-WS和JAX-RS**:JAX-WS是用于构建SOAP Web服务的标准,而JAX-RS则用于构建RESTful服务。CXF支持这两种风格,允许开发人员根据需求选择合适的服务类型。 3. **创建Web服务**:在CXF中,可以通过注解或XML...

    Axis-cxf-WebService.zip

    在本压缩包中,CXF的示例可能包括JAX-WS(Java API for XML Web Services)的服务端和客户端代码,使用注解来定义服务接口和实现,以及配置文件(如cxf.xml或spring配置文件)用于服务的启动和部署。 在服务端,...

    Java6中实现Web服务

    本文主要探讨了四种方法,它们分别是JAX-WS 2.0、Apache Axis、Spring和XFire。 首先,JAX-WS 2.0是Java API for XML Web Services的简称,是Java中用于构建Web服务的主流规范。它取代了早期的JAX-RPC 1.0,并基于...

    Axis2 WebService常用功能详解

    1. **多种方式编写和发布Web服务**:Axis2支持JAX-RPC和JAX-WS规范,允许开发者选择适合他们项目的API来创建Web服务。同时,它还提供了RESTful Web服务的支持,与SOAP相比,REST更简洁,更适合轻量级的交互。 2. **...

    springboot(5) 整合cxf提供webservice服务

    在本教程中,我们将深入探讨如何使用Spring Boot与Apache CXF整合来创建并提供Web服务。Spring Boot以其简化Java应用程序开发的特性而受到广泛欢迎,而CXF则是一个流行的开源框架,用于构建和消费Web服务。当我们...

Global site tag (gtag.js) - Google Analytics