当我在本地运行我的应用程序时,SQL Server表的更新工作正常。但是当我尝试在我们的linux服务器上运行jenkins上的部署版本时,它给出了错误“java.lang.NoClassDefFoundError:com / microsoft / sqlserver / jdbc / TDSWriter $ 1”。
我正在使用org.springframework.data.repository.save来更新表中的记录。
try{
userRepository.save(personnel);
}catch (Exception e){
String message = "There is an exception while updating userrecord in the database";
logger.error(message, e);
}
java.lang.NoClassDefFoundError:com / microsoft / sqlserver / jdbc / TDSWriter $ 1 com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCByteArray(IOBuffer.java:4526)com.microsoft.sqlserver.jdbc.DTV $ SendByRPCOp.execute(dtv。 java:1158)com.microsoft.sqlserver.jdbc.DTV.executeOp(dtv.java:1311)com.microsoft.sqlserver.jdbc.DTV.sendByRPC(dtv.java:1503)
我解决了这个问题。在部署应用程序的linux服务器上,我有多个版本的sqljdbc jar。只需要一个sql jdbc jar(sqljdbc42.jar)。所以删除其他sql jdbc jar已经解决了这个问题。它在我的本地工作,因为我的系统上没有多个版本。