webservice调用与发布

该博客围绕Java开发,涉及订单信息的录入与修改业务。详细介绍了WebService服务端的编写与调用,包括服务端发布的CxfWebServiceConfig类、qdInfoWebService接口及实现,还提及文件目录结构和pom.xml,满足特定功能需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务:订单信息的录入,修改订单信息,包括webservice的服务端编写,以及调用

接收方

服务端发布CxfWebServiceConfig类

package org.jeecg.modules.webservice.util;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.jeecg.modules.webservice.server.qdInfoWebService;
import org.jeecg.modules.webservice.server.qdInfoWebServiceImpl;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
import org.apache.cxf.transport.servlet.CXFServlet;
/**
 * 服务发布
 */
@Configuration
public class CxfWebServiceConfig {
    /**
     *
     * */
    @Bean("cxfServletRegistration")
    public ServletRegistrationBean dispatcherServlet(){

        return new ServletRegistrationBean(new CXFServlet(),"/ws/*");
    }
    /**
     * 申明业务处理类 当然也可以直接 在实现类上标注 @Service
     */
    @Bean
    public qdInfoWebService userService() {
        return new qdInfoWebServiceImpl();
    }
    /*
     * 非必要项
     */
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        SpringBus springBus = new SpringBus();
        return springBus;
    }
    /*
     * update
     */
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), userService());
        endpoint.publish("/updateQdInfoByGwid");//发布地址
        return endpoint;
    }
    /*
     * insert
     */
    @Bean
    public Endpoint endpoint2( ) {
        EndpointImpl endpoint = new EndpointImpl(springBus(), userService());
        endpoint.publish("/insertQdInfo");//发布地址
        return endpoint;
    }

}

qdInfoWebService接口

package org.jeecg.modules.webservice.server;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface qdInfoWebService {
    @WebMethod
    public String insertQdInfo(@WebParam(name = "param") String param);
    @WebMethod
    public String updateQdInfoByGwid(@WebParam(name = "param") String param);
}

qdInfoWebServiceImpl接口实现

package org.jeecg.modules.webservice.server;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.webservice.entity.QdTQdinfo;
import org.jeecg.modules.webservice.mapper.QdInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.jws.WebMethod;
import javax.jws.WebService;
import java.util.Calendar;
import java.util.Date;


@Slf4j
@WebService(
        name="testCXF",
        targetNamespace="http://server.webservice.modules.jeecg.org/",
        endpointInterface= "org.jeecg.modules.webservice.server.qdInfoWebService")
public class qdInfoWebServiceImpl implements qdInfoWebService {

    @Autowired
    private QdInfoMapper qdInfoMapper;

    @Override
    @WebMethod
    public String insertQdInfo(String param) {
        QdTQdinfo qdTQdinfo = JSONObject.parseObject(param,QdTQdinfo.class);

        Date dd = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(dd);
        calendar.set(Calendar.HOUR_OF_DAY, 0);//时
        calendar.set(Calendar.MINUTE, 0);//分
        calendar.set(Calendar.SECOND, 0);//秒
        calendar.add(Calendar.DATE,6);
        Date now = calendar.getTime();
        qdTQdinfo.setId("");//主键
        qdTQdinfo.setCreateBy("na");//创建人
        qdTQdinfo.setCreateTime(dd);//创建时间
        qdTQdinfo.setUpdateBy("");//修改人
        qdTQdinfo.setUpdateTime(null);//修改日期
        qdTQdinfo.setSysOrgCode("A01");//编号
        qdTQdinfo.setStatus("抢单中");//状态
        qdTQdinfo.setDateEnddate(now);//截止时间
        //int i = qdInfoMapper.insertQdInfo(q);
        int i = qdInfoMapper.insert(qdTQdinfo);
        return i+"";
    }

    @Override
    public String updateQdInfoByGwid(String param) {
        QdTQdinfo qdTQdinfo = JSONObject.parseObject(param,QdTQdinfo.class);
        int i = qdInfoMapper.updateQdInfoByGwid(qdTQdinfo);
        int j = qdInfoMapper.updateQdUserByGwidandUserID(qdTQdinfo);
        return i+";"+j;
    }
}

文件目录结构

发送方之订单信息的录入

 SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = new Date();
        String nowTime = s.format(dd);
        //insert操作
        Qd d = new Qd();
        d.setGwId("gwid123456789");
        d.setProjectname("中国移动辽宁公司");
        d.setApplicant("金常佳");
        d.setDepartment("辽宁移动/信息技术中心/管理支撑室");
        d.setApplytime(dd);
        d.setProjectnumber("20200617");
        d.setDemandtype("其他业务需求");
        d.setApplytype("成本");
        d.setFexpenses("成本");
        d.setSigningmethod("非框架协议");
        d.setNamount("493640");
        d.setCess("6%");
        d.setBudgetnumber("P311019120964");
        d.setProjectmoney("493640");
        d.setProjectmoneytax("523258.4");
        d.setPolicydecision("");
        d.setPurchasetype("服务类");
        d.setConsulting("否");
        d.setScene("否");
        d.setIntroduce("商务应用不采用统一来源,选择否,若采用单一来源,则必须选择唯一场景,选择是");
        d.setDepartmentleaders("王欣");
        d.setReason("以资产管理系统唯系统联合自由运维人员对系统申告类型以及标准解决方案进行梳理,分类,形成系统申告知识库,加载志各类业务流程......");
        d.setProgramme("1.梳理资产管理系统常见公告,根据涉及的流程进行归类处理,2.将现存申告处理手段迁移志系统前台,提高用户自处理能力");
        d.setPurchasedescription("");
        d.setPurchaseprocess("<a>查看阶段流程</a>");
        d.setProjectprocess("<a>查看项目立项流程</a>");
        d.setIsargumentation("是");
        d.setArgumentationmembers("金碧瑶,吴秀春,消波");
        d.setArgumentationendtime("");
        d.setArgumentationtime("");
        d.setBusinesstime(nowTime);
        d.setBusiness("是");
        d.setComefacturers("");
        d.setRecommendedmanufacturers("");
        String str = JSONObject.toJSONString(d);//将java对象转换为json对象 
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:8080/jeecg-boot/ws/insertQdInfo?wsdl");
        Object[] objects = new Object[0];
        QName operationName = new QName("http://server.webservice.modules.jeecg.org/", "insertQdInfo");
        try {
            objects = client.invoke(operationName, str);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String strmsg = String.valueOf(objects[0]);

发送方之修改订单信息

       

 //更新操作
        Qd d = new Qd();
        d.setGwId("gwid123456789");
        d.setCgUserid("guoshuai");
        d.setCgUsername("中国移动");
        d.setGysInfo("中国移动");
        d.setStatus("评估中");
        String str = JSONObject.toJSONString(d);//将java对象转换为json对象 
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:8080/jeecg-boot/ws/updateQdInfoByGwid?wsdl");
        Object[] objects = new Object[0];
        QName operationName = new QName("http://server.webservice.modules.jeecg.org/", "updateQdInfoByGwid");
        try {
            objects = client.invoke(operationName, str);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String strmsg = String.valueOf(objects[0]);

pom.xml

<dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-frontend-jaxws</artifactId>
   <version>3.3.3</version>
</dependency>
<dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http</artifactId>
   <version>3.3.3</version>
</dependency>

需求:可以过,看具体的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值