Сложность с загрузкой данных SQL Server в Java 17JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сложность с загрузкой данных SQL Server в Java 17

Сообщение Anonymous »

Я пытаюсь запросить DB SQL Server. У меня что -то не так, и я не знаю, где искать. Я предполагаю, что ошибка находится в настройке проекта. Код кажется мне нормальным.package gov.usdohud.chums;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedHashSet;

import com.sybase.jdbc4.jdbc.SybDataSource;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.salientcrgt.chums.util.LogStandardOutput;

import gov.usdohud.configuration.ConfigXmlParser;
import gov.usdohud.dao.CaseData;
import gov.usdohud.model.ConfigData;

public class GetCreditReports {
/** log4j logger. */
private static final Logger LOGGER = LogManager.getLogger();

/** configuration information. */
private static final ConfigData config = ConfigXmlParser.getData();

/** required to fix mail in jdk7+. */
static {
System.setProperty("java.net.preferIPv4Stack", "true");
}

public static void main(String[] args) {
// Uncomment for debugging so that the configuration objects appear in the variable stack
// ConfigData configurationValues = config;
LogStandardOutput.logSystemOutAndErrToLogger();
LOGGER.info("Start process...");

/**
* Instantiate object
*/
GetCreditReports thisRun = new GetCreditReports();

/**
* Get the data from the warehouse.
*/
LinkedHashSet cases = thisRun.getCaseData();

/**
* For each row, get the record from aus_national and retrieve the CRs.
*/
for(CaseData currentCase : cases) {
thisRun.extractCR(currentCase);
}

LOGGER.info("Process Completed...");

}

// irrelevant methods removed for brevity

/**
* Use case data from sfdw to get the CR(s) from aus_national.
* @param currentCase
*/
private void extractCR(CaseData currentCase) {
String loanNumber = currentCase.getCase_nbr();
String caseNumber = currentCase.getCase_nbr();
String scoreDate = currentCase.getScore_dt();
String aus = currentCase.getUndrwrtr_id();
String sqlString = "select file_data from aus_credit where loan_number = ? and score_dt = ? and aus = ?";

// pull CR(s)
try {
final SQLServerDataSource dataSource = new SQLServerDataSource();
dataSource.setServerName(config.getAusNatServer().getName());
dataSource.setPortNumber(Integer.parseInt(config.getAusNatServer().getPort()));
dataSource.setDatabaseName(config.getAusNatServer().getDatabase());
dataSource.setUser(config.getAusNatServer().getUserId());
dataSource.setPassword(config.getAusNatServer().getAuthentication());
dataSource.setSendStringParametersAsUnicode(false);

Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sqlString);
stmt.setString(1, loanNumber);
stmt.setString(2, scoreDate);
stmt.setString(3, aus);
ResultSet rs = stmt.executeQuery(sqlString);

while (rs.next()) {
this.writeCR(caseNumber, rs.getString("file_data"));
}

} catch (SQLException e) {
LOGGER.error(e.getCause());
LOGGER.error(e);
}

}
}

< /code>
Когда я запускаю это, я получаю эту ошибку: < /p>
Exception in thread "main"
java.lang.NoClassDefFoundError: Could not initialize class sun.security.pkcs.SignerInfo
at java.base/sun.security.pkcs.PKCS7.parseSignedData(PKCS7.java:368)
at java.base/sun.security.pkcs.PKCS7.parse(PKCS7.java:162)
at java.base/sun.security.pkcs.PKCS7.parse(PKCS7.java:126)
at java.base/sun.security.pkcs.PKCS7.(PKCS7.java:108)
at java.base/sun.security.util.SignatureFileVerifier.(SignatureFileVerifier.java:125)
at java.base/java.util.jar.JarVerifier.processEntry(JarVerifier.java:308)
at java.base/java.util.jar.JarVerifier.update(JarVerifier.java:239)
at java.base/java.util.jar.JarFile.initializeVerifier(JarFile.java:761)
at java.base/java.util.jar.JarFile.ensureInitialization(JarFile.java:1037)
at java.base/java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:72)
at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:883)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:848)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at gov.usdohud.chums.GetCreditReports.extractCR(GetCreditReports.java:74)
at gov.usdohud.chums.GetCreditReports.main(GetCreditReports.java:53)
< /code>
Это мой в gradle: < /p>
// https://mvnrepository.com/artifact/com. ... mssql-jdbc
implementation("com.microsoft.sqlserver:mssql-jdbc:13.2.0.jre11")


Подробнее здесь: https://stackoverflow.com/questions/797 ... in-java-17
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»