package APIInfoSave;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import APIInfo.APIinfo;
import DataConnection.Databaseconnection;
import Table.CityTable;
public class APINow extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//建立連接
QueryRunner runner = new QueryRunner(Databaseconnection.getDataSource());
//輸入sql陳述句
String sql = "select * from city";
//集合
List<CityTable> CityTableList = null;
try {
//接受資料
CityTableList = runner.query(sql, new BeanListHandler<CityTable>(CityTable.class));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
if(CityTableList!=null) {
int Registertable = 0;
int num = 0;
for(CityTable citytable : CityTableList) {
num++;
//獲取APIinfo類的資訊字串
String info = APIinfo.getAPIinfo(citytable.getCityID());
//json化
JSONObject object = JSON.parseObject(info);
System.out.println(object.get("now"));
//獲取now里的hum(相對濕度)并轉化為String傳給humidity
String humidity = (String) ((JSONObject) object.get("now")).get("hum");
//獲取now里的vis(能見度)并轉化為String傳給visibility
String visibility = (String) ((JSONObject) object.get("now")).get("vis");
//獲取now里的pres(大氣壓強)并轉化為String傳給airpressure
String airpressure = (String) ((JSONObject) object.get("now")).get("pres");
//獲取now里的pcpn(降水量)并轉化為String傳給precipitation
String precipitation = (String) ((JSONObject) object.get("now")).get("pcpn");
//獲取now里的fl(體感溫度,默認單位:攝氏度)并轉化為String傳給bodytemperature
String bodytemperature = (String) ((JSONObject) object.get("now")).get("fl");
//獲取now里的wind_sc(風力)并轉化為String傳給windpower
String windpower = (String) ((JSONObject) object.get("now")).get("wind_sc");
//獲取now里的wind_dir(風向)并轉化為String傳給winddirection
String winddirection = (String) ((JSONObject) object.get("now")).get("wind_dir");
//獲取now里的wind_spd(風速)并轉化為String傳給windspeed
String windspeed = (String) ((JSONObject) object.get("now")).get("wind_spd");
//獲取now里的cloud(云量)并轉化為String傳給cloudcover
//String cloudcover = (String) ((JSONObject) object.get("now")).get("cloud");
//獲取now里的wind_deg(風向360角度)并轉化為String傳給windangle
String windangle = (String) ((JSONObject) object.get("now")).get("wind_deg");
//獲取now里的tmp(溫度,默認單位:攝氏度)并轉化為String傳給temperature
String temperature = (String) ((JSONObject) object.get("now")).get("tmp");
//獲取now里的cond_txt(實況天氣狀況的描述)并轉化為String傳給weatherlive
String weatherlive = (String) ((JSONObject) object.get("now")).get("cond_txt");
//獲取now里的cond_code(實況天氣狀況代碼)并轉化為String傳給weathercode
String weathercode = (String) ((JSONObject) object.get("now")).get("cond_code");
//System.out.println(citytable.getCityID());
System.out.println(object.get("now"));
//String nowinfo = (String) object.get("now");
//System.out.println(nowinfo);
//System.out.println(info);
String weathersql = "insert into now1 (cid,cond_code,cond_txt,fl,hum,pcpn,pres,tmp,vis,wind_deg,wind_dir,wind_sc,wind_spd) values (?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
Registertable = runner.update(weathersql,citytable.getCityID(),weathercode,weatherlive,bodytemperature,humidity,precipitation,airpressure,temperature,visibility,windangle,winddirection,windpower,windspeed);
} catch (SQLException e) {
e.printStackTrace();
}
//System.out.println(citytable.getCityID());
}
System.out.println("success");
}
else {
System.out.println("kong");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
......
.......
........
{"hum":"18","vis":"16","pres":"854","pcpn":"0.0","fl":"17","wind_sc":"3","wind_dir":"西風","wind_spd":"13","cloud":"0","wind_deg":"260","tmp":"20","cond_txt":"晴","cond_code":"100"}
{"hum":"18","vis":"16","pres":"854","pcpn":"0.0","fl":"17","wind_sc":"3","wind_dir":"西風","wind_spd":"13","cloud":"0","wind_deg":"260","tmp":"20","cond_txt":"晴","cond_code":"100"}
{"hum":"13","vis":"16","pres":"891","pcpn":"0.0","fl":"20","wind_sc":"2","wind_dir":"北風","wind_spd":"10","cloud":"1","wind_deg":"357","tmp":"23","cond_txt":"晴","cond_code":"100"}
{"hum":"13","vis":"16","pres":"891","pcpn":"0.0","fl":"20","wind_sc":"2","wind_dir":"北風","wind_spd":"10","cloud":"1","wind_deg":"357","tmp":"23","cond_txt":"晴","cond_code":"100"}
{"hum":"20","vis":"16","pres":"861","pcpn":"0.0","fl":"13","wind_sc":"4","wind_dir":"西風","wind_spd":"25","cloud":"4","wind_deg":"267","tmp":"19","cond_txt":"晴","cond_code":"100"}
{"hum":"20","vis":"16","pres":"861","pcpn":"0.0","fl":"13","wind_sc":"4","wind_dir":"西風","wind_spd":"25","cloud":"4","wind_deg":"267","tmp":"19","cond_txt":"晴","cond_code":"100"}
null
5月 22, 2020 10:50:00 上午 org.apache.catalina.core.StandardWrapperValve invoke
嚴重: 在路徑為[/WEBWeatherinfo]的背景關系中,servlet[APINownow]的Servlet.service()引發例外
java.lang.NullPointerException
at APIInfoSave.now1.now2(now1.java:49)
at APIInfoSave.APINownow.doGet(APINownow.java:12)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:835)
uj5u.com熱心網友回復:
這不空指標了嗎,在12行,斷點檢查一下轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66258.html
標籤:Web 開發
上一篇:Eclipse采用HTTPS協議無法克隆遠程Git代碼庫
下一篇:關于java練習的小問題
