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
}
}
相关推荐
OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存
近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin
Web Server系统概述
Web Server系统和网页是两个不同的概念 Web Server系统可以用多种技术和语言进行开发 Web Server系统由以下部分组成 Web Server系统的运行原理 开发一个Web Server系统并运行测试
excel wind插件使用_Python和wind的交互—在债券中的应用
个人认为学会了怎么用python和wind交互以及怎么用python处理Excel数据,就基本能替换日常很多琐碎的债券工作,还不用担心Excel某个值改变了导致整个报表都毁了。事实上在python调用wind函数和在Excel中调用函数一样简单,只要会基本的操作就够了。下面详细的介绍如何用python和wind进行交互。首先安装好python+pycharm+wind。因为python...
WebService全面详解
https://blog.youkuaiyun.com/ITITII/article/details/79609073
告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程)
本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。
EtherCAT简介
EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。
Java动态调用WebService方法
突然之间.WSDL2JAVA不能认Delphi写的WebSerice生成的WSDL了.于是才开始看看如何动态调用, 其实这里的代码都是从JBuilderX的WSDL2JAVA中自动生成的stub作参考的. OperationDesc opd = new OperationDesc(); opd.setName("AttemperFiberPairChannel"); op
ubuntu20.04配置UR机械臂的仿真环境
gazebo和rviz中的机械臂的位姿是一样的,要实现同步控制,可以拖动rviz中的球移动到指定位置,点击plan观察路径规划,点击execute执行该路径规划,可以在gazebo和rviz中同步看到刚刚的路径规划运动,实现了简单的机械臂仿真环境搭建。这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令,参考之前的。之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。时,一直不成功,解决办法可以看我之前写的。
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...
状态转移矩阵在离散控制系统中的应用与实现步骤详解
本文深入解析了状态转移矩阵在离散控制系统中的核心作用与实现步骤。通过一个具体实例,详细演示了如何将连续状态空间模型精确离散化,计算出离散系统矩阵A_d和B_d,并分享了采样周期选择、数值计算技巧及嵌入式C语言实现等关键工程经验,为开发高性能数字控制器提供实用指南。
7、树莓派故障排查全攻略
本文详细介绍了树莓派在使用过程中常见的各类故障及其排查方法。内容涵盖键盘鼠标诊断、电源诊断、显示诊断、启动诊断、网络诊断以及紧急内核的使用,提供了具体的解决方法和实用建议。同时,文章总结了故障排查流程、常见故障及解决方法的汇总,并给出了注意事项和操作建议,帮助用户高效解决树莓派使用过程中的问题,确保其稳定运行。
webSerivce简明使用教程
因为前段时间,需要使用到webService来调用公司的其他系统api接口,但是请求方式和我熟知的http请求不一样,是基于soap协议来传输xml数据格式,请求的参数极其复杂
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,从而满足了时序关系。
webserive实践
websirvice简短的说就是,服务器给客户端如何提供服务。 常见的有: 1.RPC远程过程调用,像调用本地服务(方法)一样调用服务器的服务(方法)。 2.SOAP面向服务架构,是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。 3.RESTFUL面向资源,Representational State Transfer,简称REST,一种软件架构风格,设计
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
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
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
http动态调用webserive
前言 传统方式调用WebService是直接引用服务,生成客户端代理类类,这种方式将ws进行了再次封装,并以代理的方式进行调用,这种方式的优点是简单,方便。 但是此种方式不足的地方是,当对方ws接口变更时,这边引用的服务同时也需要编译并部署,或者我调用方这边想动态指定不同服务地址时,此方式就不太适应这种场景了。 有一种方式是动态调用ws的方式。就是通过ws的服务描述...
webserive中的xml、http、schema
一、http协议 请求行中的GET称之为请求方式,请求方式有: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT 常用的有: GET、 POST 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。 不管POST
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'); ...
使用Axis发布Webserive
前戏: 其实有很多方式可以发布Webservice,我试验成功的有xfire和Axis,本来对xfire情有独钟的,无奈xfire的jar包太多,随便数了下有40多个,与我原项目中的多数jar包相冲突,并且有的版本和名称都不一样,手动挑选可能会发生些不可预计的错误,于是我转用Axis. 无论用哪种方式开发,或者开发什么,首先你都得到其官网下载它的包.我下的是最新的a...
webserive学习记录3-eclipse创建webservice
在用J2EE版的ECLIPSE学习WEBSERVICE的时候发现原来直接用该ECLIPSE就可以创建webservice,然后就自己动手用ECLIPSE自带的功能来建立WEBSERVICE服务端和客户端。网上相关内容很多,下面就说说我是怎么做的。 服务端 先编写好服务接口及实现类,如图: 然后在新建一个webservice服务 1中为我们编写的实现...
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...
AXIS2 webSerive
使用eclipse内置的插件创建AXIS2 webSerive服务器端与客户端代码
VS2010 创建WebSerive程序
Visual Studio 2010默认采用的框架为.NET Framework4,在这个框架中已找不到直接创建WebService的模板方式了。但VS2010可以创建WebService是毋庸置疑的,那么怎么在VS2010中创建WebService呢,请看下面为您提供的两种方法,方法已经本人测试,可以放心使用! 方法一:.NET Framework4.0框架下,依然可以创建We
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
suds调用webserive的suds.TypeNotFound错误解决
原文链接:https://www.cnblogs.com/elephanyu/p/9136556.html 操作环境:python3.6 + suds-jurko 0.6 ====================================================================== 一、问题概述 任务中涉及到调用webservice服务,便使用suds写公...
7188



被折叠的 条评论
为什么被折叠?



