在项目开发中,使用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>
第一种方法为开发项目使用的方法,第二种方法没有进行测试,有兴趣的可以试一下。
分享到:
相关推荐
本教程将详细介绍如何在SAP上发布一个WebService以及如何调用外部的WebService。 **1. SAP发布WebService** 发布WebService的主要目的是使SAP系统能够提供服务给其他外部系统,实现跨系统的数据交互。以下是在SAP...
步骤一:进入 SE80,按照如下截图步骤操作 步骤二:上一个步骤,已经完成 Package Z001 下的企业服务 Class 类的服务,你 将能看到如下截图所示信息 以上完成所有准备,下边正式进入配置 setp1: 在事务窗口输入 ...
JAVA 调用 SAP SOAP webservice 详解 在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP...
### SAP Webservice 测试方法详解 #### 一、引言 在现代企业信息化管理中,SAP系统作为企业管理软件中的佼佼者,被广泛应用。随着SAP系统的不断升级与扩展,Webservice技术作为一种重要的集成手段,在SAP系统中...
### SAP调用外部WebService知识点详解 #### 一、概述 SAP系统中调用外部WebService是一种常见的集成场景,主要用于实现SAP系统与非SAP系统的数据交换或业务流程交互。本文将详细介绍如何在SAP系统中配置并调用外部...
在实际应用中,SAP Webservice日志查询报表 V3可以帮助企业: - **监控服务性能**:通过实时或历史日志,可以分析服务的响应时间、成功率等关键指标,从而发现并解决性能瓶颈。 - **排查问题**:当服务出现错误或...
在做四川电信项目时搭建的一个webservice集成spring的服务端框架,里面有服务端的实现,运行后在浏览器总输入:http://localhost:端口/ismpbJOA_me/services/BnetForJOA?wsdl 便可以看到wsdl文件,希望对大家有用
《SAP Webservice日志查询报表2.0详解与应用》 SAP Webservice日志查询报表2.0是一款强大的工具,专为监控和分析SAP Web服务交互数据而设计。在企业信息化环境中,Web服务作为系统间通信的重要桥梁,其稳定性和效率...
【标题】"webservice + spring + hibernate"的整合应用详解 在IT行业中,Web服务、Spring框架和Hibernate ORM工具的结合使用是构建高效、可扩展的企业级应用程序的常见方式。这三个技术的融合,能够帮助开发者实现...
xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样
总的来说,"Restful WebService + Spring"的结合使得开发人员能够利用Spring的强大功能和RESTful的简洁设计原则,构建高效、可维护的Web服务。通过合理地组织资源、利用HTTP方法和状态码,以及借助Spring的自动化...
Spring框架,作为Java企业级应用开发的首选,提供了一种模块化、轻量级的方式,用于构建可维护的、高质量的应用程序。Spring提供了对Web Service的支持,可以通过Spring-WS、Apache CXF等库实现。 接下来,我们将...
Webservice是一种通过网络提供服务的方式,它使得不同系统间的数据交换变得简单,而Spring框架则是一个强大的应用开发平台,提供了依赖注入、面向切面编程以及全面的事务管理等功能。在这个"webservice+spring的小...
SAP&Java的Webservice实例 Webservice 是一种基于 SOAP 传输协议,用 WSDL 描述,用 XML 封装数据的接口技术。由于其跨平台、跨防火墙、开发成本低、开发周期短等优势而被广泛应用,但也有局限性,包括传输负载大、...
标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...
WebService小白学习 之 Spring整合CXF,添加拦截器。 博客学习地址:https://blog.csdn.net/qq_37902949/article/details/81262826
4. **配置Tomcat服务器**:将Spring框架的`spring.jar`文件复制到Tomcat的`webapps/axis2/WEB-INF/lib`目录中,确保Spring框架能够在项目中被正确加载。 5. **编写JavaBean**:这里我们创建了一个名为`SpringService...
### SAP-WEBSERVICE调用案例 #### 一、引言 随着企业信息化建设的深入发展,SAP作为企业管理软件的佼佼者,在业务流程整合与优化方面扮演着至关重要的角色。而Web Service作为一种标准的跨平台服务交互方式,使得...
本示例"rest webservice demo spring"是一个使用Spring框架实现的RESTful Web服务的演示项目。Spring是Java领域的一个开源框架,特别适合于构建企业级应用,它提供了全面的编程和配置模型,包括对REST的支持。 1. *...