2016-01-08 2 views
2

Я создаю приложение для школы, которое генерирует бизнес-правила. Передняя часть состоит из Apex, а бэкенд - это приложение Java, которое использует спящий режим для доступа к базе данных.Нет подключения к базе данных после развертывания (Java Hibernate)

Для связи между Apex и Java Я использую службу отдыха (используя struts2). Это отлично работает, когда я развертываю приложение в своей среде IDE (netbeans). Но тогда он работает на моем локальном хосте. Таким образом приложение Apex не может подключиться к нему. (Приложение Apex размещено в моей школе)

Поэтому я попытался развернуть свое приложение с помощью различных веб-сайтов. Часть остальной службы все еще работает, и я могу подключить приложение java с моим приложением Apex.

Проблема в том, что приложение java-приложения не может подключиться к базе данных, как только я развожу ее в Интернете. GlassFish консоль показывает это, когда я пытаюсь получить данные из базы данных:

(Tosad этого названия проекта/курса)

[2016-01-08T15:23:07.004+0000] [glassfish 4.1] [INFO] [] [] 
[tid: _ThreadID=43 _ThreadName=Thread-8] [timeMillis: 1452266587004] [levelValue: 800] [[ 
[EL Severe]: ejb: 2016-01-08 15:23:07.004--ServerSession(1585495182)--  
Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): 
org.eclipse.persistence.exceptions.ValidationException 
Exception Description: Cannot acquire data source [TOSAD]. 
Internal Exception: javax.naming.NamingException: Lookup failed for 'TOSAD' in SerialContext[ 
myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, 
     java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, 
     java.naming.factory.url.pkgs=com.sun.enterprise.naming} 
[Root exception is javax.naming.NameNotFoundException: TOSAD not found]]] 

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.OracleDialect</property> 
    <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property> 
    <property name="hibernate.connection.url">jdbc:oracle:thin:@ondora02.hu.nl:PORT:COURSE</property> 
    <property name="hibernate.connection.username">USERNAME</property> 
    <property name="hibernate.connection.password">PASSWORD</property> 
    </session-factory> 
</hibernate-configuration> 

HibernateUtil.java

package Service; 

import javax.persistence.EntityManagerFactory; 
import javax.persistence.Persistence; 

public class HibernateUtil { 

    private static String orclcfg = "nl.hu.ict.jpa.oracle"; 
    private static String mysqlcfg = "nl.hu.ict.jpa.mysql"; 
    private static boolean mysql = false; 
    private static String dbcfg = orclcfg; 
    private static final EntityManagerFactory entityManagerFactory; 

    //entityManagerFactory = Persistence.createEntityManagerFactory("nl.hu.ict.jpa.oracle"); 
    static { 
     try { 
      if (!mysql) { 
       dbcfg = orclcfg; 
      } 

      entityManagerFactory = Persistence.createEntityManagerFactory(dbcfg); 

     } catch (Throwable th) { 
      System.err.println("Initial EntityManagerFactory creation failed" + th); 
      throw new ExceptionInInitializerError(th); 
     } 
    } 

    public static EntityManagerFactory getEntityManagerFactory() { 
     return entityManagerFactory; 
    } 

} 

ответ

0

по электронной Сообщение об ошибке несколько ясно. Ресурс JNDI с именем TOSAD не может быть размещен на удаленном развернутом сервере. Убедитесь, что он настроен на удаленном сервере, как вы, вероятно, сделали это на своей локальной машине.

+0

Спасибо! После нескольких поисковых запросов Google я исправил проблему –