在跟局方对接接口的时候,局方回执我的wsdl接口,发现收不到同步回执,怀疑问题为回执参数首字母小写导致
代码中的参数对象首字母确实是大写,但生成的wsdl文件确变成了小写,目前是用axis2生成的
参考 : https://bbs.csdn.net/topics/390457284 发现了变为小写的原因,选择使用xFire
并参考了https://blog.csdn.net/weixin_45326188/article/details/108371268
运行过程中发现:
xfire-spring-1.2.6.jar xfire-all-1.2.6.jar 中都有xfire.xml和xfireXmlBeans.xml以及customEditors.xml文件,所以最好两个文件一起修改替换
修改回执对象,通过 org.codehaus.xfire.aegis.type.java5.XmlElement 来定义参数的名称
运行后首字母成功变为大写
之后研究发现axis2也可以自定义设置首字母,在回执参数对象中加入
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(CSPResult.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("iptv", "CSPResult"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("result");
elemField.setXmlName(new javax.xml.namespace.QName("", "Result"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("errorDescription");
elemField.setXmlName(new javax.xml.namespace.QName("", "ErrorDescription"));
elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));
elemField.setNillable(true);
typeDesc.addFieldDesc(elemField);
}
即可自定义回执参数
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_37729339/article/details/109517782