2011-07-02 97 views
0

我在单个ec2实例上运行tomcat6和mysql5,并且我不能从外部世界中运行。ec2 + tomcat + mysql访问被拒绝!

我在EC2上的Tomcat的context.xml ...

<bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"> 
    <property name="url" value="jdbc:mysql://ec2-xx-xx-xxx-178.compute1.amazonaws.com:3306/data_dbo" /> 
    <property name="user" value="a_user" /> 
    <property name="password" value="a_password" /> 
</bean> 

客户的context.xml

<bean id="myService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> 
     <property name="serviceUrl" value="http://ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:8080/MyService-services/remoting/thingServiceExporter"/> 
     <property name="serviceInterface" value="com.things.services.MyService"/> 
    </bean> 

的客户为例错误...

Caused by: java.sql.SQLException: Access denied for user ''@'domU-xx-xx-xx-xx-xx-DB.compute-1.internal' (using password: NO) 

我设置特权为我的用户,但它似乎并没有使用我的设置在我的tomcat数据源中的用户。我说这是因为客户端出现错误(访问拒绝用户'@ @)没有用户,没有密码。 我需要在ec2上的tomcat和mysql之间设置一些东西,因为它似乎在使用内部dns来访问MySql?

让我知道,如果我可以提供任何其他信息!

+1

是否在您的EC2实例上打开了适当的端口? – Nick

+0

很好的问题。是的,我已经打开8080. –

+0

...我可以得到一个servlet连接器的实例。我无法用它做任何事情。 –

回答

1

我发现了这个问题。我的persistance.xml有以下代码...

<properties> 
     <property name="hibernate.connection.username" value=""/> 
     <property name="hibernate.connection.driver_class" value=""/> 
     <property name="hibernate.connection.password" value=""/> 
     <property name="hibernate.connection.url" value=""/> 
    </properties> 

不知道那是怎么回事! persistance.xml中的设置必须覆盖我的Spring上下文文件中的设置。