浏览 9932 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-23
所以我想有没有什么简化操作,自己做了点尝试,发现返回类型转换总是不成功,谁能,不胜感激! import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.w3c.dom.Document; /** * @author Liujj * Date 2007-1-18 <br> * Description: <br> * TestUserService */ public class TestUserService { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { // String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo"; // String nameSpaceUri = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx"; String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo"; String soapActionURI = "http://research.beyondbit.com/Centralism/getUserInfo"; // 创建调用对象 Service service = new Service(); Call call = (Call) service.createCall(); // 调用getUserInfo System.out.println(">>>getUserInfo"); //xmlns call.setOperationName(new QName("http://research.beyondbit.com/Centralism", "getUserInfo")); call.setTargetEndpointAddress(new java.net.URL(wsdlUrl)); //parameter & return call.addParameter("ldapStr", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.addParameter("attrNames", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_ANY); //set soap action call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); //call String ret = (String) call.invoke(new Object[] { "d61b29051cd534458c0cdd16bdab77aa" , "" }); System.out.println("return value is " + ret); } catch (Exception e) { e.printStackTrace(); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-23
netfly 写道 我写了一个java调用.net web services,.net 返回的是一个xml document,我曾经采用axis来自动生成客户端的形式成功调用过,但是axis自动生成的代码可读性奇差,简直惨不忍睹。
所以我想有没有什么简化操作,自己做了点尝试,发现返回类型转换总是不成功,谁能,不胜感激! import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.w3c.dom.Document; /** * @author Liujj * Date 2007-1-18 <br> * Description: <br> * TestUserService */ public class TestUserService { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { // String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo"; // String nameSpaceUri = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx"; String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo"; String soapActionURI = "http://research.beyondbit.com/Centralism/getUserInfo"; // 创建调用对象 Service service = new Service(); Call call = (Call) service.createCall(); // 调用getUserInfo System.out.println(">>>getUserInfo"); //xmlns call.setOperationName(new QName("http://research.beyondbit.com/Centralism", "getUserInfo")); call.setTargetEndpointAddress(new java.net.URL(wsdlUrl)); //parameter & return call.addParameter("ldapStr", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.addParameter("attrNames", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_ANY); //set soap action call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); //call String ret = (String) call.invoke(new Object[] { "d61b29051cd534458c0cdd16bdab77aa" , "" }); System.out.println("return value is " + ret); } catch (Exception e) { e.printStackTrace(); } } } 返回的是xml格式的数据,难道不符合soap协议,为什么需要你自己去转化呢? |
|
返回顶楼 | |
发表时间:2007-01-26
引用 返回的是xml格式的数据,难道不符合soap协议,为什么需要你自己去转化呢?
拜托能给点有用的建议,我怎么不知道是xml数据! |
|
返回顶楼 | |
发表时间:2007-01-27
我也遇到了同样的问题。也是用AXIS的自动生成代码代码才访问成功的。我曾经想过直接用JAXM的API,直接发送和取得soap消息并解析,但是仍然失败。
跟你一样等待有人解决。 |
|
返回顶楼 | |
发表时间:2007-05-08
已经解决,就是用自动生成工具产生的代码,提出有用的部分整合到自己的代码中,大部分垃圾代码全部丢失,看起来舒服多了。
|
|
返回顶楼 | |