webservice传输对象的问题 各位大侠:急急急请教 webservice传输对象A返回对象B的问题,如何在wsdd中进行配置 客户端的调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 配置 <beanMapping /> cxf,axis2 开发Web Service,一般都不用自己配置WSDL。客户端调用都提供了wsdl2java工具。具体用法可以查看命令行参数wsdl2java -?或者网上找找。 可以将对象序列化成字节型数组来传输,如下://将DataForm类的对象实例序列化,放置到内存某区域,并返回序列化后的字节数组//DataForm类必须实现Serializable接口 public byte[] getDataFormBytes() throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(new DataForm()); return baos.toByteArray(); }客户端发送对象前,服务器端返回对象前调用即可。 我用axis作为客户端向cxf服务端发送对象 客户端该如何却写呢 现在是对方服务端用的是cxf 我作为客户端发送给他用axis 怎么也发不过去,不知这客户端该如何去写,请大家给予帮助 ,谢谢了 1.XFire,Axis等也是WebService的框架,客户端不需要使用任何框架的。2.直接使用自jdk1.6开始自带的功能实现客户端即可。过程如下:2.1.进入控制台,使用jdk自带的JAX-WS框架生成调用webservice的存根,如下: wsimport -keep wsdl地址如果存在代理服务器,则: wsimport -httpproxy:192.168.2.1:808 -keep wsdl地址如此则会在当前目录下生成调用webservice的存根.2.2.在生成的java源文件中,除去ObjectFactory.java,Pageage-inf.java,XXXResponse等文件外,从其他文件中找到执行入口;或者直接从WSDL地址生成的Schema文档中找到调用方法;2.3.使用存根调用webservice,注意如果存在代理服务器的话,需要在调用前加入代码: System.getProperties().put("proxySet","true"); System.getProperties().put("proxyHost","代理地址"); System.getProperties().put("proxyPort","代理端口");2.4.有些代理在授权用户访问因特网之前,要求用户输入用户名和口令。如果使用位于防火墙之内的Web浏览器,就有可能碰到过这种情况。以下是执行认证的方法: URLConnection connection=url.openConnection(); String password="username:password"; String encodedPassword=base64Encode(password); connection.setRequestProperty("Proxy-Authorization",encodedPassword); 要他们给wsdl文件,然后用wsdl2java生成客户端代码,即可。 Set集合唯一性判断依据equals有什么实际意义? 生成可进行jar Graphics.drawRoundRect()的问题 用SNMP4j取CPU使用率? 怎么样学习java?,java能开发什么?? 咨询个有关think in java 的问题。 JBuilder 2005把含静态方法的类当成变量,识别不出来,怎么办? 【Java初学者问道】请详解Java体系! 哥们们,快帮帮忙,哪里有sun的SL--275.中文版 下载?? 请教一下,那里有JBULIDER的使用教材/ 用浏览器运行applet程序出现的问题! 作业 急用!
客户端调用都提供了wsdl2java工具。
具体用法可以查看命令行参数
wsdl2java -?
或者网上找找。
//将DataForm类的对象实例序列化,放置到内存某区域,并返回序列化后的字节数组
//DataForm类必须实现Serializable接口
public byte[] getDataFormBytes() throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(new DataForm());
return baos.toByteArray();
}客户端发送对象前,服务器端返回对象前调用即可。
2.1.进入控制台,使用jdk自带的JAX-WS框架生成调用webservice的存根,如下:
wsimport -keep wsdl地址
如果存在代理服务器,则:
wsimport -httpproxy:192.168.2.1:808 -keep wsdl地址
如此则会在当前目录下生成调用webservice的存根.2.2.在生成的java源文件中,除去ObjectFactory.java,Pageage-inf.java,XXXResponse等文件外,从其他文件中找到执行入口;或者直接从WSDL地址生成的Schema文档中找到调用方法;2.3.使用存根调用webservice,注意如果存在代理服务器的话,需要在调用前加入代码:
System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost","代理地址");
System.getProperties().put("proxyPort","代理端口");2.4.有些代理在授权用户访问因特网之前,要求用户输入用户名和口令。如果使用位于防火墙之内的Web浏览器,就有可能碰到过这种情况。以下是执行认证的方法:
URLConnection connection=url.openConnection();
String password="username:password";
String encodedPassword=base64Encode(password);
connection.setRequestProperty("Proxy-Authorization",encodedPassword);