概述
继承类以及继承实现父类方法
public class FileCountParse extends AbstractParse {
public FileCountParse(Document doc) {
super(doc);
// TODO Auto-generated constructor stub
}
..........
}
获取传给接口的值
Element rootElement = this.doc.getRootElement();
//获取当前页
Element startPageElement = rootElement.getChild("startPage");
startPage = startPageElement.getValue();
通过获取的参数在本系统获取响应的数据,并对数据进行封装
result += "<dealedWorkFlowList>";
//组织名标识
result += "<orgName>" + orgName + "</orgName>";
for (int i = 0; i < list.size(); i++) {
Object[] obj = (Object[]) list.get(i);
//发文日期、文号、标题、拟稿单位
result += "<dealedWorkFlow>";
result += "<workTitle><![CDATA[" + obj[0] + "]]></workTitle>";
result += "<createdTime>" + obj[1] + "</createdTime>";
result += "<wenhao>" + obj[2] + "</wenhao>";
result += "<lwdw>" + obj[3] + "</lwdw>";
//添加id
result += "<informationId>" + obj[4] + "</informationId>";
result += "</dealedWorkFlow>";
}
result += "<recordCount>" + map.get("recordCount") + "</recordCount>";
result += "</dealedWorkFlowList>";
至此,后台代码完成;webservice的实体和方法要在配置文件中配置,本次开发配置写在servicePase.xml中;
<service id="c60">
<class>com.whir.rd.parse.FileCountParse</class>
<methods>
<method>getSendFileList</method>
<method>getReceiveFileList</method>
<method>getAgencyFileList</method>
</methods>
</service>
配置完成后,代码部分完成,但是不要忘了写接口文档,供第三方同事参考:
/*** 获取发文 key 参数固定值 DFFD512F3C274EC11AF53753FC82B483
* type 月/季度/年 month/quarter/year
* userACcounts 用户名
*startPage 当前页
*pageSize 一页几行
*/
"<input>" +
"<key>DFFD512F3C274EC11AF53753FC82B483</key>" +
"<cmd>getSendFileList</cmd>" +
"<type>year</type>" +
"<userACcounts>曾斌</userACcounts>" +
"<startPage>1</startPage>"
"<pageSize>10</pageSize>"
"</input>";
顺便说一下从第三方系统访问自己系统的代码和配置,首先,写一个过滤器(拦截器)
public class loginTourlFiltel implements Filter {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
String userAccount = request.getParameter("userAccount") == null ? "" : request.getParameter("userAccount");
String opentype = request.getParameter("opentype") == null ? "" : request.getParameter("opentype");//连接类型
//判断参数
if(userAccount!=null&&!"".equals(userAccount)) {
//设置用户seesion信息
setSeesion(request, response, userAccount);
String mainUrl = "";
if("information".equals(opentype)){
Object[] obj = getOpenInfo(informationId);
mainUrl = "/defaultroot/Information!view.action?informationId="+informationId+"&userDefine="+obj[0]+"&informationType="+obj[1]+"&channelId="+obj[2]+"&channelType="+obj[3]+"&userChannelName=信息管理";
}
//跳转到本系统
response.setCharacterEncoding("utf-8");
// 告诉浏览器,服务器发送的消息体数据的编码。建议浏览器使用该编码解码
response.setHeader("content-type", "text/html;charset=utf-8");
response.setHeader("Access-Control-Allow-Origin","*");//允许所有域名访问
response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
response.setHeader("Access-Control-Allow-Credentials", "true");
// 简单的形式,设置编码
response.setContentType("text/html;charset=utf-8");
//不用重定向了
//response.sendRedirect(mainUrl);
PrintWriter pw = response.getWriter();
// 2.输出数据
pw.write("<script>window.location.href='"+mainUrl+"'</script>");
pw.close();
}
这一块的逻辑类似一个单点;
当然,不能忘了在web.xml配置拦截器的访问!!!
配置文件写上访问的格式,供第三方参考
公文统计发文跳转详情的地址:
http://ip:端口/defaultroot/loginJump?userAccount=whir&opentype=sendFile&informationId=21545
最后
以上就是魔幻篮球为你收集整理的webservice写接口供第三方调用的全部内容,希望文章能够帮你解决webservice写接口供第三方调用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复