webserive服务调用

WebService的WSDL文件生成Java代码工具 立即下载
package cn.tisson.apms.eleInvoice.client;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPFactory;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;


import cn.tisson.apms.eleInvoice.entity.PreEleInvoice;
import cn.tisson.apms.eleInvoice.util.EsbData;
import cn.tisson.apms.eleInvoice.util.Param;
import net.sf.json.JSONObject;

/**
 * Servlet implementation class EleInvoiceServlet
 */
public class EleInvoiceServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public EleInvoiceServlet() {
        super();
    }

	
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//response.getWriter().append("Served at: ").append(request.getContextPath());\
		System.out.println("doGet");
		
		
	}	

	
    /* (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			System.out.println("*****************doPost*********************");
		    request.setCharacterEncoding("UTF-8");
			response.setContentType("application/json;charset=GBK");
			
			try {
				
				InputStream in=request.getInputStream();
				BufferedReader inbf=new BufferedReader(new InputStreamReader(in));
				StringBuffer msg = new StringBuffer("");
				String temp;
				while ((temp = inbf.readLine()) != null) {
					msg.append(temp);
				}
				inbf.close();
				String msgString = msg.toString();
				System.out.println(msgString);
				
				String sendData = "";
				if(msgString != ""){
					JSONObject jo = JSONObject.fromObject(msgString);
					System.out.println("转换数据为:"+jo.get("operationType"));

					
					PreEleInvoice eLeInvoice = new PreEleInvoice();
					eLeInvoice.setOperationType(jo.getString("operationType"));
					eLeInvoice.setPayID(jo.getString("payID"));
					eLeInvoice.setJoinNum(jo.getString("joinNum"));
					eLeInvoice.setStorageDate(jo.getString("storageDate"));
					
					if(jo.getString("operationType").equals("2")){
						System.out.println("开具发票");
						eLeInvoice.setInvoiceValue(jo.getString("invoiceValue"));
						eLeInvoice.setCustomerName(jo.getString("customerName"));
						eLeInvoice.setPushPhoneNum(jo.getString("pushPhoneNum"));
						eLeInvoice.setPushEmail(jo.getString("pushEmail"));
						eLeInvoice.setCityIdentifying(jo.getString("cityIdentifying"));
					}
					
					
					sendData = getXml(eLeInvoice);
					System.out.println(sendData);
				}
				
				String result = callWebService(sendData);
				System.out.println("ESB返回:"+result);
				
				Document document = DocumentHelper.parseText(result);
				
				
				OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream());  
				BufferedWriter bw = new BufferedWriter(out);
				
				JSONObject json = new JSONObject();
				String userName = "admin" ;
				json.put("userName", userName);
				
				bw.write("nothing but a alert");
				bw.append(json.toString());
				//bw.append("返回*********");
				bw.flush();  
				bw.close();
			}
            catch (Exception e) {
					// TODO: handle exception
			}finally {
					
			}

		doGet(request, response);
	}
	
	
	
	
	//json2String
	 public static String createJsonString(String key, Object value)
	    {
	        JSONObject jsonObject = new JSONObject();
	        jsonObject.put(key, value);
	        return jsonObject.toString();
	   
	    }
	 
	//调用webservice服务
	public static String callWebService(String sendData){
		
		String endPoint = "http://132.121.152.21:9002/ESBCBS/ProxySvc/ESBCBSWSSERV?wsdl";
		
		String result ="";
		try {
			Service service = new Service();
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(endPoint);
			call.addHeader(setSoapHeader());
			call.setOperation(setOperationDesc());
			call.setEncodingStyle(null);
			call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR,Boolean.FALSE);
			call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS,Boolean.FALSE);
			call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
			call.setOperationName(new QName("mboss-esb", "call"));
			Data data = new Data();
			data.setSendData(sendData);
			result = (String) call.invoke(new Object[]{data});
			
			
		} catch (Exception e) {
			System.out.println("call方法异常");
			e.printStackTrace();
		}
		
		return result;
	}
	
	//设置soapheader
	public static SOAPHeaderElement setSoapHeader() throws Exception {

		SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(
				"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
				"Security");
		soapHeaderElement.setActor(null);
		soapHeaderElement.setPrefix("soap");
		soapHeaderElement.setMustUnderstand(true);

		soapHeaderElement.setPrefix("wsse");
		soapHeaderElement.setNamespaceURI("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");


		SOAPElement UsernameToken = soapHeaderElement.addChildElement("UsernameToken");
		UsernameToken.setAttribute("xmlns:wsu","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");
		UsernameToken.setPrefix("wsse");
		Name Id = SOAPFactory.newInstance().createName("wsu:Id");
		UsernameToken.addAttribute(Id, "unt_yt8oqZry2uqoLc3d");

		Name Type = SOAPFactory.newInstance().createName("Type");
		UsernameToken.addChildElement("Username").setValue("TESTDZDB");
		UsernameToken.addChildElement("Password").addAttribute(Type,"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText").setValue("2a5f4092");
		return soapHeaderElement;
	}
	
	public static org.apache.axis.description.OperationDesc setOperationDesc()
			throws Exception {
		org.apache.axis.description.OperationDesc oper;
		oper = new org.apache.axis.description.OperationDesc();
		oper.setName("call");
		org.apache.axis.description.ParameterDesc param1 = new org.apache.axis.description.ParameterDesc(
				new javax.xml.namespace.QName("mboss/esb", "data"),
				org.apache.axis.description.ParameterDesc.IN,
				new javax.xml.namespace.QName("mboss/esb", ">data"),
				Data.class, false, false);
		oper.addParameter(param1);
		oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
		oper.setReturnClass(java.lang.String.class);
		oper.setReturnQName(new javax.xml.namespace.QName("mboss/esb","recvData"));
		oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
		oper.setUse(org.apache.axis.constants.Use.LITERAL);
		return oper;
	}
	
	
	//打包webservice请求数据
	public static String getXml(PreEleInvoice preEleInvoice) {
		
		EsbData data = new EsbData("EXPREELECINV");
		
		Param param = new Param("101");
		param.addCol("1", "1093001", "操作类型", preEleInvoice.getOperationType());
		param.addCol("2", "1093002", "缴费流水号", preEleInvoice.getPayID());
		param.addCol("3", "1093003", "接入号码", preEleInvoice.getJoinNum());
		param.addCol("6", "1093006", "存入日期", preEleInvoice.getStorageDate());
		
		if(preEleInvoice.getOperationType().equals("2")){
		param.addCol("4", "1093004", "发票金额", preEleInvoice.getInvoiceValue());
		param.addCol("5", "1093005", "购方名称", preEleInvoice.getCustomerName());
		param.addCol("7", "1093007", "推送手机号码", preEleInvoice.getPushPhoneNum());
		param.addCol("8", "1093008", "推送电子邮箱", preEleInvoice.getPushEmail());
		param.addCol("9", "1093009", "地市标识", preEleInvoice.getCityIdentifying());
		}
		param.endRow();
		data.addParam(param);
		
		return  data.getXmlData();
	}
	
	
	public static void main(String[] args) {
		System.out.println(new Date(System.currentTimeMillis()));
		System.out.println(System.currentTimeMillis());
		//1472715668552
		System.out.println(new Date(System.currentTimeMillis()+60*1000));
		
//		WARN  [http-apr-8080-exec-8] org.apache.axis.utils.JavaUtils - Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
//		ESB返回:<outputdatas><resultcode>BEA-382612</resultcode><reason>请检查控制信息中FuncCode与TargetCode输入是否正确!( ESBCBS/BizSvc/CBS_GZ_ )</reason></outputdatas>
//		doGet

	}
}

揭秘cocos-mcp:如何用AI助手提升CocosCreator游戏开发效率 本文深入介绍了cocos-mcp工具,它作为连接AI助手与CocosCreator编辑器的桥梁,遵循MCP协议,能显著提升游戏开发效率。通过自然语言指令,开发者可让AI直接查询场景结构、批量修改属性或生成上下文代码,将重复操作变为智能调度,实现从“手动操作者”到“指令指挥官”的工作流变革。 阅读详情

相关推荐

OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存

近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin

猥琐de专注 7188

Web Server系统概述

Web Server系统和网页是两个不同的概念 Web Server系统可以用多种技术和语言进行开发 Web Server系统由以下部分组成 Web Server系统的运行原理 开发一个Web Server系统并运行测试

weixin_45627194的博客 1838

excel wind插件使用_Python和wind的交互—在债券中的应用

个人认为学会了怎么用python和wind交互以及怎么用python处理Excel数据,就基本能替换日常很多琐碎的债券工作,还不用担心Excel某个值改变了导致整个报表都毁了。事实上在python调用wind函数和在Excel中调用函数一样简单,只要会基本的操作就够了。下面详细的介绍如何用python和wind进行交互。首先安装好python+pycharm+wind。因为python...

weixin_39863918的博客 5330

WebService全面详解

https://blog.youkuaiyun.com/ITITII/article/details/79609073

renxingzhadan的专栏 5万+

告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程)

本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。

o5p6q的博客 729

EtherCAT简介

EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。

m0_73482095的博客 1万+

Java动态调用WebService方法

突然之间.WSDL2JAVA不能认Delphi写的WebSerice生成的WSDL了.于是才开始看看如何动态调用, 其实这里的代码都是从JBuilderX的WSDL2JAVA中自动生成的stub作参考的.    OperationDesc opd = new OperationDesc();    opd.setName("AttemperFiberPairChannel");    op

大道废 7180

ubuntu20.04配置UR机械臂的仿真环境

gazebo和rviz中的机械臂的位姿是一样的,要实现同步控制,可以拖动rviz中的球移动到指定位置,点击plan观察路径规划,点击execute执行该路径规划,可以在gazebo和rviz中同步看到刚刚的路径规划运动,实现了简单的机械臂仿真环境搭建。这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令,参考之前的。之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。时,一直不成功,解决办法可以看我之前写的。

weixin_48319333的博客 3494

webservice 客户端代码编写(一)

webservice 客户端编写,saop webservice 根据wsdl编写代码 package ttttttt; import java.rmi.RemoteException; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import org.apache.axis.Ax...

yuegedetiang的专栏 811

状态转移矩阵在离散控制系统中的应用与实现步骤详解

本文深入解析了状态转移矩阵在离散控制系统中的核心作用与实现步骤。通过一个具体实例,详细演示了如何将连续状态空间模型精确离散化,计算出离散系统矩阵A_d和B_d,并分享了采样周期选择、数值计算技巧及嵌入式C语言实现等关键工程经验,为开发高性能数字控制器提供实用指南。

weixin_28454475的博客 380

7、树莓派故障排查全攻略

本文详细介绍了树莓派在使用过程中常见的各类故障及其排查方法。内容涵盖键盘鼠标诊断、电源诊断、显示诊断、启动诊断、网络诊断以及紧急内核的使用,提供了具体的解决方法和实用建议。同时,文章总结了故障排查流程、常见故障及解决方法的汇总,并给出了注意事项和操作建议,帮助用户高效解决树莓派使用过程中的问题,确保其稳定运行。

cream的博客 324

webSerivce简明使用教程

因为前段时间,需要使用到webService来调用公司的其他系统api接口,但是请求方式和我熟知的http请求不一样,是基于soap协议来传输xml数据格式,请求的参数极其复杂

最爱吃鱼罐头的博客 1万+

HyperLynx(十八)DDR(一)DDR简介和DDR的数据仿真

LVTTL电平为单端信号,而SSTL电平本质上是差分对,其实现机制是将信号与参考电平Vref组成差分对进行比较,如图所示,VIH和VIL各有一个交流参数AC和直流参数DC,信号第一次越过AC门限的时刻,作为时序计算的参考点,此后只要信号保持DC门限内,逻辑状态保持不变,这种设计减小了噪声、振铃等对于信号质量的影响。经过调整后,控制器在发送颗粒1的DQS后,延时1ns再发送颗粒2的DQS,则颗粒1在1ns后收到对齐的DQS和CLK,颗粒2在2ns后收到对齐的DQS和CLK,从而满足了时序关系。

小幽余生不加糖 7677

webserive实践

websirvice简短的说就是,服务器给客户端如何提供服务。 常见的有: 1.RPC远程过程调用,像调用本地服务(方法)一样调用服务器的服务(方法)。 2.SOAP面向服务架构,是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。 3.RESTFUL面向资源,Representational State Transfer,简称REST,一种软件架构风格,设计

码无边 1297

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HttpClient对webserive测试

继上一篇SoapUI对webservice进行功能测试,补充用httpclient对webservice进行测试,将返回的数据写到xml中便于查看 @Test public void test1() throws ClientProtocolException, IOException{ String file_dir="./File"; String file="./File/for

luozhuwang的专栏 1707

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

解析webserive的返回

String[] value = message.split("entry="); String[] value2=value[1].toString().split("\\;\\}"); String[] status = value2[0].split(";"); String[] status1=status[1].split("value="); S

Barving的专栏 446

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

http动态调用webserive

前言 传统方式调用WebService是直接引用服务,生成客户端代理类类,这种方式将ws进行了再次封装,并以代理的方式进行调用,这种方式的优点是简单,方便。 但是此种方式不足的地方是,当对方ws接口变更时,这边引用的服务同时也需要编译并部署,或者我调用方这边想动态指定不同服务地址时,此方式就不太适应这种场景了。 有一种方式是动态调用ws的方式。就是通过ws的服务描述...

weixin_34268310的博客 141

webserive中的xml、http、schema

一、http协议 请求行中的GET称之为请求方式,请求方式有: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT 常用的有: GET、 POST 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。 不管POST

jaryle的专栏 624

webserive接口调用

public function test() { libxml_disable_entity_loader(false); ini_set("soap.wsdl_cache_enabled", "0"); $soap = new \SoapClient ('http://172.24.64.65:8080/ghsms/services/SMS?WSDL'); ...

weixin_34138377的博客 140

使用Axis发布Webserive

前戏:        其实有很多方式可以发布Webservice,我试验成功的有xfire和Axis,本来对xfire情有独钟的,无奈xfire的jar包太多,随便数了下有40多个,与我原项目中的多数jar包相冲突,并且有的版本和名称都不一样,手动挑选可能会发生些不可预计的错误,于是我转用Axis.          无论用哪种方式开发,或者开发什么,首先你都得到其官网下载它的包.我下的是最新的a...

shingo7的专栏 202

webserive学习记录3-eclipse创建webservice

  在用J2EE版的ECLIPSE学习WEBSERVICE的时候发现原来直接用该ECLIPSE就可以创建webservice,然后就自己动手用ECLIPSE自带的功能来建立WEBSERVICE服务端和客户端。网上相关内容很多,下面就说说我是怎么做的。   服务端   先编写好服务接口及实现类,如图:   然后在新建一个webservice服务   1中为我们编写的实现...

QQ40153258的博客 164

webserive联调第三方接口

1. 通过soapui新建一个soapui project并填上项目一个地址类似这样:http://127.0.0.1:8888/EsbBusService.asmx?WSDL 2.输入请求xml 类似这样:需要在body外加上:<![CDATA[]]> <soap:Envelope xmlns:soap="" xmlns:tem="/"> <soap:Header/> <soap:Body> <tem:Process...

风起尘落的博客 696

AXIS2 webSerive

使用eclipse内置的插件创建AXIS2 webSerive服务器端与客户端代码

菜菜 490

VS2010 创建WebSerive程序

Visual Studio 2010默认采用的框架为.NET Framework4,在这个框架中已找不到直接创建WebService的模板方式了。但VS2010可以创建WebService是毋庸置疑的,那么怎么在VS2010中创建WebService呢,请看下面为您提供的两种方法,方法已经本人测试,可以放心使用!     方法一:.NET Framework4.0框架下,依然可以创建We

马兆娟 廊坊师范学院信息技术提高班第八期 2906

webserive 用xml写的 登陆方法

public string Select(string id,string ps)         {             //File.WriteAllText("D:/users/anmj/documents/visual studio 2010/Projects/Bill/Bill/123.xml", Encryption.Encrypt(str));             st

刘晓飞 809

suds调用webserive的suds.TypeNotFound错误解决

原文链接:https://www.cnblogs.com/elephanyu/p/9136556.html 操作环境:python3.6 + suds-jurko 0.6 ====================================================================== 一、问题概述   任务中涉及到调用webservice服务,便使用suds写公...

qq284489030的博客 2673
上一篇: get/post方式调用http接口
下一篇: 上传下载文件实例异常:java.lang.IllegalStateException怎么解决?
Eric__java
博客等级 码龄12年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值