我在java-ee中有一个web应用程序,它部署localy并远程使用glassfish。 我的远程服务器上也有一个MySQL数据库。
当我部署我的应用程序时,一切正常,我的应用程序连接到我的远程数据库。但是,当我在我的服务器上远程部署时,它可以工作,但我的应用程序没有连接到数据库。
我在我的服务器上使用docker,glassfish在容器中,但mysql不是。 我使用payara / server-full(glassfish实例)部署glassfish:
sudo docker run -it -p 4848:4848 -p 8080:8080 payara/server-full
我的一个朋友做同样的事情并且运作良好。
答案 0 :(得分:0)
您可以在任何类型的容器管理对象中使用DI。首先,您必须在应用服务器中注册连接(使用IDE或管理控制台:4848)无状态会话bean只是一个示例。
package mypackage;
imports
@Stateless
public class MyBean
{
@Resource(lookup = "java:/app/registered_datasource_name")
private DataSource dataSource;
public void businessMethod()
{
try ( Connection connection = dataSource.getConnection() )
{
// Work with connection here
}
catch (SQLException e)
{
throw new SomeRuntimeException(e);
}
}
}