当前位置: 首页 > 知识库问答 >
问题:

在JBoss上设置XA连接的集成安全性

牛骞仕
2023-03-14
java.lang.NoSuchMethodException:
com.microsoft.sqlserver.jdbc.SQLServerXADataSource.setIntegratedSecurity(java.lang.String)

是否有其他方法可以为JBoss上的XA连接设置集成安全性,或者在设置xa-datasource-property时告诉它发送一个布尔值?

要再现此行为:

a)在JBoss AS配置\standalone\standalone.xml中,向JNDI添加一个新的xa-datasource:

<xa-datasource jta="true" jndi-name="java:jboss/datasources/jndiName" pool-name="poolName" enabled="true" use-java-context="true" use-ccm="true">
    <xa-datasource-property name="ServerName">
        localhost
    </xa-datasource-property>
    <xa-datasource-property name="DatabaseName">
        MyDbName
    </xa-datasource-property>
    <xa-datasource-property name="SelectMethod">
        cursor
    </xa-datasource-property>
    <!-- this should work but doesn't -->
    <xa-datasource-property name="IntegratedSecurity">
        true
    </xa-datasource-property>
    <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
    <driver>sqljdbc</driver>
    <xa-pool>
        <is-same-rm-override>false</is-same-rm-override>
    </xa-pool>
    <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
    </validation>
</xa-datasource>
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:jboss/datasources/jndiName");
Connection conn = null;
try {
    conn = ds.getConnection();

    // try to execute something
    CallableStatement stmt = conn.prepareCall("{? = call some_stored_procedure()}");
    stmt.execute();
} finally {
    if (conn != null)
        conn.close();
}

执行此代码将导致一个异常,该异常指出:

java.lang.NoSuchMethodException: 
com.microsoft.sqlserver.jdbc.SQLServerXADataSource.setIntegratedSecurity(java.lang.String)

共有1个答案

庞旺
2023-03-14

我也遇到过这种情况,但如果我使用URL xa-datasource-property,我就能够使它工作。

示例:

<xa-datasource-property name="URL">jdbc:sqlserver://<host>:<port>;database=<db>;integratedSecurity=true</xa-datasource-property>  

需要删除这些代码段:

<xa-datasource-property name="ServerName">
    localhost
</xa-datasource-property>
<xa-datasource-property name="DatabaseName">
    MyDbName
</xa-datasource-property>
<xa-datasource-property name="SelectMethod">
    cursor
</xa-datasource-property>
<!-- this should work but doesn't -->
<xa-datasource-property name="IntegratedSecurity">
    true
</xa-datasource-property>
 类似资料:
  • 我有一个Spring集成流,它使用入站网关从IBM MQ队列获取消息: 但是,我无法分配安全设置。特别是,我需要用户名,密码和用户身份验证MQCSP = false(由于本文范围之外的原因,我不会详细说明,但我的经纪人将抛出MQRC = 2009否则)。 我已经按照IBM指南连接了jmsTemplate,并且运行良好。这使用来自IBM MQ的官方Spring boot starter,它将友好地创

  • 我一直在工作的条纹支付,现在我想要集成3D安全,但文档没有帮助我,有谁工作的3D安全在iOS? 我的主要问题是如何或何时初始化提供STPThreeDSUI的STPPaymentHandler来处理身份验证。 https://github.com/stripe/stripe-iOS

  • 我的MySQL模块有一些问题,我的本地JBoss。 在$jboss_home中,我创建了com/mysql/main,并删除了mysql-connector-java-5.1.26-bin.jar和module.xml 然后配置数据源。 NetBeans:7.3.1;Mysql连接器:5.1.26;应用服务器:JBoss EAP 6.1.0;MySQL:5.6.14;Windows 7;Java

  • 我们正在JBoss7.1.1应用服务器中为后端集群MySQL服务器配置XA数据源(主-主配置)。以下是数据源配置: 我们面临以下问题: 在DB URL jdbc:mysql:/10.2.0.35:3306,10.2.0.36:3306/test_prod?autoreconnect=true中,如果10.27.40.35服务器关闭,则给出以下异常。但是如果我将URL配置反向为jdbc:mysql:

  • 我正在使用Wildfly-8.2.0.final和oracle 12c以及OJDBC6。我已经配置了XA数据源来连接oracle数据库。一旦服务器启动并且繁忙,一切看起来都很好,但是如果应用程序服务器空闲超过30分钟,我将得到以下异常: 调试消息: DatabaseConnectionMgr.CreateNewProperties()()失败原因代码潜台词:异常消息:java.sql.sqlexc

  • 我试图在MySQL上设置一个非常简单的会话连接变量,但它没有任何作用。下面运行的查询不会导致任何错误,但不会更改MySQL连接的字符集。如果我在文件中将“collation\u server”和“character\u set\u server”的默认值配置为,而不是,那么字符集将变为,但我想知道为什么我不能从PHP脚本中更改连接字符集。 此查询显示语句没有影响。