CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web Services / XML

webservice连接数据库出错!!!。。。。。。。。。。救命!

楼主yjj317(射手vs射手)2005-09-19 16:32:10 在 Java / Web Services / XML 提问

小弟使用的是定制发布,结果服务是发布成功了,但是返回的信息出错,不知道为什么啊?  
   
   
  小弟认为是这里的问题:System.out.println(call.invoke(   new   Object[]   {s1,s2}));  
  不清楚怎样把两个参数传到服务器端的loginUser方法。  
   
   
   
  webservice服务器端程序  
   
  package   samples.capacity;  
   
   
  import   org.gjt.mm.mysql.Driver;  
  import   java.sql.*;  
   
  public     class   DbUtil   {  
      public   DbUtil(){}  
      private   Connection   con=null;  
   
      public   Connection   getConnection(Connection   con)throws  
              SQLException,Exception{  
          con=this.dbCon();  
          return   con;  
      }  
      private   Connection   dbCon()throws   ClassNotFoundException,SQLException,Exception{  
          String   driver="org.gjt.mm.mysql.Driver";  
          String   url   ="jdbc:mysql://localhost:3306/test?user=root&password=";  
          try{  
              Class.forName(driver).newInstance();  
              con=DriverManager.getConnection(url);  
          }catch(ClassNotFoundException   exp){  
              System.err.println("数据库驱动载入有错误:"+exp);  
          }catch(SQLException   exp){  
              System.err.println("数据库连接有错误:"+exp);  
          }catch(Exception   exp){  
              System.err.println("发现未知错误:"+exp);  
          }  
          return   con;  
      }  
      public   void   release()throws   Exception{  
          if(!(con==null))  
              con.close();  
      }  
  }  
   
   
  package   samples.capacity;  
   
   
  import   org.gjt.mm.mysql.Driver;  
  import   java.sql.*;  
   
  import   java.io.Serializable;  
  import   java.sql.*;  
  import   samples.capacity.DbUtil;  
   
   
  public   class   search   implements   Serializable{  
      private   Connection   con=null;  
      private   ResultSet   rs   =   null;  
      private   Statement   stmt   =   null;  
   
      public   search()   {  
      }  
       
      public   String   loginUser(String   username,String   password)throws   SQLException,Exception  
      {  
         
              DbUtil   db=new   DbUtil();  
              con=db.getConnection(con);  
              stmt   =   con.createStatement();  
              String   strSql   =   "select   *   from   user   where   username   =   '"+username+"',password   =   '"+password+"'";;  
              rs   =   stmt.executeQuery(strSql);  
              if   (rs.next()){  
              return   "welcome   to   here";  
              }else{  
              return   "unsuccess";  
              }  
        }  
  }  
   
  文件deploy1.wsdd  
   
  <deployment   xmlns="http://xml.apache.org/axis/wsdd/"   xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  <service   name="search"   provider="java:RPC">  
  <parameter   name="className"   value="samples.capacity.search"/>      
  <parameter   name="allowedMethods"   value="*"/>  
  </service>  
  </deployment>  
   
   
  客户端程序  
   
  package   axisexercise;  
  import   org.apache.axis.client.Call;  
  import   org.apache.axis.client.Service;  
  import   org.apache.axis.encoding.XMLType;  
  import   javax.xml.rpc.ParameterMode;  
   
  public   class   AXISTest  
  {  
  public   static   void   main(   String[]   args   )   throws   Exception  
  {  
  Service   service   =   new   Service();  
   
   
  Call   call   =   (   Call   )   service.createCall();  
  call   =   (   Call   )   service.createCall();  
  //设置访问点  
  call.setTargetEndpointAddress(   "http://localhost:8080/axis/services/search"   );  
  //设置操作名  
  call.setOperationName(   "loginUser"   );  
  //设置入口参数  
  call.addParameter(   "op1",   XMLType.XSD_DOUBLE,   ParameterMode.IN   );  
  call.setReturnType(   XMLType.XSD_DOUBLE   );  
  String   s1   =   new   String(   "123"   );    
  String   s2   =   new   String(   "123"   );  
  //调用服务  
  System.out.println(call.invoke(   new   Object[]   {s1,s2}));  
  }    
   
  }  
   
   
  错误信息  
   
  Exception   in   thread   "main"   AxisFault  
    faultCode:   {http://schemas.xmlsoap.org/soap/envelope/}Server.userException  
    faultSubcode:  
    faultString:   javax.xml.rpc.JAXRPCException:   Number   of   parameters   passed   in   (2)  
  doesn't   match   the   number   of   IN/INOUT   parameters   (1)   from   the   addParameter()   call  
  s  
    faultActor:  
    faultNode:  
    faultDetail:  
                  {http://xml.apache.org/axis/}stackTrace:javax.xml.rpc.JAXRPCException:   N  
  umber   of   parameters   passed   in   (2)   doesn't   match   the   number   of   IN/INOUT   parameter  
  s   (1)   from   the   addParameter()   calls  
                  at   org.apache.axis.client.Call.getParamList(Call.java:2042)  
                  at   org.apache.axis.client.Call.invoke(Call.java:2345)  
                  at   org.apache.axis.client.Call.invoke(Call.java:1804)  
                  at   axisexercise.AXISTest.main(AXISTest.java:60)  
   
                  {http://xml.apache.org/axis/}hostname:yjinjin  
   
  javax.xml.rpc.JAXRPCException:   Number   of   parameters   passed   in   (2)   doesn't   match  
  the   number   of   IN/INOUT   parameters   (1)   from   the   addParameter()   calls  
                  at   org.apache.axis.AxisFault.makeFault(AxisFault.java:101)  
                  at   org.apache.axis.client.Call.invoke(Call.java:1820)  
                  at   axisexercise.AXISTest.main(AXISTest.java:60)  
  Caused   by:   javax.xml.rpc.JAXRPCException:   Number   of   parameters   passed   in   (2)   doe  
  sn't   match   the   number   of   IN/INOUT   parameters   (1)   from   the   addParameter()   calls  
                  at   org.apache.axis.client.Call.getParamList(Call.java:2042)  
                  at   org.apache.axis.client.Call.invoke(Call.java:2345)  
                  at   org.apache.axis.client.Call.invoke(Call.java:1804)  
                  ...   1   more  
  Press   any   key   to   continue... 问题点数:50、回复次数:4Top

1 楼yjj317(射手vs射手)回复于 2005-09-19 17:19:32 得分 0

自己up一下了,人气太差了Top

2 楼sxtbuaa(小洒)回复于 2005-09-20 08:54:19 得分 50

---------------------------------------------  
  //设置入口参数  
  call.addParameter(   "op1",   XMLType.XSD_DOUBLE,   ParameterMode.IN   );  
   
  你就加了一个参数,提示很明白了:  
  Number   of   parameters   passed   in   (2)   doesn't   match   the   number   of   IN/INOUT   parameter  
   
   
  -----------------------------------------  
   
  以后自己看清楚了再来问!  
   
  Top

3 楼yjj317(射手vs射手)回复于 2005-09-20 09:28:39 得分 0

请问楼上的大哥,小弟刚接触webservice,请问  
  call.addParameter(   "op1",   XMLType.XSD_DOUBLE,   ParameterMode.IN   );  
  怎样加入第二个参数?  
  Top

4 楼yjj317(射手vs射手)回复于 2005-09-20 09:54:11 得分 0

回复人:   sxtbuaa(小洒)   (   )   信誉:97    
   
  =======================================  
   
  问题我已经解决了,谢谢你的提示拉!Top

相关问题

  • webservice连接数据库出错!!!请大虾帮忙阿。。。。。。。。。。救命!
  • 求助:在WEBSERVICE中连接ORACLE数据库出错
  • 连接数据库出错
  • 连接数据库出错
  • 连接数据库出错
  • 连接数据库出错
  • 数据库连接出错
  • asp 连接数据库出错!求助!!
  • 连接0racle数据库出错
  • 数据库连接出错!!!急!!!

关键词

  • 数据库
  • webservice
  • exp
  • axis
  • mysql
  • apache
  • xmltype
  • con
  • parametermode
  • 小弟

得分解答快速导航

  • 帖主:yjj317
  • sxtbuaa

相关链接

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

广告也精彩

反馈

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