JSON

Wizzers World(6)

字号+ 作者:H5之家 来源:H5之家 2016-07-02 10:00 我要评论( )

pom.xml !--CXF START--dependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-api/artifactIdversion2.7.15/version/dependencydependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-rt-frontend-jaxws/artifac

pom.xml

<!--CXF START--> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-api</artifactId> <version>2.7.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.7.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-bindings-soap</artifactId> <version>2.7.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>2.7.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-ws-security</artifactId> <version>2.7.15</version> </dependency> <!--CXF END-->

web.xml

<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>com.auto.webservice.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/webservice/*</url-pattern> </servlet-mapping> CXFServlet.java: package com.auto.webservice.servlet; import org.apache.cxf.Bus; import org.apache.cxf.BusFactory; import org.apache.cxf.frontend.ServerFactoryBean; import org.apache.cxf.transport.servlet.CXFNonSpringServlet; import org.nutz.ioc.Ioc; import org.nutz.lang.Strings; import org.nutz.log.Log; import org.nutz.log.Logs; import org.nutz.mvc.Mvcs; import javax.jws.WebService; import javax.servlet.ServletConfig; import javax.xml.namespace.QName; /** * Created by wizzer on 15-4-10. */ @SuppressWarnings("serial") public class CXFServlet extends CXFNonSpringServlet { private final Log log = Logs.get(); @Override protected void loadBus(ServletConfig sc) { super.loadBus(sc); //全局配置 Bus bus = getBus(); //添加白名单过滤器 bus.getInInterceptors().add(new IpAddressInInterceptor()); //使用全局配置 BusFactory.setDefaultBus(bus); Ioc ioc = Mvcs.ctx().getDefaultIoc(); for (String name : ioc.getNames()) { try { Object obj = ioc.get(null, name); if (!obj.getClass().getPackage().getName().equals("com.auto.webservice.server")) { continue; } if (obj.getClass().getAnnotation(WebService.class) == null) continue; Class face = Class.forName(obj.getClass().getPackage().getName() + "." + Strings.upperFirst(name)); ServerFactoryBean serverFactoryBean = new ServerFactoryBean(); // 设置服务接口类 serverFactoryBean.setServiceClass(face); // 服务请求路径 serverFactoryBean.setAddress("http://www.wizzer.cn/" + name.substring(0, name.indexOf("Service"))); // 设置服务实现类 serverFactoryBean.setServiceBean(obj); serverFactoryBean.setBindingId("http://schemas.xmlsoap.org/wsdl/soap12/"); serverFactoryBean.create(); } catch (Throwable e) { } } } }

接口类

WorkflowService.java package com.auto.webservice.server; import org.nutz.json.Json; import javax.jws.WebService; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by wizzer on 15-4-13. */ @WebService public interface WorkflowService { String start(String flowKey, String userId);//启动流程 }

 

实现类

WorkflowServiceImpl.java

 

package com.auto.webservice.server; import org.activiti.engine.*; import org.activiti.engine.form.FormProperty; import org.activiti.engine.form.StartFormData; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; import org.nutz.json.JsonFormat; import org.nutz.lang.Strings; import org.nutz.log.Log; import org.nutz.log.Logs; import org.nutz.mvc.Mvcs; import javax.jws.WebService; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by wizzer on 15-4-13. */ @IocBean(name = "workflowService") @WebService public class WorkflowServiceImpl implements WorkflowService { private final Log log = Logs.get(); @Inject Dao dao; @Inject FormService formService; @Inject IdentityService identityService; @Inject RepositoryService repositoryService; @Inject RuntimeService runtimeService; @Inject TaskService taskService; /** * 启动一个流程 * * @param flowKey 流程模型key * @param userId 用户ID * @return */ public String start(String flowKey, String userId) { Map<String, Object> map = new HashMap<String, Object>(); try { if (!Strings.isEmpty(userId)) { identityService.setAuthenticatedUserId(userId); } ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(flowKey); map.put("errcode", 0); map.put("errmsg", ""); map.put("processInstanceId", processInstance.getId()); } catch (Exception e) { log.error("WebServcice启动流程出错", e); map.put("errcode", 1); map.put("errmsg", e.getMessage()); } finally { identityService.setAuthenticatedUserId(null); } return Json.toJson(map, JsonFormat.compact()); } }

 

‘编程学习’ 分类下的所有文章

2015四月27

Nutz 集成Activiti5.17.0 [01]初始化activiti

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 用JSON API插件搭建WordPress api,返回文章列表等信息 半白色

    用JSON API插件搭建WordPress api,返回文章列表等信息 半白色

    2015-11-18 09:23

网友点评
s