2013-08-31 185 views
1

我正在編寫一個在我的本地主機上正常工作的Web應用程序(Java/PostgreSQL),但是當我嘗試將其部署到Amazon ec2實例時,我開始遇到問題。在ec2實例上部署Java EE webapp

我在我的ec2實例上設置了我的postgreSQL數據庫,並重新配置了在本地主機上運行的webapp以使用雲數據庫。到現在爲止還挺好。

當我在ec2實例上部署war並嘗試讓應用程序運行時,我得到一個java.lang.NullPointerException。現在初步的疑難解答似乎表明我的數據庫查詢有問題。這表明一個權限問題,但我的_hba.conf文件是開放的。

我的問題是,爲什麼它會正常工作在訪問數據庫的本地主機,但不是當它坐在同一主機上?

我錯過了什麼,應該如何解決這個問題。

完全難倒

好了 - 所以它與Eclipse的JVM,而不是我的tomcat安裝在本地主機上的工作。

以下是堆棧跟蹤。因爲ps = conn.prepareStatement(query)爲空而失敗

enter code here 

SEVERE: Servlet.service() for servlet [AddToEmailListServlet] in context with path [/Test_e] threw exception 
java.lang.NullPointerException 
    at data.UserDB.insert(UserDB.java:51) 
    at email.AddToEmailListServlet.doPost(AddToEmailListServlet.java:51) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Aug 31, 2013 5:48:15 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
Aug 31, 2013 5:48:16 PM org.apache.catalina.core.ApplicationContext log 
INFO: SessionListener: contextDestroyed() 
Aug 31, 2013 5:48:16 PM org.apache.catalina.core.ApplicationContext log 
INFO: ContextListener: contextDestroyed() 
+0

沒有堆棧跟蹤的一點機會得到一些幫助。 –

回答

1

常見問題。請檢查您是否已經在您的安全組中打開了端口

+0

你可以更具體一點。我在AWS安全組上打開了適當的端口。否則,我根本無法與db溝通。在eclipse或pgAdmin3中。不是這種情況。你在說打開另一個港口嗎? - 哪一個? – user2263513

+0

如果您在安全組中打開了端口,則不需要,那就夠了。這是人們面臨的最普遍的問題。 –

1

感謝您的回覆。你的回答讓我更加思考,並解決了我遇到的問題。

原來,我在構建路徑中有driver.jar,但沒有lib文件夾。

乾杯