用axis 搭建了个web服务器,经测试可正常运行;
利用DII方式JDBC访问数据库,下面这段程序也正常运行:
import java.sql.*;public class DbConnect{
Connection con;
Statement sta;
ResultSet rs;

String driver;
String url;
String user;
String pwd;

public DbConnect()
{
init();
}

public void init()
{
String phoneNumber = "13474518691";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
con = DriverManager.getConnection("jdbc:odbc:Mobile", "sa", "");
sta = con.createStatement();
rs = sta.executeQuery("Select * From Money Where Number="+phoneNumber);
while(rs.next())
System.out.println(rs.getString("Money"));
}catch(Exception e)
{
e.printStackTrace();
}
}

public static void main(String args[])
{
new DbConnect();
}
}现希望通过web访问数据库内容,编写服务端程序:
import java.lang.*;
import java.sql.*;public class MobilePhoneRechargeService
{
private String num;
public String getPhoneNum(String phoneNumber)
{
Connection con;
Statement sta;
ResultSet rs;
String money = "";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
con = DriverManager.getConnection("jdbc:odbc:Mobile", "sa", "");
sta = con.createStatement();
rs = sta.executeQuery("Select * From Money Where Number=" + phoneNumber);
while(rs.next())
money = rs.getString("Money");
}catch(Exception e)
{
e.printStackTrace();
}
return("您的余额为:"+money+"元。");
}
}编写客户端程序:
import org.apache.axis.client.*;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import java.util.Scanner;public class client01 {
public static void main(String[] args)
{
System.out.println("请输入您的手机号码:");
Scanner sc = new Scanner(System.in);
String snumber = sc.next();
try
{
String endpoint = "http://localhost:8080/axis/MobilePhoneRechargeService.jws";
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setOperationName(new QName(endpoint, "getPhoneNum"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
System.out.println("" + call.invoke(new Object[]{snumber}));
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}程序运行出错,返回:
您的余额为:元。个人认为错误出在SQL数据库连接部分,即红色代码部分,望高手指点迷津!!

解决方案 »

  1.   

    try{
    money = "1";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    money = "2";
    con = DriverManager.getConnection("jdbc:odbc:Mobile", "sa", ""); money = "3";
    sta = con.createStatement();
    money = "4";
    rs = sta.executeQuery("Select * From Money Where Number=" + phoneNumber);
    money = "5";
    while(rs.next())
    money = rs.getString("Money");
    }
    更改红色代码部分,返回2,说明问题出在蓝色语句~麻烦指点!