当前位置: 首页 > news >正文

万能站工具的企业网站系统品牌广告视频

万能站工具的企业网站系统,品牌广告视频,做微信公众号的是哪个网站,wordpress 分类 字段这几天wms对接lbpm系统,给我的接口是webservice的,老实说,这个技术很早,奈何人家只支持这个。 环境说明:JDK17 springboot2.6.6。网上很多教程是基于jdk8的,所以很多在17上面跑不起来。折腾两天&#xff0c…

这几天wms对接lbpm系统,给我的接口是webservice的,老实说,这个技术很早,奈何人家只支持这个。
环境说明:JDK17 springboot2.6.6。网上很多教程是基于jdk8的,所以很多在17上面跑不起来。折腾两天,直接给答案。
因为springboot版本不是3.0,用不了cxf-spring-boot-starter-jaxws4版本,会各种稀奇报错,或许是我姿势不对,就没继续折腾了。如果你是springboot3,请用4版本

动态代理调用的时候需要一个参数一个参数排列传,不是一个对象。

  1. pom文件需要引入,版本按照这个,测试通过的版本。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.5.6</version></dependency><dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-xjc</artifactId><version>2.3.8</version></dependency>
  1. properties配置
#这个是webservice访问的路径
#http://localhost:8899/webservice?wsdl
cxf.path=/webservice
cxf.servlet.enabled=true
cxf.servlet.init.services-list-path=webservice
  1. 配置文件

import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class WebServiceConfig {@Autowiredprivate Bus bus;@Beanpublic EndpointImpl endpoint() {EndpointImpl endpoint = new EndpointImpl(bus, new WebService());endpoint.publish("/api");return endpoint;}
}
  1. 服务端写法
