Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇及;SQL-Xadasource_Java_Sql Server_Connection - Fatal编程技术网

Java 爪哇及;SQL-Xadasource

Java 爪哇及;SQL-Xadasource,java,sql-server,connection,Java,Sql Server,Connection,我们正在为java web应用程序运行glassfish 4,并且遇到了计时器问题。普通的servlet调用能够享受任意多个不同的连接,这使得集成更加容易。但是,一旦我们添加了计时器,数据源就需要改为“XA”数据源。我们设立了一个这样的机构,如下所示: public XADataSource getNewConnection() { Encapsulations encap = new Encapsulations(); XADataSource ds = null; t

我们正在为java web应用程序运行glassfish 4,并且遇到了计时器问题。普通的servlet调用能够享受任意多个不同的连接,这使得集成更加容易。但是,一旦我们添加了计时器,数据源就需要改为“XA”数据源。我们设立了一个这样的机构,如下所示:

public XADataSource getNewConnection() {
    Encapsulations encap = new Encapsulations();
    XADataSource ds = null;
    try {
        Context ctx = new InitialContext();
        if(!encap.getDataSource().equals("Production")){
              ds = (XADataSource) ctx.lookup("jdbc/XA_TEST");
        }else{
              ds = (XADataSource) ctx.lookup("jdbc/XA");
        }

    } catch (Exception e) {
        CatchException.logException(null, e);
        String error = e.toString();
    }
    return ds;
} 
问题在于,当ds=(Xadasource)ctx.lookup(“jdbc/XA_测试”)行运行时,我们会遇到以下错误:

java.lang.ClassCastException:com.sun.gjc.spi.jdbc40.DataSource40不能强制转换为javax.sql.XADataSource


我们使用sqljdbc42 jar进行正常连接,因此在其中看到40有点奇怪。有人知道问题出在哪里吗?我们正在使用的数据源被设置为Xadasource,除了下载不同的jar之外,我不知道缺少了什么。

我已经有一段时间没有使用Glassfish了,但据我所知,您应该为具有Xadasource接口实现的数据库提供程序安装jar。在MS SQL Server中,我使用了jTDS驱动程序


从代码片段中考虑的另一件事是,对于开发和生产,您应该具有不同的GalsFig配置,您应该将此类事情留给应用服务器而不在代码中。Glassfish是一个完整的JavaEE应用服务器,它具有包括数据库连接池在内的所有优点。

我们当前的jar具有Xadasource。我们可以进口它。cast错误是很奇怪的。该类实现了XADataSource接口吗?另外,在JavaEE环境中,您应该使用类似的东西来使用数据库
@PersistenceContext(unitName=“yourPu”)私有EntityManager em