关于java连接webService的总结
来源:互联网 发布:数据库建表工具 编辑:程序博客网 时间:2024/06/06 22:52
今天项目用到的webserivice我这里总结几个连接的方式。
一、
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
//生成documnet对象
Document _document = DocumentHelper.createDocument();
//添加根节点
Element _element = _document.addElement("root");
//根节点中添加内容
_element.addElement("APPLY_COMPANY").setText(((String)dynaBn.get("APPLY_COMPANY")==""?"":(String)dynaBn.get("APPLY_COMPANY")));
//创建实例
JaxWsDynamicClientFactory dcf =JaxWsDynamicClientFactory.newInstance();
//根据地址创建客户端
Client client =dcf.createClient("WEBSERVICEURL");
//调用方法
Object[] o = client.invoke("addJob", new Object[]{_document});
二、
1.通过eclipse 创建web Service Client :Service definintion里面输入你的webservice地址,然后下一步 选择要创建在哪个项目的目录下。
2.之前的方法是xml格式,本方法是通过设定好的对象来传输(bean在你刚才生成的目录下)
import org.apache.axis.client.Service;
import java.net.URL;
//OaJob是我需要的Bean类型 (是通过本文 二、1. 生成的 )
OaJob oj = new OaJob();
oj.setApplyCompany(((String) dynaBn.get("APPLY_COMPANY") == "" ? "": (String) dynaBn.get("APPLY_COMPANY")));
URL url = new URL("WEBSERVICEURL");
Service service = new Service();
//JobService对象(是通过本文 二、1. 生成的 ),你可以打开这个service看一下都有哪些方法。
JobServiceSoapBindingStub JSSBS = new JobServiceSoapBindingStub(
url, service);
//返回的结果类型和addJob方法是我wsdl的需求,不同的webservice也是不同的,Bean同理。
WSResult result = JSSBS.addJob(oj);
// 获取流
InputStream inputS = fileService.getContent(file[0] .getId());
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int count = -1;
while ((count = inputS.read(data, 0, 1024)) != -1)
outStream.write(data, 0, count);
String str=DECODE(new String(outStream.toByteArray(),"UTF-8"));
// 把简历转换成String存入Bean中
oj.setResume(str);
inputS.close();
我在开发过程用由于接口需要byte[]类型转换成String的数据,连接接口时遇到了异常,
java.lang.IllegalArgumentException: The char '0x11' after '邢' is not a valid XML character.
问题的原因是由于转换出现了多余的符号,把这些符号过滤掉就可以了,然后在本类中单独写一个方法解决了此问题
public static String DECODE(String in) {StringBuffer out = new StringBuffer(); // Used to hold the output.
char current; // Used to reference the current character.
if (in == null || ("".equals(in)))
return ""; // vacancy test.
for (int i = 0; i < in.length(); i++) {
current = in.charAt(i);
if (current == 0x1e) {
System.out.println("过滤错误代码 current:" + current);
} else if ((current == 0x9) || (current == 0xA) || (current == 0xD)
|| ((current > 0x20) && (current <= 0xD7FF))
|| ((current >= 0xE000) && (current <= 0xFFFD))
|| ((current >= 0x10000) && (current <= 0x10FFFF))
|| (current < 0x0))
out.append(current);
}
return out.toString().trim();
}
- 关于java连接webService的总结
- 关于ksoap连接webService的问题
- 关于wp连接webservice的状态保持
- java关于webservice的标准
- 关于基于xfire webservice框架开发webservice的总结
- 关于WebService 的用法demo 总结
- 关于webService总结
- java连接webservice
- 关于java调用DoNet的webservice(一)
- 关于Webservice接口的Java客户端调用
- 关于java调用webservice的方式学习
- java调用webservice的各种方法总结
- java 调用webservice的各种方法总结
- java调用webservice的各种方法总结
- java 调用webservice的各种方法总结
- java 调用webservice的各种方法总结
- java 调用webservice的各种方法总结
- java 调用webservice的各种方法总结
- 何新生的英语史(六)—用零散时间学英语
- EasyUi---layout整体布局
- git学习--GitHub远程仓库和分支管理
- leetcode LinkList专题
- mvn构建JAX-WS项目含服务端和客户端代码实现
- 关于java连接webService的总结
- 环迅支付2015新代理政策
- Valid Palindrome
- 自定义时间运算
- Ubuntu 下 Chmod 修改权限无效
- linux 终端无法显示图片
- 论网宿、蓝汛视频内容推送(预加载)对接优缺点比较
- pip 安装过程中依赖处理
- 如何实现thead固定不动,tbody出现垂直滚动条