java webservice wsimport 无法将名称 'soapenc:Array' 解析为 'type definition' 组件 时对应的解决方法
(一):代码如下:
package com.enso.uploaddata; import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.Test; import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
/**
* nanjin enso projects
*
* @author: Mr. Wang
* @create: 2018-06-2018/6/1
* @description:
*/
public class testWebService {
@Test
public void testWebService () throws Exception{
String url = "http://106.37.208.228:8083/ForecastService.asmx?WSDL" ;
//创建客户端调用webservice的代理对象
Service service = new Service();
try {
//创建一个调用对象,代表对web service 的一次调用
Call call = (Call) service.createCall();
//设置web service的url 地址
call.setTargetEndpointAddress(new java.net.URL(url));
//设置操作名称,QName 对象的两个参数分别为命名空间和方法名称
call.setOperationName(new QName("http://tempuri.org/","UploadProvinceData"));
//不加这行会抛异常System.Web.Services.Protocols.SoapException: 服务器未能识别 HTTP 头 SOAPAction 的值:
call.setSOAPActionURI("http://tempuri.org/UploadProvinceData");
//传参
call.addParameter(new QName("http://tempuri.org/", "loginName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "password"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "forecastInfo"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "warningInfo"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "healthTip"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "moreInfo"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "moreInfoGraphName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "moreInfoGraphBytes"), XMLType.XSD_BASE64, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "isFormGraph"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "formOrSceneryGraphName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/", "formOrSceneryGraphBytes"), XMLType.XSD_BASE64, ParameterMode.IN);
//设置返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
// 执行调用操作,result 保存返回的结果,invoke 的参数为实参
String result = (String) call.invoke(new Object[]{"loginName","password","forecastInfo","warningInfo","healthTip","moreInfo","",new byte[1],"false","",new byte[1]});
System.out.println(result);
}catch (Exception e){
e.printStackTrace();
}
}
}
(二) 或者:ws增加schemaLocation(<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/> )。如下:
<s:schema targetNamespace="http://iamsweb.gmcc.net/WS/AbstractTypes">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
<s:complexType name="StringArray">
<s:complexContent mixed="false">
<s:restriction base="soapenc:Array">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="String" type="s:string" />
</s:sequence>
</s:restriction>
</s:complexContent>
</s:complexType>
</s:schema>
java webservice wsimport 无法将名称 'soapenc:Array' 解析为 'type definition' 组件 时对应的解决方法的更多相关文章
- 错误/异常:java.io.FileNotFoundException: .\src\db.properties (系统找不到指定的路径。);的解决方法
1.异常视图 2.解决方法 与之相关的部分代码: static{ try { //读取db.properties Properties props = new Properties(); FileIn ...
- java编译报错: 找不到或无法加载主类 Demo.class 的解决方法
原因:java 命令后面的文件不能有后缀名. 解决方法:运行java时候,后面的文件去掉后缀名.
- java集合转换成json时问题和解决方法
json+hibernate死循环问题的一点见解,有需要的朋友可以参考下. [问题]如题所示,在我们使用hibernate框架而又需要将对象转化为json的时候,如果配置了双向的关联关系,就会出现这个 ...
- 关于java后台接入百度地图返回参数为{"status":211,"message":"APP SN校验失败"}的解决方法
1.关于百度地图,天气预报,微信公众平台等一系列权威机构java接入的认识: a.首先要认识到的是这些信息都属于外部接口,我们在进行接入的时候一定要注意到这些接口的参数设置,稍微一不留神就会出现接入失 ...
- 【JAVA】【Eclipse】出现This element neither has attached source nor attached Javadoc...的解决方法
This element neither has attached source nor attached Javadoc and hence no Javadoc could be found Ec ...
- java createSQLQuery().list()返回日期格式没有时分秒的解决方法
方法一 将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp 然后,在java程序中,由 (java.util.timesta ...
- Java编译成功,用java 运行class时出现错误解决方法
java -classpath class file's address; filename
- java.lang.ClassCastException: net.sf.json.JSONNull cannot be cast to net.sf.json.JSONObject的解决方法
报错情况已经说明了,在百度查了好几个解决方法,这里总结一下: 首先:加一个判断是否为空,再做操作 // 得到json串 String jsonString = UtilPOSTGET.UPost(FO ...
- 【java】关于Cannot refer to the non-final local variable list defined in an enclosing scope解决方法
今天学习中遇到了一个问题: Cannot refer to the non-final local variable list defined in an enclosing scope 这里的new ...
随机推荐
- python 项目中包中__init__.py文件的作用
开发python项目时,我遇到了一个这样的现象,当我新建一个pythonpackage时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很不了解这个空文件的作用是什么, ...
- LeetCode(128) Longest Consecutive Sequence
题目 Given an unsorted array of integers, find the length of the longest consecutive elements sequence ...
- stm32L0系列学习(二)HAL-LL库等比较
- 搜索引擎elasticsearch + kibana + X-pack + IK安装部署
目录 准备安装环境 配置启动 启动elasticsearch 启动kibana 启用X-pack 安装使用IK 使用示例 官方Clients 准备安装环境 这次我们安装以下软件或插件: elastic ...
- zookeeper安装、配置、使用
[安装] wget http://www.apache.org/dist/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz tar zxvf zooke ...
- redis--py操作redis【转】
Python操作redis 请给作者点赞--> 原文链接 python连接方式:点击 下面介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个val ...
- pandas修改列名
- Pycharm 简单设置
- sql server 学习分享
http://www.cnblogs.com/liu-chao-feng/p/6144872.html
- cobbler常用目录/命令(三)
常用目录: /var/www/cobbler/ks_mirror/ cobbler distro文件目录 /var/lib/tftpboot/pxelinux.cfg/d ...