我在一个ec2实例上运行tomcat6和mysql5,我无法从外部世界运行。
我在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>
clinet错误......
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?
如果我能提供任何其他信息,请与我们联系!
答案 0 :(得分: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上下文文件中的设置。