首页 > 其他分享 >webservice接口调用OA方法

webservice接口调用OA方法

时间:2022-12-05 16:37:35浏览次数:48  
标签:xml webservice 接口 OA import seeyon com log

【背景】     最近一直在做这样一个需求,在OA中写一个webservice接口,通过调用OA中更新的方法来同步上级主管,我们公司的OA系统是买的产品,一无所知的我就这样开启了无悔的探索寻求之路~
    首先是调试别人写好的内部webservice接口,外面是调不通的,因为开始的时候一直认为这个接口外面是可以访问的,后来又联系了写接口的那个伙计,搞了很长一段时间,但还是无果,最终才知道,这个接口外面是访问不通的~当听到这个消息之后,一脸懵B,继续前行~
    后来开始搞另外一个,嵌套在OA中的对外的接口,这个是可以访问的,因为针对于我们公司的机器人开发的这个接口,并且正在投入使用中~
    经过几个小时的探索之路,大概了解到了其中的访问方式,以及对应的结构,欣喜的小编就这样继续前行~
【剖析过程】     对了,先让读者朋友看一下大概的一个结构图:
      新建一个普通的java工程,这个就不多说了,建立成如下相应的结构;其中synlinemanager以上的内容都是OA系统中规定好的结构;6.0为OA系统依赖的所有jar包。
webservice接口调用OA方法_总结    下面为controller中的内容(其中调用了OA中的方法进行业务逻辑的实现):

-
package com.seeyon.apps.synlinemanager.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.controller.BaseController;
import com.seeyon.ctp.organization.bo.V3xOrgMember;
import com.seeyon.ctp.organization.manager.OrgManager;
import com.seeyon.ctp.organization.services.OrganizationServices;
import com.seeyon.ctp.util.annotation.NeedlessCheckLogin;

public class synlinemanagerController extends BaseController {
	
	private static final Log log = LogFactory.getLog(synlinemanagerController.class);
	

	@NeedlessCheckLogin
	 public String synlinemanager(HttpServletRequest request, HttpServletResponse response) throws Exception {

		String xml="";
      try { 
	    	OrgManager orgManager = (OrgManager) AppContext.getBean("orgManager");
	    	OrganizationServices syncServices = (OrganizationServices) AppContext.getBean("organizationServices");
	    	
	    	String loginname = request.getParameter("loginname");
	    	String ld = request.getParameter("id");
	    	  
	    	V3xOrgMember member = new V3xOrgMember(); 
	  		V3xOrgMember mem = new V3xOrgMember(); 
	  		member = orgManager.getMemberByLoginName(loginname);//根据登录名查询oa中的人员
	  		log.info(member.toString());
	  		log.info("========================");
	  		log.info(member.getProperties().toString());
	  		log.info("========================");
	  		log.info(member.getId());
	  		
	  		mem = orgManager.getMemberByLoginName(ld);//根据领导的登录名查询oa中的人员信息
	  		if (ld != null && !"".equals(ld)) {
	  			Map  map = new HashMap();
	  			map.put("reporter", mem.getId());
	  			member.setProperties(map);//setProperty();//加oa中字段的名称
	  		}	
	  		
	  		syncServices.updateMember(member);

			xml="我出来,一定是执行成功了~";
			
		} catch (Exception e) {
			 
		     xml = "报错之后应该打印的信息";
		      
			e.printStackTrace();
		}

      	log.info(xml);
      
		return "执行成功";
		
	}
	
	
}
-

    下面为spring-synlinemanager-controller.xml文件中的内容(为了实现外部调用,这里通过springmvc来实现的):
-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
	<bean name="/synlinemanager.do" class="com.seeyon.apps.synlinemanager.controller.synlinemanagerController">
	 		
	</bean>
</beans>
-

    下面为pluginCfg.xml中的内容(这里是OA中对应的一个规则):
-
<?xml version="1.0" encoding="UTF-8"?> 
<plugin>
    <id>synlinemanager</id>
    <name>更新上级主管</name>
    <category>20170322</category>
</plugin>
-

    最后将建立好生成的.class文件以及.xml文件放到环境中对应的目录下,重启OA服务,就已经实现了相应的功能。
【成长记录】     在路上的那些坎坷,其实有时候真的不能够切合实际的去表达出来,但是那份经历,也许可以称之为经验之路吧~
    因为要涉及和甲方公司的工程师进行沟通交流,在熟悉业务以及需求的同时,熟悉相关代码,并进行各种尝试以及测试工作~
    在这个过程中,我明白了,聆听的重要性,你既要当一个会聆听的人,更要在聆听的过程中找出主要矛盾。
    在这个过程中,我明白了,做一个事情就要紧抓自己的方向,在沟通交流过程中绝不能够让别人把你带的跑出去很远,要始终站在更高的立场,每一步都要思考自己最终的目标。
【感受】     不断前行的路上会遇到很多的事情,那些都是一个成长的过程,不断努力就OK了~~

标签:xml,webservice,接口,OA,import,seeyon,com,log
From: https://blog.51cto.com/u_14471711/5913018

相关文章

  • 函数式接口的使用
    1. 什么是函数式接口只包含一个抽象方法的接口,称为函数式接口我们可以在任意函数式接口上使用@FunctionInterface注解,这样做可以检查它是否是一个函数式接口,同时javad......
  • cnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因
    set-ExecutionPolicyRemoteSigned......
  • C++接口工程实践
    https://zhuanlan.zhihu.com/p/213902091还没有学习完简介:程序开发的时候经常会使用到接口。众所周知,C++语言层面并没有接口的概念,但并不意味着C++不能实现接口的功能。......
  • 获取网易云音乐开放接口api的推荐歌单
    网易云音乐开放api接口网址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi项目地址:https://github.com/Binaryify/NeteaseCloudMusicAp......
  • 车载测试系列:基于AP AutoSAR的SOA实现
    Android的SOTA技术 针对Android平台的APP应用、主题、皮肤,实现路径类似于手机的应用商城,云端建立版本仓库,用户在车机软件商店点击安装后,车端从TSP下载安装包(apk),由车机或......
  • JDK的dt.jar和Java BeanInfo接口
    在JAVA_HOME/lib下面有两个比较重要的jar文件,tools.jar和dt.jar。 tools.jar在上篇文章中做了简单的介绍。这里来介绍下dt.jar。在Oracle官方网站搜dt.jar,找到JDKand......
  • (收藏)接口限流实践
    一、问题描述 某天A君突然发现自己的接口请求量突然涨到之前的10倍,没多久该接口几乎不可使用,并引发连锁反应导致整个系统崩溃。如何应对这种情况呢?生活给了我们答案:比......
  • 贝锐蒲公英:多分支企业如何提高 OA办公系统协同管理效率
    伴随企业不断发展壮大,就会有在不同地区同时开展业务的需求。因此多个分支办公机构的建立,也意味着企业在协同管理方面将面临更大挑战。在信息化技术时代,协同OA办公系统的......
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具?!
     每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试 01......
  • AsyncHttpClient And Download Speed Limit
    AsyncHttpClientOfficialrepositoryanddocs:https://github.com/AsyncHttpClient/async-http-clientMavenDependencyCheckthelatestversionofasync-http-clie......