CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web Services / XML

web services 调用的问题!!

楼主sandxu(阳光)2006-03-07 21:39:02 在 Java / Web Services / XML 提问

主要功能是通过在客户端输入一个id,从服务器端返回一个product的对象.  
  调用的web服务是:  
  import   java.util.Vector;  
  import   java.lang.*;  
  public   class   HelloClient  
  {  
          public   String   getName(String   name)  
          {  
                  return   "hello   "+name;  
          }  
          public   product   getProduct(String   id)  
            {  
            queryProduct   p=new   queryProductImpl();  
       
                 
                  return   p.getProduct("2");  
            }  
  }  
  设计的接口,和实现类:  
  public   interface   queryProduct  
  {public       product   getProduct(String   id);}  
  public     class   queryProductImpl   implements   queryProduct  
  {  
  public   product   getProduct(String   id)  
  { product   p=new   product();  
  if   (id=="2")  
  { System.out.println("this   is   product   id=   2!");  
                    p.id="2";  
  p.pname="computer";  
  p.price=5000;}  
  return   p;  
  }  
  }  
   
  客户端:  
  import     org.apache.axis.client.Call;      
  import     org.apache.axis.client.Service;      
  import     javax.xml.namespace.QName;      
  import     javax.xml.rpc.ServiceException;      
  import     java.net.MalformedURLException;      
  import     java.rmi.RemoteException;      
  import   javax.activation.DataHandler;  
  import   javax.mail.internet.*;  
  import   java.util.*;  
  import   java.lang.reflect.*;  
   
  public     class     SayHelloClient2      
  {      
                public     static     void     main(String[]     args)      
                        {      
                                try      
                                                {      
                                                long   t1=   System.currentTimeMillis();  
                String     endpoint     =     "http://localhost:8080/Axis/HelloClient.jws";      
                                                Service     service     =     new     Service();      
                                                Call     call     =     null;      
     
                                                call     =     (Call)     service.createCall();      
     
                                                call.setOperationName(new     QName(      
                                                            "http://localhost:8080/Axis/HelloClient.jws",          
                                                                                    "getProduct"));      
                                                call.setTargetEndpointAddress      
                                                                        (new     java.net.URL(endpoint));      
                                                                (product)call.invoke(new     Object[]   {"2"});      
                                                                            System.out.println("useTime="+(System.currentTimeMillis()-t1));  
                                                }          
                                                catch     (Exception     ex)                                   {                                        
                      ex.printStackTrace();      
                                }      
                }      
  }  
  感觉是返回的complex   type解析不了一样..郁闷阿  
  结果出现异常错误:  
  java.lang.reflect.InvocationTargetException  
  AxisFault  
    faultCode:   {http://schemas.xmlsoap.org/soap/envelope/}Server.userException  
    faultSubcode:  
    faultString:   java.lang.reflect.InvocationTargetException  
    faultActor:  
    faultNode:  
    faultDetail:  
   
  不知道怎么搞定阿?  
  望大家能帮我解答一下!!  
  感谢!  
   
  问题点数:100、回复次数:3Top

1 楼mosquitoxh((IT,中间件,架构)http://it.paiming.org/bbs)回复于 2006-03-08 18:40:11 得分 50

product要实现串行化接口  
  SerializeTop

2 楼chg2008(岂能尽如人意,但求无愧我心!)回复于 2006-03-10 13:58:21 得分 20

应该不是串行化的问题 ...........  
  (product)call.invoke(new     Object[]   {"2"});      
  这个语句可以吗?  
  Top

3 楼twowolf(两只狼)回复于 2006-03-10 16:11:59 得分 30

String     endpoint     =     "http://localhost:8080/Axis/HelloClient.jws";     没问题把  
  我写的和你这不大一样,不过也是初学者Top

相关问题

  • 如何调用web services
  • 调用Web Services出错
  • 哪有可以调用的Web Services
  • 如何在VC6中调用WEB SERVICES
  • Web Services 可否被VB6.0调用
  • js 调用web services的传参问题
  • 怎样动态调用Web Services?
  • ====在winform中如何调用web services??====
  • 想找一个WEB的异步调用 XML Web services 方法
  • web应用程序调用web services出错(xp系统)

关键词

  • .net
  • axis
  • queryproduct
  • getproduct
  • import
  • product
  • javax

得分解答快速导航

  • 帖主:sandxu
  • mosquitoxh
  • chg2008
  • twowolf

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo