2007-01-23
web services 传递xml document问题
关键字: java .net web services
我写了一个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();
}
}
}
评论
netfly
2007-05-08
已经解决,就是用自动生成工具产生的代码,提出有用的部分整合到自己的代码中,大部分垃圾代码全部丢失,看起来舒服多了。
liusu
2007-01-27
我也遇到了同样的问题。也是用AXIS的自动生成代码代码才访问成功的。我曾经想过直接用JAXM的API,直接发送和取得soap消息并解析,但是仍然失败。
跟你一样等待有人解决。
跟你一样等待有人解决。
netfly
2007-01-26
引用
返回的是xml格式的数据,难道不符合soap协议,为什么需要你自己去转化呢?
拜托能给点有用的建议,我怎么不知道是xml数据!
jianfeng008cn
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协议,为什么需要你自己去转化呢?
- 浏览: 61260 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
让Eclipse拖着myeclipse ...
不錯,Eclipse3.3會好很多
-- by wenson -
Yale CAS最佳实践 --全部
引用能否再介绍一下这种解决方案呢 修改edu.yale.its.tp.cas. ...
-- by netfly -
Yale CAS最佳实践 --全部
太复杂了,看不明白!
-- by Arden -
Yale CAS最佳实践 --全部
netfly 写道呵呵,最近从网上查到一点资料,完全不必要再改C:\WINDOW ...
-- by juliashine -
Yale CAS最佳实践 --全部
哈哈,本人欢迎任何朋友转载,只要保留出处就行。
-- by netfly






评论排行榜