2015-06-23 94 views
0

我在AWS上配置了使用Apache tomcat 8和java的EC2實例。 按照這裏的一些教程,我可以在eclipse中創建一個.Web服務的.war,並將其放入我的EC2實例中的tomcat的webapps文件夾中。 我能夠使用特定端口和.war文件名從EC2的IP地址訪問此服務。 例如:Android和EC2與RDS之間的通信

IPADDRESS:8080/MyApplication. 

,一切似乎做工精細,我可以打開服務和看到的WSDL文件。我的Web服務(在.war文件中)被配置爲與來自亞馬遜的RDS實例建立連接。 連接本身沒問題,我在本地主機上測試了與Android的RDS的直接連接。 但是,當我嘗試連接使用安裝在EC2中的服務(從
與我的RDS建立連接)時,沒有數據返回,我得到一個空指針。 我用來與Android連接EC2的鏈接是EC2的公有IP和端口(8080),後面跟着wsdl文件的特定路徑。 例如:

http://99.999.999.99:8080/MyApplication/services/SomeServiceName?wsdl 

我使用KSOAP庫消耗在Android端的Web服務,我 沒有的,我沒有得到來自EC2實例數據的原因想法。

Web服務中的所有方法和Android中的消耗都正常工作,我在本地主機中測試了所有方法。

  • 我用我的web服務的所有方法SOAP UI,並且所有的工作

  • 對於測試包含我的數據庫的RDS實例中測試,我在本地主機與Tomcat的8運行Web服務和通訊Android - >我的電腦(本地主機) - > RDS實例(我的數據庫)正在工作。

的問題是,當我嘗試到通信線路從改變:

*Android -> My PC (localhost) -> RDS instance (My DB)* 

TO:

*Android -> EC2 instance -> RDS instance (My DB)* 

再次,在EC2使我的Web服務的部署。

  • 我使用相同的安全組RDS和EC2:

入站規則:

http://i.stack.imgur.com/RUdyl.png

出站規則:

http://i.stack.imgur.com/W4gLc.png

+0

你可以在遠程計算機上使用公共IP測試你的webservice嗎?或者在ec2實例中使用localhost?你可以使用soap ui來測試你的web服務嗎? - 您是否在ec2實例中配置安全組?也許端口8080不能從任何地方訪問,試圖給我們一點點的信息 –

+0

感謝您的答覆,我做了一個edite,看看。 – Luiz

+0

是另一個名字,是的,是一樣的。我沒有看到單個「p」,我會編輯,謝謝。 – Luiz

回答

0

我終於解決了這個問題。

我做了以下: 我連接到我的ECB2實例並打開tomcat 8日誌,所以我看到錯誤是ClassNotFoundException,與Postgres(我的引擎DB)有關。

我打開我的web服務的Eclipse項目,看到這個(笨)錯誤:

具備.jar Postgres的司機在lib文件夾:

取而代之的是文件夾:

因此,基本上,當我在EC2實例中部署我的Web服務時,postgres驅動程序不會在一起。

感謝您的幫助,我希望能幫助別人。