CXF客户端动态调用webservice问题 http://bbs.csdn.net/topics/390667364 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在只让用CXF呢,有什么好办法没。 cxf有一个bug就是不能识别<s:element ref="s:schema"/>这个东西,估计要把wsdl下载下来,然后删除这些节点,再用,估计可以用。 那就是要把wsdl下到本地,再本地生成对应类。现在是想动态调用,直接调用WEBservice方法就得到数据呢 不影响啊,和本地wsdl文件没关,是里面的url起作用。url是不变的。 我URL就是远程的URL,把他的wsdl下载下来改下就可以? http://blog.csdn.net/chenghui0317/article/details/9320053试试这个。。 根据上面的,修改了代码public class ClientText { public static void main(String[] args) { //这个是用cxf 客户端访问cxf部署的webservice服务 //千万记住,访问cxf的webservice必须加上namespace ,否则通不过 //现在又另外一个问题,传递过去的参数服务端接收不到 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); org.apache.cxf.endpoint.Client client = dcf.createClient("http://www.webxml.com.cn/webservices/chinatvprogramwebservice.asmx?wsdl"); //url为调用webService的wsdl地址 QName name=new QName("http://www.webxml.com.cn/webservices/chinatvprogramwebservice.asmx/","getAlbumList"); //namespace是命名空间,methodName是方法名 String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + " <facelook>" + " <condition>" + " <name>家</name>" + " <description></description>" + " <pageno></pageno>" + " <pagesize></pagesize>" + " </condition>" + " </facelook>"; //paramvalue为参数值 Object[] objects; try { objects = client.invoke(name,xmlStr); //调用web Service//输出调用结果 System.out.println(objects[0].toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}运行报错 undefined element declaration 's:schema'悲剧啊.... 我改了URL跟方法啊,求指导.. 你可以 百度一下 undefined element declaration 's:schema'http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html 这个我看过,这个也是吧WSDL下载到本地修改再生成类。哎... 那这个问题,还没解决???我现在搞。net了 以前做的哪里还记得呢? 我们为什么要用 @Autowired Jnative文档 这个是啥意思? 今天面试了惠普的J2EE职位 关于Struts的dispatchAction记录日志问题 如何构建一个好的spring+struts+hibernate系统? tomcat:Caused by: java.lang.OutOfMemoryError: PermGen space 问题? Tomcat,RMI JAVA实现SOAP的一点问题 spring data jpa 问题,关于实现接口方面的 富文档和其中的图片如何上传? tomcat集群求教
现在只让用CXF呢,有什么好办法没。
现在是想动态调用,直接调用WEBservice方法就得到数据呢
试试这个。。
public class ClientText { public static void main(String[] args) {
//这个是用cxf 客户端访问cxf部署的webservice服务
//千万记住,访问cxf的webservice必须加上namespace ,否则通不过
//现在又另外一个问题,传递过去的参数服务端接收不到
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://www.webxml.com.cn/webservices/chinatvprogramwebservice.asmx?wsdl");
//url为调用webService的wsdl地址
QName name=new QName("http://www.webxml.com.cn/webservices/chinatvprogramwebservice.asmx/","getAlbumList");
//namespace是命名空间,methodName是方法名
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " <facelook>"
+ " <condition>"
+ " <name>家</name>"
+ " <description></description>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
//paramvalue为参数值
Object[] objects;
try {
objects = client.invoke(name,xmlStr);
//调用web Service//输出调用结果
System.out.println(objects[0].toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
运行报错 undefined element declaration 's:schema'
悲剧啊....
哎...