2012-03-16 4 views
0

私がインストールしたデータベースをローカルマシン上で正常に動作するJava/Hibernateコードがあります。しかし、私はGlassfishサーバー上のインターネットにコードをアップロードしており、そのサーバーに関連付けられたデータベースに接続することはできません。私はそれがJavaの問題だとは思わない。コードがマシン上のデータベースとはもはや話していないので、データベースのアドレスを変更しなければならないと感じたので、Hibernateの設定に関連していると思います。誰でも助けてくれますか?まず、サーバーのログからのスタックトレースを次に示します。Hibernate - 接続が拒否されました

java.net.ConnectException 
MESSAGE: Connection refused 

STACKTRACE: 

java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
    at java.net.Socket.connect(Socket.java:529) 
    at java.net.Socket.connect(Socket.java:478) 
    at java.net.Socket.<init>(Socket.java:375) 
    at java.net.Socket.<init>(Socket.java:218) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271) 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
    at java.sql.DriverManager.getConnection(DriverManager.java:582) 
    at java.sql.DriverManager.getConnection(DriverManager.java:154) 
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110) 
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) 
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) 
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) 
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:49) 
    at org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:24) 
    at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:271) 
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1079) 
    at dao.BulletinDAO.getApprovedBulletins(BulletinDAO.java:161) 
    at action.GetApprovedBulletins.execute(GetApprovedBulletins.java:45) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:251) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) 
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.s|#] 

[#|2012-03-17T00:40:38.050+0300|SEVERE|glassfish3.1.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=23;_ThreadName=Thread-3;|ervices.impl.ContainerMapper.service(ContainerMapper.java:174) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:662) 


** END NESTED EXCEPTION ** 



Last packet sent to the server was 1 ms ago. 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
    at java.sql.DriverManager.getConnection(DriverManager.java:582) 
    at java.sql.DriverManager.getConnection(DriverManager.java:154) 
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110) 
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) 
    ... 86 more 

ここは私のhibernate.cfg.xmlです。

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="hibernate.connection.url">jdbc:mysql://mariadb-jcbulboard.jelastic.servint.net:3306/cpc</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.connection.password">xxxxxxxx</property> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.pool_size">10</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 
     <property name="current_session_context_class">thread</property> <!-- this will show us all sql statements --> 
     <property name="hibernate.show_sql">true</property> <!-- mapping files --> 
     <mapping resource="Bulletin.hbm.xml" /> 
     <mapping resource="Login.hbm.xml" /> 
    </session-factory> 
</hibernate-configuration> 

Glassfish管理パネルの[Additional Properties]タブの値は次のとおりです。

databaseName cpc 
user  root 
password xxxxxxxx 
PortNumber 3306 
serverName mariadb-jcbulboard.jelastic.servint.net 

答えて

2

あなたは本当にルートとしてリモートMySQLサーバにアクセスさせたくない、それだけで使用されているデータベースへのアクセス権を持つユーザーアカウントを作成するために、より安全です。保護されたMySQLサーバは、rootによるリモートアクセスもブロックします。 MySQLのドキュメントcreating and managing user accountsをチェックアウトしてください。 JDBC接続を取得しようとしたときにこの例外を

CREATE USER 'cpc-user'@'mariadb-jcbulboard.jelastic.servint.net' IDENTIFIED BY 'some_pass'; 
GRANT ALL PRIVILEGES ON cpc.* TO 'cpc-user'@'mariadb-jcbulboard.jelastic.servint.net'; 

java.net.ConnectException: Connection refused 

一般ルートとしてMySQLにログインし、次のコマンドを発行し、ユーザーCPC-ユーザーを作成するには

いずれかを意味する

  1. ドメイン名またはIPが正しくありません電子DBサーバは、ポート3306
  2. #1は簡単ですあなたがドメイン名またはIP

ためのアクセス権を持っていないとして接続しようとしているユーザーへのリモートアクセスを許可するだけでダブルいない

  • 接続情報を確認してください。

    チェックそれがリモートサーバにmysqlコマンド経由で接続しようとすることで第2位である場合:

    mysql -u cpc-user -p -h mariadb-jcbulboard.jelastic.servint.net cpc 
    

    それは#3である場合は、いくつかのより多くのcreating and managing user accountsを見て、あなたがしていることを確認、ユーザーを作成する必要があります接続しようとすると、ホストのデータベースにアクセスできます。

    1

    これは、データベースユーザーがdbにリモートからアクセスする権限を持たないように聞こえます。これは、多くの場合、デフォルトです。 MySqlを使用している場合は、

    1)/etc/mysql/my.cnf(場所はプラットフォームによって多少異なる場合があります)を開き、bind-addressがlocalhostまたは127.0.0.1に設定されていないことを確認してください。そうであれば、ネットワーク上のマシンの外部から到達可能なIPアドレスに変更し、MySqlを再起動します。

    2)dbユーザーがリモートからアクセスできる権限を持っていることを確認してください。たとえば、 'someuser' @ 'localhost'に権限を付与した場合、ではなくがリモートで動作します。これは接続がローカルホストにのみ制限されるためです。

    revoke all privileges, grant option from someuser; 
    grant all privileges on mydatabasename.* to 'someuser' identified by 'somepassword'; 
    flush privileges; 
    
    :ルート以外の任意のユーザー名で "someuser" を代入し、これを試して、修正するために

    関連する問題