我在AWS上配置了Apache tomcat 8和java的EC2实例。 根据这里的一些教程,我可以在eclipse中创建一个我的Web服务的.war,并将它放在我的EC2实例中的tomcat的webapps文件夹中。 我能够使用特定端口和.war文件名从EC2的IP地址访问此服务。 例如:
IPADDRESS:8080/MyApplication.
一切似乎都运行良好,我可以打开服务并查看wsdl文件。我的Web服务(在.war文件中)配置为与亚马逊的RDS实例建立连接。 连接本身还可以,我在localhost中测试了与Android的RDS的直接连接。 但是,当我尝试连接我放入EC2的服务时(从那里开始) 从Android创建与我的RDS的连接,没有数据返回,我得到一个空指针。 我用来与Android的EC2建立连接的链接是EC2的公共IP和端口(8080),后跟wsdl文件的特定路径。 例如:
http://99.999.999.99:8080/MyApplication/services/SomeServiceName?wsdl
我正在使用KSOAP库在Android端和I上使用Web服务 不知道我没有从EC2实例获取数据的原因。
Web服务中的所有方法和Android中的消费都运行正常,我在本地主机上测试过。
我使用SOAP UI测试了所有的Web服务方法,所有这些方法都在工作
为了测试包含我的数据库的RDS实例,我使用tomcat 8和通信 Android - >运行localhost中的Web服务。我的电脑(localhost) - > RDS实例(我的数据库)正在运行。
当我尝试更改通信线路时出现问题:
*Android -> My PC (localhost) -> RDS instance (My DB)*
TO:
*Android -> EC2 instance -> RDS instance (My DB)*
同样,在EC2中,我部署了我的Web服务。
入站规则:
http://i.stack.imgur.com/RUdyl.png
出站规则:
答案 0 :(得分:0)
我终于解决了这个问题。
我做了以下事情: 我连接到我的ECB2实例并打开tomcat 8日志,所以我看到错误是ClassNotFoundException,与Postgres(我的引擎数据库)有关。
我打开了我的web服务eclipse项目并看到了这个(愚蠢的)错误:
.jar postgres驱动程序位于该lib文件夹中:
而不是该文件夹:
所以,基本上,当我在EC2实例中部署我的Web服务时,postgres驱动程序不会一起使用。
感谢您的帮助,我希望能帮助其他人。