我认为我的代码或连接存在问题......
我尝试连接到MySQL数据库和Web服务,但是当我运行该程序时,它给了我以下错误:
alt text http://www6.0zz0.com/2009/04/17/13/808603628.jpg
@WebService() 公共类LostNumWebService {
/**
* Web service operation
*/
@WebMethod(operationName = "getCategory")
public List getCategory(@WebParam(name = "city_name")
String city_name) {
List cityName = null;
try{
String url = "jdbc:mysql://localhost:3306/mobileapplication";
Connection conn = DriverManager.getConnection(url,"***","***");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT city_id, city_name FROM city WHERE city_name = $city_name");
while ( rs.next() ) {
String lastName = rs.getString("city_name");
cityName.add(lastName);
// System.out.println(lastName);
}
conn.close();
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
return cityName;
}
我不知道错误,连接或代码是什么? 我可以在这里得到一些帮助吗?
答案 0 :(得分:2)
我猜“www.localhost.com”应该只是“localhost”;如果服务器没有响应,这种情况经常发生,Firefox会尝试在网络上搜索服务器。您确定端口号是否正确?
注意#1 :您使用的是哪个appserver / webservice平台?您是编写客户端还是尝试使用默认自动生成的客户端?
注意#2 :当您的代码被调用时,它很可能会在这里抛出“空指针异常”
cityName.add(lastName的);
因为您忘记初始化列表,因为您忘记设置参数,它可能永远找不到您所在的城市
$的cityName
在调用preparedStatement之前。
注意#3 :您最好在两个不同的步骤中测试Web服务调用及其执行的代码;考虑为后者编写一个简单的主要或测试用例。
答案 1 :(得分:0)
我以前经历过这种情况,但那是我的DNS弄乱了。
答案 2 :(得分:0)
一些提示......
您应该弄清楚程序的错误输出结束的位置。 通常,当在servlet容器(tomcat?)中运行时,服务器会将stdout和stderr写入文件(可能在日志中?)另外,找出应用程序服务器/容器如何记录异常。
也许您应该首先尝试将代码作为常规Java应用程序运行。
捕获异常时,使用日志记录框架记录异常可能是个好主意。 log4j或java.util.logging都可以。
...或 - 只是为了测试,执行exception.printStackTrace()以便获得完整的 信息。
此外,SQL查询不好......查找动态参数的PreparedStatement。
if( city_name == null ) { //return nothing? } else { PreparedStatement pstmt = con.prepareStatement("SELECT city_id, city_name FROM city WHERE city_name = ?"); pstmt.setString(1, city_name); /// ResultSet rs = stmt.executeQuery(); }
答案 3 :(得分:0)
正如曼里科所说;你没有连接到你的网络服务器。
将网址更改为“http://127.0.0.1:17978/LostNumApplication”,然后重试。
如果这不起作用,它可能是防火墙,或者服务器可能在不同的端口上运行。
如果是tomcat,请检查server.xml。