`
evan0625
  • 浏览: 160161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sap服务器应用webservice加载spring的机制问题

    博客分类:
  • java
阅读更多

      在项目开发中,使用sap服务器进行系统开发。由于编写的是webservice,所以启动的时候要加载spring的类,而sap服务器在这时候就会出现无法获得spring工厂中的类,万分头疼。
      解决方案就是最上方的webservice不要去依赖注入spring的类,而是要在方法中取获取该spring工厂中的类。
      问题又出现了,spring工厂提供的类不能去new,只能通过其他途径去获取了。
      有人说:好,写一个工厂类BeanFactory,内部使用ClassPathXmlApplicationContext类加载spring的配置文件,从而获得需要的类。
      可是项目是web项目,如果再使用这样的加载机制就会出现spring工厂不单一的情况,获得的类也可能不是单一的。所以我们要从web方面处理。
      解决方法有两种:

      一、编写ServicesSingleton,代码如下:

public class ServicesSingleton {
	private WebApplicationContext servletContext;
	private static ServicesSingleton instance = null;
	protected ServicesSingleton() {
	}
	public static ServicesSingleton getInstance() {
		if (instance == null)
			instance = new ServicesSingleton();
		return instance;
	}
	public WebApplicationContext getServletContext() {
		return servletContext;
	}
	public void setServletContext(WebApplicationContext servletContext) {
		this.servletContext = servletContext;
	}
}

     然后编写初始化InitServlet,代码如下:

public class InitServlet extends HttpServlet {
	@Override
	public void init() throws ServletException {
		WebApplicationContext ctx = WebApplicationContextUtils
				.getRequiredWebApplicationContext(getServletContext());
		ServicesSingleton.getInstance().setServletContext(ctx);
	}
}

 

    上面的代码就是将spring工厂存放在ServicesSingleton的变量中。
    最后编写web.xml把InitServlet添加进去,代码如下:

<servlet>
      <servlet-name>initServlet</servlet-name>
      <servlet-class>com.bris.otp.util.InitServlet</servlet-class>
      <load-on-startup>0</load-on-startup>
</servlet>

    这样就ok了。
    二、编写ContextUtil,代码如下:

public class ContextUtil implements ApplicationContextAware {
	// Spring应用上下文环境
    private static ApplicationContext applicationContext;
      public void setApplicationContext(ApplicationContext appContext)
			throws BeansException {
	ContextUtil.applicationContext = appContext;
      }
      public static Object getBean(String beanId) throws BeansException {
	return applicationContext.getBean(beanId);
     }
}

    填写spring配置文件,代码如下:

<bean id="contextUtil" class="com.bris.rmc.common.ContextUtil"></bean>

    第一种方法为开发项目使用的方法,第二种方法没有进行测试,有兴趣的可以试一下。

 

 

 

 

 

0
0
分享到:
评论
2 楼 evan0625 2013-10-09  
啦登2010 写道
你好,今天看到您的文章,使用第一种可以这样
ServicesSingleton.getInstance().getServletContext().getBean("userService");
获取到对象,
但是我在spring的配置文件中配置了
<bean id="userService" class="com.qqw.quanqiuwang.biz.dao.impl.UserServiceImpl">
    <property name="userDAO" ref="userDAO"></property>
</bean>

获取到的对象的属性userDAO是null,没能注入,请问一下,需要怎么操作可以把关联的属性全部注入进入?

是不是没有加入set方法?
1 楼 啦登2010 2013-08-22  
你好,今天看到您的文章,使用第一种可以这样
ServicesSingleton.getInstance().getServletContext().getBean("userService");
获取到对象,
但是我在spring的配置文件中配置了
<bean id="userService" class="com.qqw.quanqiuwang.biz.dao.impl.UserServiceImpl">
    <property name="userDAO" ref="userDAO"></property>
</bean>

获取到的对象的属性userDAO是null,没能注入,请问一下,需要怎么操作可以把关联的属性全部注入进入?

相关推荐

    SAP开发——在SAP上发布WebService 

    本教程将详细介绍如何在SAP上发布一个WebService以及如何调用外部的WebService。 **1. SAP发布WebService** 发布WebService的主要目的是使SAP系统能够提供服务给其他外部系统,实现跨系统的数据交互。以下是在SAP...

    二、SAP调用外部WebService.实施步骤

    步骤一:进入 SE80,按照如下截图步骤操作 步骤二:上一个步骤,已经完成 Package Z001 下的企业服务 Class 类的服务,你 将能看到如下截图所示信息 以上完成所有准备,下边正式进入配置 setp1: 在事务窗口输入 ...

    JAVA 调用SAP SOAP webservice.docx

    JAVA 调用 SAP SOAP webservice 详解 在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP...

    SAP webservice测试方法

    ### SAP Webservice 测试方法详解 #### 一、引言 在现代企业信息化管理中,SAP系统作为企业管理软件中的佼佼者,被广泛应用。随着SAP系统的不断升级与扩展,Webservice技术作为一种重要的集成手段,在SAP系统中...

    SAP调用外部WebService.docx编程资料

    ### SAP调用外部WebService知识点详解 #### 一、概述 SAP系统中调用外部WebService是一种常见的集成场景,主要用于实现SAP系统与非SAP系统的数据交换或业务流程交互。本文将详细介绍如何在SAP系统中配置并调用外部...

    SAP Webservice日志查询报表 V3

    在实际应用中,SAP Webservice日志查询报表 V3可以帮助企业: - **监控服务性能**:通过实时或历史日志,可以分析服务的响应时间、成功率等关键指标,从而发现并解决性能瓶颈。 - **排查问题**:当服务出现错误或...

    webservice集成spring框架

    在做四川电信项目时搭建的一个webservice集成spring的服务端框架,里面有服务端的实现,运行后在浏览器总输入:http://localhost:端口/ismpbJOA_me/services/BnetForJOA?wsdl 便可以看到wsdl文件,希望对大家有用

    SAP Webservice日志查询报表2.0

    《SAP Webservice日志查询报表2.0详解与应用》 SAP Webservice日志查询报表2.0是一款强大的工具,专为监控和分析SAP Web服务交互数据而设计。在企业信息化环境中,Web服务作为系统间通信的重要桥梁,其稳定性和效率...

    webservice + spring + hibernate

    【标题】"webservice + spring + hibernate"的整合应用详解 在IT行业中,Web服务、Spring框架和Hibernate ORM工具的结合使用是构建高效、可扩展的企业级应用程序的常见方式。这三个技术的融合,能够帮助开发者实现...

    xfire webservice 集成spring客户端封装例子

    xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样

    Restful WebService + Spring

    总的来说,"Restful WebService + Spring"的结合使得开发人员能够利用Spring的强大功能和RESTful的简洁设计原则,构建高效、可维护的Web服务。通过合理地组织资源、利用HTTP方法和状态码,以及借助Spring的自动化...

    发布webService服务接口与spring整合教程

    Spring框架,作为Java企业级应用开发的首选,提供了一种模块化、轻量级的方式,用于构建可维护的、高质量的应用程序。Spring提供了对Web Service的支持,可以通过Spring-WS、Apache CXF等库实现。 接下来,我们将...

    webservice+spring的一个小例子

    Webservice是一种通过网络提供服务的方式,它使得不同系统间的数据交换变得简单,而Spring框架则是一个强大的应用开发平台,提供了依赖注入、面向切面编程以及全面的事务管理等功能。在这个"webservice+spring的小...

    SAP&Java的Webservice实例

    SAP&Java的Webservice实例 Webservice 是一种基于 SOAP 传输协议,用 WSDL 描述,用 XML 封装数据的接口技术。由于其跨平台、跨防火墙、开发成本低、开发周期短等优势而被广泛应用,但也有局限性,包括传输负载大、...

    axis2+spring webservice

    标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...

    webservice之Spring整合CXF

    WebService小白学习 之 Spring整合CXF,添加拦截器。 博客学习地址:https://blog.csdn.net/qq_37902949/article/details/81262826

    webservice7 spring的bean发布为webservice

    4. **配置Tomcat服务器**:将Spring框架的`spring.jar`文件复制到Tomcat的`webapps/axis2/WEB-INF/lib`目录中,确保Spring框架能够在项目中被正确加载。 5. **编写JavaBean**:这里我们创建了一个名为`SpringService...

    SAP-WEBSERVICE调用案例

    ### SAP-WEBSERVICE调用案例 #### 一、引言 随着企业信息化建设的深入发展,SAP作为企业管理软件的佼佼者,在业务流程整合与优化方面扮演着至关重要的角色。而Web Service作为一种标准的跨平台服务交互方式,使得...

    rest webservice demo spring

    本示例"rest webservice demo spring"是一个使用Spring框架实现的RESTful Web服务的演示项目。Spring是Java领域的一个开源框架,特别适合于构建企业级应用,它提供了全面的编程和配置模型,包括对REST的支持。 1. *...

Global site tag (gtag.js) - Google Analytics