前两因项目要做个接口,以webservice方式传递数据.现把相关的步骤记录下:
首先当然是要下载axis.jar包,另外还有mail.jar包等以及spring的相关包(这个如果是spring做的项目的话,应该都有的.)
接下来为web.xml配置相关的数据:
web.xml
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- axis Servlet -->
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
然后定义一个接口类:
public interface EiacService {
public String doEiacServiceRetXML(String UID,String QUERYTYPE);
}
接口实现类:
需继承ServletEndpointSupport 类,以方便调spring Bean
package com.timeson.oa.webservice.impl;
import com.timeson.oa.webservice.EiacService;
import com.timeson.oa.hr.service.UserManager;
import com.timeson.oa.hr.model.SysUser;
import com.timeson.oa.workflow.service.TbEngineFilecommonManager;
import com.timeson.oa.workflow.model.PendingTask;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import javax.xml.rpc.ServiceException;
import java.util.List;
public class EiacServiceImpl extends ServletEndpointSupport implements EiacService
{
private UserManager userMgr;
private TbEngineFilecommonManager file;
protected void onInit() throws ServiceException
{
//在Spring容器中获取Bean的实例
userMgr = (UserManager) getApplicationContext().getBean("userManager");
file = (TbEngineFilecommonManager) getApplicationContext().getBean("tbEngineFilecommonManager");
}
/**
* 主入口方法
*
* @param UID
* @param QUERYTYPE 1为发文,2为收文
* @return xml
*/
public String doEiacServiceRetXML(String UID, String QUERYTYPE)
{
StringBuilder result = new StringBuilder().append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
result.append("<info>\n");
try
{
// System.out.println("11111111111111 uid " + UID + " dddd ");
if(UID != null && !"".equals(UID) && !"null".equals(UID))
{
//发文
if(QUERYTYPE.equals("1"))
{
List userList = userMgr.getEiacUsers(Integer.valueOf(UID));
//oa没能对应的帐号
if(userList.size() < 1)
{
result.append("<RETFLAG>0</RETFLAG>\n");
result.append("<RETERRORID>0</RETERRORID>\n");
result.append("<RETERRORINFO>OA系统中不存在对应帐号的用户。</RETERRORINFO>\n");
result.append("<RETURN_RESULT>没有待办</RETURN_RESULT>\n");
}
//有一个的时候
else if(userList.size() == 1)
{
SysUser sysUser = (SysUser) userList.get(0);
List fileList = file.GetPendingMaters(sysUser.getId().toString(), QUERYTYPE);
result.append("<RETFLAG>1</RETFLAG>\n");
result.append("<RETERRORID>1</RETERRORID>\n");
result.append("<RETERRORINFO>成功</RETERRORINFO>\n");
String resultList = resultList(fileList, sysUser.getId());
result.append(resultList);
}
//两个以个
else
{
result.append("<RETFLAG>1</RETFLAG>\n");
result.append("<RETERRORID>1</RETERRORID>\n");
result.append("<RETERRORINFO>成功</RETERRORINFO>\n");
for(int j = 0; j < userList.size(); j++)
{
SysUser sysUser = (SysUser) userList.get(j);
List fileList = file.GetPendingMaters(sysUser.getId().toString(), QUERYTYPE);
String resultList = resultList(fileList, sysUser.getId());
result.append(resultList);
}
}
}
//收文
else if(QUERYTYPE.equals("2"))
{
List userList = userMgr.getEiacUsers(Integer.valueOf(UID));
//oa没能对应的帐号
if(userList.size() < 1)
{
result.append("<RETFLAG>0</RETFLAG>\n");
result.append("<RETERRORID>0</RETERRORID>\n");
result.append("<RETERRORINFO>OA系统中不存在对应帐号的用户。</RETERRORINFO>\n");
result.append("<RETURN_RESULT>没有待办</RETURN_RESULT>\n");
}
//有一个的时候
else if(userList.size() == 1)
{
SysUser sysUser = (SysUser) userList.get(0);
List fileList = file.GetReadListOnEiac(sysUser.getId().toString(), QUERYTYPE);
result.append("<RETFLAG>1</RETFLAG>\n");
result.append("<RETERRORID>1</RETERRORID>\n");
result.append("<RETERRORINFO>成功</RETERRORINFO>\n");
String resultList = resultListOnRead(fileList, sysUser.getId());
result.append(resultList);
}
//两个以个
else
{
result.append("<RETFLAG>1</RETFLAG>\n");
result.append("<RETERRORID>1</RETERRORID>\n");
result.append("<RETERRORINFO>成功</RETERRORINFO>\n");
for(int j = 0; j < userList.size(); j++)
{
SysUser sysUser = (SysUser) userList.get(j);
List fileList = file.GetReadListOnEiac(sysUser.getId().toString(), QUERYTYPE);
String resultList = resultListOnRead(fileList, sysUser.getId());
result.append(resultList);
}
}
}
//传入参数{QUERYTYPE}有误时
else
{
result = new StringBuilder().append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
result.append("<info>\n");
result.append("<RETFLAG>0</RETFLAG>\n");
result.append("<RETERRORID>2</RETERRORID>\n");
result.append("<RETERRORINFO>请求失败,传入\" QUERYTYPE \"为空</RETERRORINFO>\n");
result.append("<RETURN_RESULT>没有待办</RETURN_RESULT>\n");
}
}
//传入参数{UID}有误时
else
{
result = new StringBuilder().append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
result.append("<info>\n");
result.append("<RETFLAG>0</RETFLAG>\n");
result.append("<RETERRORID>2</RETERRORID>\n");
result.append("<RETERRORINFO>请求失败,传入\"UID\"为空</RETERRORINFO>\n");
result.append("<RETURN_RESULT>没有待办</RETURN_RESULT>\n");
}
}
catch(Exception e)
{
result = new StringBuilder().append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
result.append("<info>\n");
result.append("<RETFLAG>0</RETFLAG>\n");
result.append("<RETERRORID>3</RETERRORID>\n");
result.append("<RETERRORINFO>出现异常,请求失败</RETERRORINFO>\n");
result.append("<RETURN_RESULT>没有待办</RETURN_RESULT>\n");
e.printStackTrace();
}
result.append("</info>");
return result.toString();
}
在WEB-INF目录下加入server-config.wsdd文件
并加入内容如下
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="EiacService" provider="java:RPC" use="literal">
<operation name="doEiacServiceRetXML" qname="ns1:doEiacServiceRetXML" returnQName="ns1:doEiacServiceRetXMLReturn" returnType="xsd:string" soapAction="" xmlns:ns1="http://impl.webservice.oa.timeson.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<parameter qname="ns1:UID" type="xsd:string"/>
<parameter qname="ns1:QUERYTYPE" type="xsd:string"/>
</operation>
<parameter name="allowedMethods" value="doEiacServiceRetXML"/>
<parameter name="typeMappingVersion" value="1.2"/>
<parameter name="wsdlPortType" value="EiacServiceImpl"/>
<parameter name="className" value="com.timeson.oa.webservice.impl.EiacServiceImpl"/>
<!--<parameter name="className" value="com.timeson.oa.webservice.EiacService"/>-->
<parameter name="wsdlServicePort" value="EiacServiceImpl"/>
<parameter name="schemaQualified" value="http://impl.webservice.oa.timeson.com"/>
<parameter name="wsdlTargetNamespace" value="http://impl.webservice.oa.timeson.com"/>
<parameter name="wsdlServiceElement" value="EiacServiceImplService"/>
</service>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>
完成后部署到TOCAR目录下
打开IE在地址栏输入:http://192.168.19.51:81/oa/services/EiacService?wsdl
<完>
分享到:
相关推荐
WebService从零到项目开发使用2——技术研究 源代码
一个webservice整合EJB的小例子
axis2整合spring的web开发实例
axis2 开发webservice需要的完整jar,可以很好与spring进行整合
axis2 webservice 样例 使用的是spring axis2 的整合。
主流的spring4mvc+Mybatis,并整合了axis2实现webservice接口开发。利用quartz注解实现任务作业功能源码。利用spring RoutingDataSource实现动态数据源切换
针对目前网上的很多cxf相关的服务开发源码不能使用,自己做的cxf与spring的整合,里面包含了服务端和客户端代码,还有说明文档,这个demo使用的是cxf的服务端,axis2的客户端,希望能够帮到cxf初学者们。
客户端:基于Springboot来整合axis客户端 客户端用springboot实现,服务端用webService+axis+mybatis实现 java期末大作业课程设计基于springboot的医院挂号预约系统源码+数据库。 软件架构说明 服务端:WebService+...
Spring Html/CSS/ 浪曦JavaScript框架实战开发及应用 ExtJs 3.0 Oracle数据库,企业软件的基石 真实企业级CRM项目 另配套附送本项目其它高级部分,手把手教学视频在浪曦CRM教学中,比如: Mule Esb发布基于...
它支持30多种传输协议(file,FTP,UDP,TCP,email,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器,应此...
它支持30多种传输协议(file,FTP,UDP,TCP,email,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器,因此...
资源名称:WebServices基础培训视频与源码资源目录:【】1.WebService之AXIS即时发布【】10.WebService之创建...使用xfire与Spring整合开发webServie.part 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。