`
evan0625
  • 浏览: 159421 次
  • 性别: 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: 在事务窗口输入 ...

    SAP webservice测试方法

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

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

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

    JAVA 调用SAP SOAP webservice.docx

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

    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. *...

    CXF WebService整合Spring示例工程代码demo

    CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...

Global site tag (gtag.js) - Google Analytics