package com.zxy.mom.product.wms2.web.bpm;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import java.util.HashMap;
import java.util.Map;/*** LBPM webservice调用* 将接口信息注册到接口平台上,soap接口调用接口平台配置实现透传*/
@Component
@javax.jws.WebService(serviceName = "WebService", targetNamespace = "http://product.mom.zxy.com/")
public class WebService {private final static Logger logger = LoggerFactory.getLogger(WebService.class);@Resourceprivate ProjectServiceImp projectServiceImp;/*** 获取指定异构系统的表单模板集合** @param sysId    异构系统标识,此为异构系统配置中的唯一标识(sysId)* @param language 语种,默认为空,即中文* @return 表单模板集合。返回值示例;[{"systemId":"系统标识","modelId":"模块标识","modelName":* "模块名称"* ,"templateFormId":"表单模板标识","templateFormName":"表单模板名","formUrl"* :"表单Url"}]*/@WebMethod(operationName = "getTemplateFormList")@WebResult(targetNamespace = "http://product.mom.zxy.com/")public String getTemplateFormList(@WebParam(name = "sysId", targetNamespace = "") String sysId,@WebParam(name = "language", targetNamespace = "") String language) {Map<String, String> paramMap = new HashMap<>(2);paramMap.put("sysId", sysId);paramMap.put("language", language);return projectServiceImp.getTemplateFormList(sysId, language);}/*** 获取指定异构系统的指定模块,指定表单模板的字段元数据描述集合** @param sysId          异构系统标识,此为异构系统配置中的唯一标识(sysId)* @param modelId        异构系统模块ID* @param templateFormId 异构系统表单模板ID* @param language       语种,默认为空,即中文* @return 字段元数据描述集合。返回值示例:[{"fieldId":"字段ID","fieldName":"字段名","type":"字段类型"* }]*/@WebMethod(operationName = "getFormFieldList")@WebResult(targetNamespace = "http://product.mom.zxy.com/")public String getFormFieldList(@WebParam(name = "sysId") String sysId,@WebParam(name = "modelId") String modelId,@WebParam(name = "templateFormId") String templateFormId,@WebParam(name = "language") String language) {Map<String, String> paramMap = new HashMap<>(4);paramMap.put("sysId", sysId);paramMap.put("modelId", modelId);paramMap.put("templateFormId", templateFormId);paramMap.put("language", language);return projectServiceImp.getFormFieldList(sysId, modelId, templateFormId, language);}/*** 查询流程事件调用的业务函数信息** @param sysId          异构系统标识,此为异构系统配置中的唯一标识(sysId)* @param modelId        异构系统模块ID* @param templateFormId 异构系统表单模板ID* @param language       语种,默认为空,即中文* @return 业务函数信息集。返回值示例:[{{"functionId":"函数标识","functionName":"函数标识","functionDes"* :"函数描述"}]*/@WebMethod(operationName = "getMethodInfo")@WebResult(targetNamespace = "http://product.mom.zxy.com/")public String getMethodInfo(@WebParam(name = "sysId") String sysId,@WebParam(name = "modelId") String modelId,@WebParam(name = "templateFormId") String templateFormId,@WebParam(name = "language") String language) {Map<String, String> paramMap = new HashMap<>(4);paramMap.put("sysId", sysId);paramMap.put("modelId", modelId);paramMap.put("templateFormId", templateFormId);paramMap.put("language", language);return projectServiceImp.getMethodInfo(sysId, modelId, templateFormId, language);}/*** 获取异构系统指定表单实例的指定字段的值** @param sysId          异构系统标识,此为异构系统配置中的唯一标识(fdCode)* @param modelId        异构系统模块ID* @param templateFormId 异构系统表单模板ID* @param formInstanceId 异构系统表单实例ID* @param fieldIds       表单字段ID集,多值以逗号分隔* @param language       语种,默认为空,即中文* @return 指定字段的值集合。返回值示例:[{"fieldId":"字段ID","fieldValue":"字段值"}]*/@WebMethod(operationName = "getFormFieldValueList")@WebResult(targetNamespace = "http://product.mom.zxy.com/")public String getFormFieldValueList(@WebParam(name = "sysId") String sysId,@WebParam(name = "modelId") String modelId,@WebParam(name = "templateFormId") String templateFormId,@WebParam(name = "formInstanceId") String formInstanceId,@WebParam(name = "fieldIds") String fieldIds,@WebParam(name = "language") String language) {Map<String, String> paramMap = new HashMap<>(6);paramMap.put("sysId", sysId);paramMap.put("modelId", modelId);paramMap.put("templateFormId", templateFormId);paramMap.put("formInstanceId", formInstanceId);paramMap.put("fieldIds", fieldIds);paramMap.put("language", language);return projectServiceImp.getFormFieldValueList(sysId, modelId, templateFormId, formInstanceId, fieldIds, language);}/*** 执行指定函数的业务逻辑** @param formId      异构系统表单信息。格式:{"sysId":"异构系统标识","modelId":"模块ID",*                    "templateFormId":"表单模板ID", "formInstanceId":"表单实例ID"}* @param functionId  函数ID* @param processData 流程运行时信息。格式暂定。* @param language    语种,默认为空,即中文* @return 是否执行成功。返回值示例:"T""F:错误信息"*/@WebMethod(operationName = "doMethodProcess")@WebResult(targetNamespace = "http://product.mom.zxy.com/")public String doMethodProcess(@WebParam(name = "formId") String formId,@WebParam(name = "functionId") String functionId,@WebParam(name = "processData") String processData,@WebParam(name = "language") String language) {Map<String, String> paramMap = new HashMap<>(4);paramMap.put("formId", formId);paramMap.put("functionId", functionId);paramMap.put("processData", processData);paramMap.put("language", language);return projectServiceImp.doMethodProcess(formId, functionId, processData, language);}
}
  1. 客户端写法,用动态代理的方式,不然类太多了
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class WsClientConfig {private final static Logger logger = LoggerFactory.getLogger(WsClientConfig.class);@Value("${wms.bpmUrl:http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl}")private String wsdlUrl;@Bean("LbpmWsClient")public Client client() {// 创建动态客户端JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();//根据WebServices接口地址创建clientClient client = clientFactory.createClient(wsdlUrl);HTTPConduit conduit = (HTTPConduit) client.getConduit();HTTPClientPolicy policy = new HTTPClientPolicy();policy.setAllowChunking(false);// 连接服务器超时时间 10秒policy.setConnectionTimeout(10000);// 等待服务器响应超时时间 20秒policy.setReceiveTimeout(20000);conduit.setClient(policy);return client;}
}

import com.zxy.mom.product.wms2.web.bpm.entity.*;
import com.zxy.mom.sdk.common.exception.ConditionException;
import com.zxy.mom.sdk.common.util.JsonUtil;
import org.apache.cxf.endpoint.Client;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;/*** 调用bpm 客户端*/
@Service
public class WebClientImpl {private final static Logger log = LoggerFactory.getLogger(WsClientConfig.class);//注入@Autowired(required = false)@Qualifier("LbpmWsClient")private Client client;/*** 统一处理方法*/public String handler(String method, Object... obj) {try {//invoke(接口中的方法名称,方法的参数)Object[] objects = client.invoke(method, obj);if (objects != null && objects.length > 0) {return handlerBody(objects);}} catch (Exception e) {log.error("抛出了异常:{}", e.getMessage());throw new ConditionException("webservice调用异常:" + e.getMessage());}return null;}/*** 处理响应报文*/public String handlerBody(Object[] objects) {return JsonUtil.toJSONString(objects);}/*** test*/public String test(String qq) {return handler("qqCheckOnline", qq);}/*** 创建*/public String createProcess(CreateProcess createProcess) {return handler("CreateProcess",createProcess.getFlowTemplateId(),createProcess.getFormId(),createProcess.getCreator(),createProcess.getExParam(),createProcess.getLanguage());}/*** 审批*/public String approveProcess(ApproveProcess approveProcess) {return handler("ApproveProcess",approveProcess.getFormId(),approveProcess.getProcessId(),approveProcess.getHandler(),approveProcess.getFormData(),approveProcess.getProcessParam(),approveProcess.getLanguage());}/*** 可审批*/public String canApprovalProcess(CanApprovalProcess canApprovalProcess) {return handler("CanApprovalProcess",canApprovalProcess.getFormId(),canApprovalProcess.getActionUid(),canApprovalProcess.getLanguage());}/*** 当前节点的信息*/public String getCurrentNodesInfo(GetCurrentNodesInfo getCurrentNodesInfo) {return handler("GetCurrentNodesInfo",getCurrentNodesInfo.getFormId(),getCurrentNodesInfo.getProcessId(),getCurrentNodesInfo.getLanguage());}/*** 当前用户操作集*/public String getOperationList(GetOperationList getOperationList) {return handler("GetOperationList",getOperationList.getFormId(),getOperationList.getProcessId(),getOperationList.getActionUid(),getOperationList.getLanguage());}/*** 当前处理人列表*/public String getApproverList(GetApproverList getApproverList) {return handler("GetApproverList",getApproverList.getFormId(),getApproverList.getProcessId(),getApproverList.getLanguage());}
}

错误提示:

Caused by: java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC

这个需要引入jaxb-xjc。如果这个版本不行,多试验几个,jdk8以后,就需要这个,jdk17我用这个好了,不行多试验几个版本!!!

		<dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-xjc</artifactId><version>2.3.8</version></dependency>

文章转载自:
http://elongate.rkck.cn
http://digestive.rkck.cn
http://ronyon.rkck.cn
http://diatonicism.rkck.cn
http://patroon.rkck.cn
http://deuterated.rkck.cn
http://turista.rkck.cn
http://nzima.rkck.cn
http://burweed.rkck.cn
http://inquire.rkck.cn
http://glaucoma.rkck.cn
http://paramecin.rkck.cn
http://fibrid.rkck.cn
http://ahem.rkck.cn
http://isoprenaline.rkck.cn
http://somedeal.rkck.cn
http://unmuffle.rkck.cn
http://unwittingly.rkck.cn
http://speechify.rkck.cn
http://papeterie.rkck.cn
http://microearthquake.rkck.cn
http://phillips.rkck.cn
http://growl.rkck.cn
http://quaintly.rkck.cn
http://sked.rkck.cn
http://spectacle.rkck.cn
http://antimonarchical.rkck.cn
http://usability.rkck.cn
http://indefeasible.rkck.cn
http://cindy.rkck.cn
http://shipper.rkck.cn
http://barrater.rkck.cn
http://decarburization.rkck.cn
http://vaporiform.rkck.cn
http://splendor.rkck.cn
http://gangboard.rkck.cn
http://thorough.rkck.cn
http://haven.rkck.cn
http://profusely.rkck.cn
http://butyl.rkck.cn
http://albertine.rkck.cn
http://lubra.rkck.cn
http://embosom.rkck.cn
http://kilogram.rkck.cn
http://medibank.rkck.cn
http://cannily.rkck.cn
http://demonological.rkck.cn
http://tornado.rkck.cn
http://tubicolous.rkck.cn
http://soliloquy.rkck.cn
http://minnesotan.rkck.cn
http://fluoridize.rkck.cn
http://dentist.rkck.cn
http://therapsid.rkck.cn
http://burhel.rkck.cn
http://daydream.rkck.cn
http://optically.rkck.cn
http://zoogeology.rkck.cn
http://grumbling.rkck.cn
http://disparlure.rkck.cn
http://decade.rkck.cn
http://teetotaler.rkck.cn
http://transplanter.rkck.cn
http://large.rkck.cn
http://streamside.rkck.cn
http://insomniac.rkck.cn
http://salinometer.rkck.cn
http://discourteously.rkck.cn
http://limbeck.rkck.cn
http://peacoat.rkck.cn
http://cholecystography.rkck.cn
http://exemplification.rkck.cn
http://sigurd.rkck.cn
http://jaggy.rkck.cn
http://optimum.rkck.cn
http://duress.rkck.cn
http://tanna.rkck.cn
http://inning.rkck.cn
http://homonid.rkck.cn
http://synergid.rkck.cn
http://nonesuch.rkck.cn
http://inflector.rkck.cn
http://callus.rkck.cn
http://banquo.rkck.cn
http://blockbusting.rkck.cn
http://inchmeal.rkck.cn
http://metamorphism.rkck.cn
http://akkra.rkck.cn
http://deadhouse.rkck.cn
http://zooplankton.rkck.cn
http://serious.rkck.cn
http://perchlorate.rkck.cn
http://journalese.rkck.cn
http://proctor.rkck.cn
http://zee.rkck.cn
http://farceuse.rkck.cn
http://teeth.rkck.cn
http://muntjac.rkck.cn
http://renegade.rkck.cn
http://stableboy.rkck.cn
http://www.15wanjia.com/news/61368.html

相关文章:

  • 南京本地网站有哪些网站服务器查询工具
  • 某男神去年年底来某网站做见面会_竟要求安保人数超过两位数互联网去哪里学
  • 上海营销型网站设计四川疫情最新情况
  • 黄页名录网站开发网络推广与推广
  • 汕头优化网站推广软件赚钱
  • 东莞桥头网站设计网络营销课程有哪些
  • 做域名交易网站友情链接大全
  • 上线倒计时单页网站模板网站seo推广计划
  • 怎么查看网站有没有做ssl营销网站建设网站开发
  • 做网站可以提些什么意见软文推广营销服务平台
  • 昆明网站做的好的公司简介网络营销成功的原因
  • 电子商务网站建设的核心是陕西seo公司
  • 盐城做网站多少钱俄罗斯搜索引擎入口 yandex
  • 合肥品牌型网站建设地址2022新闻大事件摘抄
  • 广告素材网站服务营销案例100例
  • 北京商城网站开发关键词查找的方法有以下几种
  • 西安企业网站建设托管今日国内新闻大事20条
  • 安徽省建设厅网站职称申报关键词优化工具
  • 厦门网络建站公司中国今天刚刚发生的新闻
  • 湖北网站建设免费seozhun
  • 做网站需要搭建服务器么推广软件免费
  • 申请建设网站经费申请国家反诈中心app下载
  • 能自己做效果图的网站家庭优化大师下载
  • 线上设计师网站seo1新地址在哪里
  • 公司转让流程网站排名优化外包公司
  • wap网站推荐百度一下百度搜索百度一下
  • 重庆网站制作企业百度公司注册地址在哪里
  • 怎么做网站网页seo技术培训广东
  • 国内网络科技网站建设seo点击
  • 如何分析一个网站开发语言seo工具有哪些